Agile software development, if properly managed, is all about becoming more productive, reducing unnecessary work and switching the focus from project deadlines towards generating customer value.
Nearly every software development project starts with one question: ‘how much effort is this going to take in terms of time and money?’ And a common concern of Agile is ‘how do I calculate the cost of my Agile project, if I don’t do all up-front planning?’
Here’s what you should do –
Start with ‘Why’s’:
Why do you need an estimate? The Whys can be as simple as getting a ballpark budget figure or figure our how the development team will need to scale to accommodate the planned product development . ‘Why’s’ provide a larger context to determine the necessity (as well as the precision) of an estimate.
Turn ‘Why’s’ into ‘How’s’:
Now that you know exactly why you need the estimates, you can now decide on a scale. Let’s say, you need to know what budget to allocate, or whether the project makes fiscal sense at all. Then it’s enough to chalk down a rough estimate by a mere analogy and leave out details. That will spare you time and effort on a project that is still quite in the air.
If there is a strategic decision to make whether to opt for plan A or B depending on estimates, you will have to dig deeper.
Of course, Agile development does not give foolproof on-time and on-budget delivery of original expectations (which may not even be realistic or suitable to meet user needs). However, in many cases, choosing the right strategy brings you nearer to your ultimate business goal.
Estimating and planning: step-by-step guide:
The primary challenge is to do estimating and planning while very little is known about the product. In agile projects estimation goes hand-in-hand with planning. There are a number of planning, estimating, and tracking artifacts and tools.
Create Product backlog:
How do you know what to build? Start by dividing the initial abstract idea into smaller, more concrete concepts. Put your assumptions of what a user may want into a simple language of user stories. User stories is a great method to attune everyone to the same wavelength. They make up a Product backlog, a list of the total functionality for the product. Starting with this you can now plan the backlog well in advance. It will also keep evolving over the time, reflecting all the changes in scope, direction of the project and eventually affecting actual budget to some extent.
Prioritize Product backlog:
For starters, MoSCoW analysis is great for getting priorities right. It means labelling backlog stories as ‘Must-haves’, ‘Should-haves’, ‘Could-haves’, and ‘Won’t-haves’. When planning sprints, high-priority stories, or ‘must-haves’, are chosen first, according to the Agile principle of delivering value early. Priorities are set by the product owner based on business needs. Sometimes you can develop an MVP first as a way of testing value of the features against end-users’ expectations.
Size the project:
The size of project is usually measured in story points – these are relative units of measure. They give an idea of size from project sprints perspective. The reason for that is to set realistic expectations about deadlines and product releases.
Time the project:
It is possible to have a rough estimate of the timeline by planning a Product roadmap that shows how a product is likely to evolve across several major releases. There is no need to plan for the whole project. Planning and timing can be iterative as well. By proper expectations management, you can control how much and what exactly you want to release.
Cost the project:
Now that we can tell the approximate size of the project and the team-size, calculating costs is now easier. By knowing specific hourly rates for every resource category, such as Product owner, Developer, QA, Designer, etc. and their workload ratio, we can calculate the team’s fixed cost over a sprint or over a month.
Every project has a budget and, want it or not, a deadline. And every client wants the best value for money. With both proper planning and scoping and Agile development, the project can be delivered at the best cost with the best product experience for users.
Source: This article first appeared on blog.