CSC/ECE 517 Fall 2010/ch6 6c PK

From Expertiza_Wiki
Revision as of 21:26, 14 November 2010 by Csc517wikihandle (talk | contribs)
Jump to navigation Jump to search

Estimation in Agile projects

Introduction to Agile software development

Software development process or life cycle is a commonly used term in today's rapidly developing software industries. There are different models are available which are used to enforce the structural development of software products. Agile software development methodology is one of the commonly followed practices in project management which takes iterative approach for software development in contrast to plan-based or traditional methods. It mainly focuses on the adapting to requirement changes and delivering in high quality product in iterative work-process. In traditional models such as waterfall model, the project requirements are collected at the beginning of the projects and later implemented. The main problem with this approach is if the customer requirements changes in the middle of development. This may cause lot of rework and impact the planning and deliverable. The adaptive approach of agile development helps to minimize the conflict between requirement and end product. Changing requirements can be easily accommodated in development life cycle as each iteration involves estimation,planning,development and testing. In other words, Agile software development follows an iterative approach where each iteration is mini waterfall.

In this chapter, we will explain the purpose of estimates in agile software development first, later we will discuss estimation techniques and re-estimation and how these are different in other software development processes.

Estimation in Agile Model

estimation in Agile In the agile development estimation plays an important role. sometimes it happens that the requirement for particular sprint are not clear in that case estimation can be difficult. Short span estimation and feedback based estimations are helpful to improve the accuracy of the estimation. Also the it is always recommended to communicate the constrains to customer and get more clarification.

Purpose

Estimation techniques

Estimation of size In each iteration of the development phase, requirements are called as user stories. The size if the user story is represented by story point.Based on the understanding of the user story, story points are assigned which indicate the how much work is requirement for this work item. these points gives high level work estimate for that sprint. team collectively decides the points for each work item as 1,2,3,5,8 rather than assigning points independently.e

For example X and Y are two team members and X think that task A is of worth 3 point while Y thinks that same task is of point 10. The these kind of diverse user stories are discussed in depth to understand why each of them think that way. Sometimes it may happened that Y may think that the work item involves some complexities and some unknown issues hence gave 10 points where X did not anticipate these issues. During discussion of that work item, X will know more things about the system.

In other words, estimating size should be done in the team rather than individual to avoid the fallacies and biased opinion high level estimation.

estimating velocity

Velocity plays vital role in estimation. Velocity is expresses in terms of number of story points delivered in iteration/sprints. For example if certain team delivered 25 points in one iteration then the velocity is 25 for that iteration.

Re-estimation

Estimation in Waterfall Model

Estimation in Spiral Model

Estimation in Iterative and Incremental Model

References

  • Software Development process [1]