Ensuring successful software development within constraints of ‘scope, schedule, and cost’ has been a conundrum that every software development methodology tries to solve. In any scenario, we can fix only one of these 3 parameters. For example, if we fix the software estimation, we have to keep the schedule variable according to the new changes in scope. Similarly, if we fix the schedule, we will have to adjust with varying scope and cost. Fixing of all these three factors is against Agile culture. The scope keeps changing as the project makes progress on the agreed timeline, so, the estimation becomes a challenging task for the product owner.
What is Estimation in Agile?
Agile software estimation is used for realistic planning to implementing the project requirements as per commitments. The estimation also supports for projections that are used by the product owners to prioritize the tasks and to schedule product releases. To simplify the task, estimation can be made a 10-step process as shown in fig. 1:
How to Do Realistic Estimation (Techniques):
The following three techniques are often used for Agile estimation:
1. Expert Opinions: By collecting the opinions of people with previous experience on similar project types.
2. Analogies: By comparing an already delivered similar project to current project; the parameters are more accurate and scalable.
3. Disaggregation: By breaking the project development into the smaller units.
All the three above-mentioned techniques can be used simultaneously also. Planning Poker is the most widely used estimation perfectly blended with opinions, analogies and disaggregated tasks. To know more about ‘Planning Poker’, you can refer to "Agile Estimating and Planning" – a book written by Mike Cohn.
Validation in Agile Estimating & Planning:
Sometimes, the project team members get confused by the terms verification and validation because of the thin separating line. Verification is focused to assess – ‘Did I build what I said I would?’, while, the validation is focused on - “Did I build what I need to satisfy the customer and organization?”
The validation helps you verify the methods and results. The validation in Agile makes you more confident for having accurate and goal directing database derived by using the most effective technique. To simplify the process, the validation exercise can be stipulated in three steps:
1. Demo in Sprint Review
This type of validation demonstrates the software features/functionality completed during the particular sprint in the presence of customer/ advisory board or user group to highlight progress and to gain the important feedback. The gained feedbacks ensure that the team is on the right track. This validation exercise can be programmed as per sprint cadence; and, you should have sufficient time for two or more end-of-sprint reviews if there are different user groups. The sprint review validation demands 1:1 demo also if you need to satisfy a particular person in user group.
2. Hands-on Experience:
Under this validation model, also called ‘Alpha testing’, customers get hands-on experience of using the software or particular feature in a pilot working environment. This model is highly effective for cloud-based applications where a number of users can access and use the software. It is usually programmed for once or twice for each release. The participants are selected on the basis of created customer profiles.
3. On-the-premise Installation Validation:
At this validation stage, the customers install the delivered software over their systems in the actual working environment. The exercise is often called acceptance testing or Beta testing also. It gives you feedback on how the developed software can be used in other environments with different user interfaces. This validation exercise is commenced at the last stage of release. All the concerned users are the participants of on-the-premise installation validation.
The estimating in Agile environment helps to implement the viable solutions and is the key startup exercise for Agile project development. To get the training for Agile estimation and planning, you may visit – KnowledgeHut. Agile Estimation and planning training provides an understanding of estimation tools and techniques helping you manage iterative processes better.