Beruflich Dokumente
Kultur Dokumente
net/publication/268186219
CITATIONS READS
38 4,171
3 authors, including:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Zia Ziauddin on 17 February 2016.
ziasahib@gmail.com
Abstract: Software effort estimation process in any software project is not only essential, but also a very critical
component. The success or failure of projects depends heavily on the accuracy of effort and schedule estimations, among
other things. The emergence of agile methods in the software development field has presented many opportunities and
challenges for researchers and practitioners alike. One of the major challenges is effort estimation for agile software
development. Though traditional effort estimation approaches are used to estimate effort for agile software projects but they
mostly result in inaccurate estimates. This research focuses on development of effort estimation model for agile software
projects. Construction and use of the model is explained in detail. The model was calibrated using the empirical data
collected from 21 software projects. The experimental results show that model has good estimation accuracy in terms of
MMRE and PRED (n).
Keywords: Software Effort Estimation, Agile Software Development, User Stories, Adaptive Systems
collecting data on completed projects and developing project data or information are used. These heuristics are,
regression equations that characterize the relationships then, used to estimate productivity, quality or size (Hihn
among the different variables (Fairley, 1992). Estimates are and Habib-agahi, 1991, Fairley, 1992). Expert judgment
made by substituting the. New project parameters are Esitimation is also one of the popular estimation technique
substituted into mathematical model. This model is in software effort estimation which is based on the
evaluated on regression data to make estimates. In these accumulated experiences of teams of experts in order to
models software development effort is simply dependent come up with project estimates (Peters and Pedrycz, 1999,
variable of some predicted variables like Size, Effort Stamelos and Angelis, 2001). This technique is used where
adjustment factors, Scaling factors etc. for regression the estimation process is primarily based on “non-explicit,
equation. non-recoverable reasoning processes”, or perception and
Regression models however need certain conditions in intuition (Jørgensen, 2004b).
some cases to be fulfilled particularly (Finnie et al., 1997). Expert Judgment techniques have been criticized by experts
These conditions are discussed by Boehm and Sullivan for their reliance on human memory and the lack of
(1999), and are based on experience from the use of repeatability of such memory-based approaches
regression-based models. These typical conditions include (Mukhopadhyay et al. (1992, (Mendes et al., 2002);
availability of a large dataset, no missing data items, no however reports have proven it to be the dominant strategy
outliers, and the predictor variables are not correlated. The in software development estimation (Jørgensen, 2004a,
collection of approaches that fall under the heading of Höst and Wohlin, 1997, Moløkken and Jørgensen, 2003,
regression-models include ordinary least-squares regression Moløkken-Østvold et al., 2004). The Delphi technique and
(OLS), classification and regression trees (CART), stepwise work breakdown structure (WBS), top-down and bottom-up
analysis of variance for unbalanced data sets (stepwise estimation (Tausworthe, 1980), reasoning by analogy,
ANOVA), combinations of CART with OLS regression and formal reasoning by analogy, informal reasoning by
analogy, multiple linear regression, and stepwise regression analogy, and rules of thumb (Jones, 1996) fall under expert
(KEAVENEY, 2006). judgment technique.
There are other types of model, called Learning-oriented The strengths of expertise based methods and regression-
models which are based on learning from previous based methods were combined to introduce a new
estimation experience. These models attempt to automate estimation approach called the Bayesian approach which is
the estimation process by training themselves from a semi-formal estimation process (Ferens, 1988). Bayesian
previous experience to build computerized models (Boehm analysis allows for the fact that the data required for use in
et al., 2000). These models are capable of learning most estimation techniques is typically of poor quality or
incrementally and refining themselves as new data are incomplete. Expert judgment is incorporated in this
provided over time (Lee et al., 1998). Learning-oriented approach to handle the missing data and provide a more
models cover a wide area and include techniques such as robust estimation process (Boehm and Sullivan, 1999).
artificial intelligence approaches, artificial neural networks, Bayesian analysis has been used in many scientific
case-based reasoning (Mukhopadhyay and Kekre, 1992), disciplines and was used in the development of the
machine learning models, decision-tree learning, fuzzy COCOMO II model (Chulani et al., 1999, Boehm et al.,
logic models, knowledge acquisition and rule induction 2000). Cost Estimation, Benchmarking and Risk Analysis
(Burgess and Lefley, 2001). The main model-based (COBRA) is an example of a composite estimation model
techniques include COCOMO, SLIM, RCA PRICE-S, (Ruhe et al., 2003).
SEER-SEM, and ESTIMACS. These estimation models
produce an estimate of the cost, effort or duration of a 1.2 Agile Software Development
project based on factors such as the size and desired
functionality of the system. Agile software development is a group of software
An important expertise based approach was found by development methods based on iterative and incremental
Briand et al. (1998) to be “comparison to similar, past development, where requirements and solutions evolve
projects based on personal memory”. The expertise based through collaboration between self-organizing, cross-
approaches are useful when no quantified, empirical data is functional teams. It promotes adaptive planning,
available (Boehm et al., 2000). They provide a practical, evolutionary development and delivery, a time-boxed
low-cost and highly useful process (Johnson et al., 2000). iterative approach, and encourages rapid and flexible
Another estimation technique used for software effort response to change. It is a conceptual framework that
estimation is analogy based estimation. The technique promotes foreseen interactions throughout the development
examines past projects and uses the information retrieved as cycle. The Agile Manifesto introduced the term in 2001.
a guide estimate for the proposed project (Angelis et al., Early implementations of lightweight methods include
2001, Jørgensen et al., 2003). The Checkpoint method is an Scrum (1995), Crystal Clear, Extreme Programming
example of an analogy-based approach to software (1996), Adaptive Software Development, Feature Driven
estimation (Fairley, 1992). In this technique heuristics are Development, and Dynamic Systems Development Method
derived from actual project data or a formalization of expert (DSDM) (1995). These are now typically referred to as
opinion. In order to derive these heuristics some form of
Ziauddin, ACSA, Vol. 2, No. 1, pp. 314-324, 2012 316
agile methodologies, after the Agile Manifesto published in emphasis on collective effort. Second, it refuses to quantify
2001. work in terms of time because this would undermine the
Methods exist on a continuum from adaptive to predictive. self-organization central to the success of methodology.
Agile methods lie on the adaptive side of this continuum. This is a major break from waterfall: Instead of a manager
Adaptive methods focus on adapting quickly to changing estimating time on behalf of other individuals and assigning
realities. When the needs of a project change, an adaptive tasks based on conjecture, team members in Scrum use
team changes as well. Predictive methods, in contrast, effort and degree of difficulty to estimate their own work.
focus on planning the future in detail. A predictive team Agile Methodology does not prescribe a single way for
can report exactly what features and tasks are planned for teams to estimate their work. However, it does ask that
the entire length of the development process. Predictive teams not estimate in terms of time, but, instead, use a more
teams have difficulty changing direction. abstracted metric to quantify effort. Common estimating
methods include numeric sizing, t-shirt sizes, the Fibonacci
1.2.1 Characteristics of Agile Software Process sequence and even dog breeds. The important thing is that
the team shares an understanding of the scale it is uses, so
Modularity: The key element of agile software process is that every member of the team is comfortable with the
modularity which allows a process to be broken into scale’s values.
components called activities. In the Sprint Planning Meeting, the team sits down to
Iterative: Agile software processes focus on short cycles. estimate its effort for the stories in the backlog. The
Within each cycle, a certain set of activities is completed. Product Owner needs these estimates, so that he or she is
Time-Bound: Time limits are set for each iteration and empowered to effectively prioritize items in the backlog
schedule. This duration is called Sprint. and, as a result, forecast releases based on the team’s
Parsimony: Agile software processes focus on parsimony. velocity. This means the Product Owner needs an honest
That is, they require a minimal number of activities appraisal of how difficult work will be. Thus it is
necessary to mitigate risks and achieve their goals. recommended that the Product Owner does not observe the
Adaptive: The agile process adapts the process to attack estimation process to avoid pressuring a team to reduce its
new found risks, exposed in any iteration Similarly agile effort estimates and take on more work. Even when the
process accommodate any added activity or modification to team estimates amongst itself, actions should be taken to
the existing activities reduce influencing how a team estimates. As such, it is
Incremental: An agile process does not try to build the recommended that all team members disclose their
entire system at once. Instead, it partitions the nontrivial estimates simultaneously. Because individuals “show their
system into increments which may be developed in parallel, hands” at once, this process is like a game of poker.
at different times, and at different rates. Still, even when teams possess a shared understanding of
Convergent: The basic premise of agile process is to build their scale, they can’t help but estimate differently. To
the system closer to the reality. This goal is achieved by arrive at a single effort estimation that reflects the entire
applying all possible techniques to ensure success in the team’s sense of a story’s difficulty, it often requires
most rapid fashion. numerous rounds of estimation. Veteran teams who are
People-Oriented: Agile processes favor people over familiar with the process, however, should reach a
process and technology. They evolve through adaptation in consensus after just a few rounds of planning poker.
an organic manner. Developers that are empowered raise Normally effort estimation takes place at the beginning of
their productivity, quality, and performance. After all, they new iteration during Release Planning. A Section of the
are the best individuals in the organization to know how to XP-Project is shown in Figure 1.
make these changes.
Collaborative: Agile processes foster communication
among team members. Communication is a vital part of any
software development project. Quickly integrating a large
project while increments are being developed in parallel,
requires collaboration (MILLER, 2001).
Most of the existing effort estimation techniques have been Agile practitioners and Scrum practitioners in particular
developed to support traditional sequential software have proposed a number of scales for calibrating estimated
development methodologies whereas Agile Software effort in projects including:
Development is iterative in nature. If these traditional
techniques are used for effort estimation of Agile software • Ranking effort on a scale of one to three – one
projects, then the results will be definitely inaccurate. On being the smallest, and three being the largest.
the other hand, current practice of effort estimation for • Using a Fibonacci sequence [1, 2, 3, 5, 8]. A Story
Agile software projects is based on single iteration. ranked as an eight is a Story that is too large to
Therefore an effort estimation model is needed to predict accurately estimate and should likely be classified
development effort of Agile software project, based on as an Epic and decomposed into a smaller set of
characteristics of Agile Software Development Stories.
methodology.
There are other methods, but these are the two most
3. PROPOSED MODEL common ones. In both cases, the estimates are not produced
in terms of units of time; rather they are merely expressions
Most of the Software Effort Estimation Models estimate of Relative Effort which is a good comparative yardstick.
Cost, Duration and Personnel for a project. But it will not While both of these methods are effective and widely used,
be the case for Agile Development. they do not take into account the underlying elements that
There are several key differences between the agile affect effort and uncertainty. We have thus developed a
approach to team organization and the traditional approach. different model that we find to be very effective. This
model is also consistent with the way we develop rankings
1. Agile teams are "whole teams". Whole team is of Stories, Defects and Risk.
an Extreme Programming (XP) practice that
advises you to have sufficient skills within the 3.1 Determining the Effort
team itself to get the job done. The implication is
that the development team has the requisite testing There is a multitude of factors that affect our ability to
skills, database skills, user interface skills, and so accurately estimate effort. Accurate estimation requires a
on and does not rely on external experts or teams multidimensional view to produce accurate and effective
of experts for these sorts of things. estimates. The challenge, however, is which dimensions do
2. Agile teams are formed (mostly) of generalizing we measure? If we were to classify the possibilities using a
specialists. A generalizing specialist, sometimes SWOT according to Internal vs. External influences, we
called a craftsperson, is someone who has one or can eliminate many of the candidates by simply focusing
more technical specialties (e.g. Java programming, our attention on the things over which we have influence
project management, database administration, ...) and conversely paying less attention to those that we can’t.
so that they can contribute something of direct We keep the vectors to two so as to keep the process as
value to the team, has at least a general knowledge simple as possible so that we actually use the process and
of software development and the business domain don’t try to sidestep it because it is too cumbersome. Using
in which they work, and most importantly actively two vectors also maintains a consistency with the other
seeks to gain new skills in both their existing areas of the methodology.
specialties as well as in other areas, including both
technical and domain areas. Obviously novice IT 3.2 Story Size
professionals, and traditional IT professionals who
are often specialized in just one area, will need to Story size is an estimate of the relative scale of the work in
work towards this goal. Generalizing specialists terms of actual development effort. Table 1 shows five
are the sweet spot between the two extremes of values, assigned to different types of user stories according
specialists, people who know a lot about a narrow to their size. Wording of the Guideline description can be
domain, and generalists who know a little about a changed by the Team itself or even the criteria can be
wide range of topics. redefined.
3. Agile teams are stable. Agilest understand that
changing team structure is detrimental to project Table 1. Story Size Scales
success. We strive to keep our teams as stable as Value Guidelines
possible, a goal that is much easier to achieve if
• An extremely large story
people are generalizing specialists.
• Too large to accurately estimate
• Should almost certainly be broken down
As there is no need to estimate Personnel requirements for 5
into a set of smaller Stories
the project, thus the proposed model in intended to
calculate Completion Time and Cost for the Agile Software • May be a candidate for separation into a
project. new project
4 • A very large Story
Ziauddin, ACSA, Vol. 2, No. 1, pp. 314-324, 2012 318
velocity can e defined as how much product backlog effort Table 3. Friction Factors
a team can handle in one unit of time. Friction Factor Stable Volatile Highly Very
Volatile Highly
3.4.1 Optimization of Velocity Volatile
Team 1 0.98 0.95 0.91
Optimization is a process that should be completed before Composition
you begin Calibration. There are two things of primary Process 1 0.98 0.94 0.89
interest to us in our calibration. They are: Environmental 1 0.99 0.98 0.96
Factors
i. The Friction or consistent forces that are a constant Team Dynamics 1 0.98 0.91 0.85
drag on productivity and reduce Project Velocity.
ii. The Variable or Dynamic Forces that decelerate the Friction (FR) is calculated as product of all four fraction
project or team members and cause the Project factors (FF).
Velocity to be irregular. 4
𝐹𝑅 = �(𝐹𝐹)𝑖
Optimizing both of these factors prior to Calibration will 𝑖=1
improve the stability of your Velocity calculation. As the ii) Variable or Dynamic Forces: Variable or Dynamic
Velocity is the basis for many of the metrics we use in forces are often unpredictable and unexpected. They
Agile and Scrum, it is important to have a predictable decelerate your project and cause a loss of Velocity. Their
Velocity. effects are sometimes dramatic, but their influence is often
brief.
i) Friction: Newton’s First Law States that “Every object Newton’s Second Law states that that “The acceleration of
will remain at rest or in uniform motion in a straight line an object as produced by a net force is directly proportional
unless compelled to change its state by the action of an to the magnitude of the net force, in the same direction as
external force.” Forces that do not propel your project will the net force, and inversely proportional to the mass of the
slow it down. By minimizing the forces that slow down object.” For our purposes, we are viewing this from the
your project, you reduce the “Friction” that reduces your perspective of the cost (in terms of productivity) on
Project Velocity. Less friction means higher Velocity and individuals in the team, or the team as a whole. If you can’t
greater productivity. eliminate a force that reduces Velocity (deceleration), then
In Software development, there are countless forces that do your best to make it as consistent and predictable as
can affect the Velocity of your team. As a team leader, possible (minimal and infrequent deceleration). The more
project manager or executive, it is up to you to minimize consistent and predictable the force, the more consistent
the external forces that negatively impact on the team’s your Velocity will be.
velocity. Friction forces are more or less constant. You
can’t eliminate all of them, but you can reduce many of • Team changes: Adding member, losing members,
them. Optimizing them before Calibration is important. changing roles and responsibilities.
Friction forces include: • New tools: Introduction of new development tools,
database technologies, languages, etc… require
• Team composition: Are the right people with the learning, and reduce Velocity until learned.
right skills on the team. • Vendor defects: Defects in third party tools and
• Process: Changes to your processes: Agile software requiring developer workarounds eat into
methods, build, release, testing, etc… productivity and Velocity.
• Environmental factors: Interruptions, noise, poor • Responsibilities outside of the project: Team
ventilation, poor lighting, uncomfortable seating members assuming additional responsibilities
and desks, inadequate hardware or software, etc… outside of the project. Shifting between projects can
• Team dynamics: Some team members may not have a dramatic effect on productivity.
play nicely with others. • Personal issues: Colicky baby at home, personal
health, family dynamics, etc…
As you can see, most Friction type forces are largely • Stakeholders: Stakeholders may not be responsive
environmental. Their effects are long term. They are also, to requests for information from the developers or
often the easiest to address. Individually, Friction forces are tester and thus create delays. They may also have
usually weak forces. Cumulatively, they can have a unreasonable expectations of the team.
significant impact. Obtaining optimal Team Velocity • Unclear requirements: Lack of clarity or detail in
requires that they be eliminated or reduced. requirements cause unnecessary churn and rework.
Tale 3 shows four friction factors with a range of values. • Changing requirements: New project
These values have been adjusted according to their risk specifications might require skills that are non-
severity.
existent or weak in the team. Acquiring the skills,
either by introducing new team members, or by an
Ziauddin, ACSA, Vol. 2, No. 1, pp. 314-324, 2012 320
∑n
Dynamic Force Factors
i=1(ES)i 1
T= ∗ Months Expected Team Changes 0.98
(Vi)D WD
Where WD is No of Work Days in a Month and ES is the Introduction of New Tools 0.97
User Story Effort, Calculated as Vendor’s Defect 0.94
ES=Complexity x Size Team member’s responsibilities
Vi is the Initial or Raw Velocity, calculated as outside the project 0.98
Personal Issues 0.98
Vi = Units of Effort Completed / Sprint Time. Expected Delay in Stakeholder
Sprint Time is the No of Days in sprint. response 0.96
In order to adjust velocity against friction and dynamic Expected Ambiguity in Details 0.98
forces, deceleration (D) is calculated as: Expected Changes in environment 0.97
D=FR x DF Expected Relocation 0.98
Where FR is product of all four friction factors (FF),
described in Table, which is calculated as:
RESULTS
4
7.19% MMRE for Time and 5.76% MMRE for Cost have
been observed, which is fairly low rate. Prediction at the In this paper a software effort estimation model for Agile
average MMRE for Time and Cost is 57.14% and 61.9% Software projects has been presented. The model uses User
respectively, which means that estimated results for Time Stories of as base for estimation. In order to address
are predicted to be 57.14% lower than calculated MMRE different challenges faced by the agilest, the model is
whereas estimated results for Cost are predicted to be developed to accommodate most of the characteristics of
61.9% lower than calculated MMRE for Cost. It is quite Agile methodology, especially Adaption and Iteration. The
satisfactory and acceptable estimation accuracy. model is practically implantable. There may be certain
flaws in the model, therefore it is hoped that the work put
CONCLUSION
Ziauddin, ACSA, Vol. 2, No. 1, pp. 314-324, 2012 323
MUKHOPADHYAY, T. & KEKRE, S. (1992) Software Effort Vajargah B. and Jahanbin A., Approximation theory of matrices
Models for Early Estimation of Process Control Applications. based on its low ranking and stochastic computation, Advances in
IEEE Transactions on Software Engineering, 18, 915-924. Computer Science and its Applications (ACSA) Vol. 2, No. 1,
2012; pp 270-280
MUKHOPADHYAY, T., VICINANZA, S. S. & PRIETULA, M.
J. (1992) Examining the Feasibility of a Case-Based Reasoning Vajargah1 B.F., Moradi M. and Kanafchian M., Monte Carlo
Model for Software Effort Estimation. MIS Quarterly, 16, 155- optimization for reducing the condition number of ill conditioned
171. matrices, Advances in Computational Mathematics and its
Applications (ACMA), Vol. 1, No. 1, March 2012; pp 169-173
PAULK, M. C. (2002) Agile Methodologies and Process
Discipline. CrossTalk, The Journal of Defense Software Viswanadham K.N.S. and Raju Y.S., Quintic B-spline Collocation
Engineering, 15-18. Method for Eighth Order Boundary Value Problems, Advances in
Computational Mathematics and its Applications (ACMA),Vol. 1,
PETERS, J. F. & PEDRYCZ, W. (1999) Software Engineering: No. 1, March 2012; pp 47-52
An Engineering Approach, John Wiley & Sons, Inc.
Yang X., Zhang Y., A New Successive Approximation to Non-
RUHE, M., JEFFERY, R. & WIECZOREK, I. (2003) Cost homogeneous Local Fractional Volterra Equation, Advances in
Estimating for Web Applications, Proceedings of the 25th Information Technology and Management (AITM) Vol. 1, No. 3,
International Conference on Software Engineering. Portland, 2012; pp 138-141
Oregon.
Yu-min J., Ting X, WANG Q. and SU J., Task Planning based on
SCHMIETENDORF A., KUNZ M., DUMKE R. (2008) Effort Intelligence Algorithm under Uncertainty, Advances in
estimation for Agile Software Development Projects, Proceedings Information Technology and Management (AITM) Vol. 1, No. 4,
5th Software Measurement European Forum, Milan 2012; pp 166-169
STAMELOS, I. & ANGELIS, L. (2001) Managing Uncertainty in Zhang Y. and Lenan Wu, Artificial Bee Colony for Two
Project Portfolio Cost Estimation, Information and Software Dimensional Protein Folding, Advances in Electrical Engineering
Technology, 43, 759-768. Systems Vol. 1, No. 1, March 2012, pp 19-23
Shoukat A., A Reducibility of the Kampéde Fériet Function, Zhang Z., Pattern Recognition by PSOSQP and Rule based
Advances in Computational Mathematics and its Applications System, Advances in Electrical Engineering Systems Vol. 1, No.
(ACMA), Vol. 1, No. 1, March 2012; pp 76-79 1, March 2012; pp 30-34
Shubatah M.Q.H., Domination in product fuzzy graphs,Advances ZIA, Z.; RASHID, A.; UZ ZAMAN, K. (2011) Software cost
in Computational Mathematics and its Applications (ACMA), estimation for component based fourth-generation-language
Vol.1,No.3,2012; pp 119-125 software applications, IET Software , 5, Page(s): 103-110