Abstract:
Agile software methodologies are widely used in a variety of industrial
projects because of their volatile and flexible nature. Due to the flexible
nature the estimation of cost and effort is a very difficult task in Agile
environment. Ignorance of estimation methods may cause serious effects like
exceeding the budget, not delivered on time, poor quality and not right
product. So accurate estimation of software is critical for both developer and
customer,that involves the determination of effort (person-month), duration (in
months) and cost (in rupees).In Agile, software is developed in small
iterations so regression testing is done to check whether the new changes have
not adversely affected the existing features.However, regression testing
efforts have not been considered for estimation in previous Agile estimation
techniques.In this paper to support flexible and changing nature of Agile, a
regression testing based algorithmic estimation technique has been proposed
that estimates the more accurate release date, cost, effort and duration for the project. The effectiveness and
feasibility of the proposed algorithm has been shown by considering a case
study of small web-based application which shows the efficacy of the proposed
method.
1.
Introduction
The success and failure of a
software project is determined by accurate estimation. This is the process to
calculate the time that will be taken to finish the project, cost of the
project and the effort required to complete the project. Estimation is very
important task as improper estimation may lead to failure of the software
project. It may also increase the budget of the customer and sometimes the
nature of the project is also affected[1]. The estimation in the Agile
environment is a difficult task due to the changing requirements. The figure 1
shows the Agile software development life cycle.
Fig 1:
Agile Software Development Life Cycle
Regression testing is done in Agile to make sure that the new
incorporated changes should not have side effects on the existing functionalities
and thereby finds the other related bugs. Thus regression testing may consume
much time, cost and effort in the project and therefore it is considered as an
expensive process. So there is a need for an algorithmic estimation technique
to calculate the time, cost and effort of the project using regression testing.
In this paper
people and project related factors[3] are considered and regression testing is
performed. Based on these factors and regression testing in each iteration an
algorithm has been designed for the cost, size and effort estimation of a
software project.
In Section 2 different estimation technique in
Agile estimation are discussed. In Section 3 related work in field of Agile
estimation is described and in Section 4 problems related to estimation in Agile
are discussed and Section 5 describes proposed algorithm, in Sector 6 case
study is taken, Section 7 contains the Conclusion and future work.
2. Agile
Estimation Techniques
Estimation is the process to estimate the cost,
effort and the time taken for a software project. The process of estimation
starts from the planning phase of the Software development life cycle (SDLC)
and this is refined throughout all the phases of the SDLC [1]. Agile methods are volatile in nature and can accept last minute
changes. Some approaches of estimation in Agile are discussed in table 1.
Table 1: Agile Estimation Techniques
Technique
|
Approach
|
Problem
|
1.Analogy
|
This
approach is based on the collective experience and knowledge of several
Project managers drawn from the results of many specific projects.
|
This
method is not recommended as it may provide very unrealistic estimates.
|
2. Expert Opinion
|
In this technique an expert is
asked how long a task will take to complete.
|
The Problem with
this technique is that it requires the opinion of multiple experts.
|
3.Top-down
|
An
overall cost estimate for the system is derived from global properties, using
either algorithmic or non-algorithmic methods.
|
This method does not promote good
software engineering practice.
|
4.Bottom-up
|
In
this method each component of the software system is separately estimated and
the results aggregated to produce an estimate for the overall system.
|
The
problem is that how the system is decomposed into different components.
|
3. Related Work
This section identifies some of the key
research work in the area of Agile development. S.Bhalero, Maya Ingle [2]
proposed an algorithm for cost estimation by incorporating various factors with
different intensity levels. These factors include mainly project domain,
configuration, performance, complex processing, data transaction, operation
ease, multiple sites and security. But various factors like communication
skill, managerial skill, and familiarity in team are missing.
The author of this paper [3] proposed an
algorithmic method for cost and effort estimation in Agile by considering
project as well as people-related factors like quality requirements,
complexity, transaction etc.
Jørgensen and Sjøberg [13] report that
preplanning effort estimates can have a major impact on detailed planning
effort estimates, even when the estimators are told that the early estimates
are not based on historical data or expert knowledge, i.e., should not be
considered as relevant information to the estimation process.
Abrahamsson
et al. [6] demonstrated how to collect metrics to measure productivity, quality
and schedule estimation, cost and effort estimation for an Agile Software
Development project using XP. They discussed the
concept of Agile development, presented processes, roles, practices, and experience with 10 agile development
methods, and compared the methods with respect to the
phases that they support and the level of competence
that they require. They provide evidence that
Agile methods are ‘‘effective and suitable for many situations and
environments”.
Williams
et al. [9] investigated the usage of a subset of XP [11] practices at a group
in IBM. The product developed at IBM using XP was found to have significantly
better pre-release and post-release quality compared to an older release. The
teams using XP reported an improvement in productivity, schedule, cost and
effort estimation. In addition, customers were more satisfied with the product
developed using XP because the teams delivered more than what the customers had
originally asked for.
Heemstra
[10] surveyed 364 organizations and found that only 51 used models to estimate
effort and that the model users made no better estimate than the non-model
users. Also, use of estimation models was no better than expert judgment.
Finnie
and Wittig [12] applied artificial neural networks (ANN) and case-based
reasoning (CBR) to estimation of effort. Using a data set from the Australian
Software Metrics Association, ANN was able to estimate development effort
within 25% of the actual effort in more than 75% of the projects.
4.
Problems in Existing Methods
Most of the existing
effort estimation techniques have been developed to support traditional
sequential software development methodologies whereas Agile Software
Development is iterative in nature. If these traditional techniques are used
for effort estimation of Agile software projects, then the results will be
definitely inaccurate. Based on the critical study of various research work
discussed above, several problems are there in existing estimation and tracking
methods for Agile software developments (ASD).
The first problem is that regression testing is not
considered in previous agile estimation methods. Since the software is
developed in small iterations in Agile so there is a strong need of regression
testing to check whether the new added code has not affected the previous one.
Therefore regression testing consumes much time, cost and effort. So there is
need to consider the regression testing related efforts also.
Second, as the
requirements are taken in Agile Software Development in terms of Story-points
which describe the size of a particular requirement and since a story point is
a relative value, the total story point value can fluctuate with a slight
variation in the baseline story point. To set the baseline story point, the
Agile team finds the simplest user story and determines story points of other
user stories based on the baseline. If the baseline story point changes, other
story points also get changed. Thus, an absolute cost metric rather than a
relative metric is necessary.
Third, since
the story points and velocity are used to estimate the initial size of the
project, a schedule is derived using a simple linear extrapolation. But if
regression testing is done then the velocity of the project is de-accelerated.
So, there is a need that the velocity should be measured at the end of
iteration after considering the regression testing efforts and the various
factors which affects the project.
In Agile
environment, at the initial stage of a project, there is high uncertainty about
various project attributes. The estimates produced at early stages are
inaccurate, as the accuracy depends highly on the amount of reliable
information available to the estimator. Agile Estimation methods may lead to
the errors in case of inexperienced Agile team. Therefore, there is strong need
of analyzing the factors that affect the estimation of the Agile project.
Therefore an algorithmic effort estimation model is
needed to predict development effort of Agile Software development.
5. Proposed Regression Testing Based Agile
Estimation Model
There are a multitude of factors
that affect the ability of an estimator to accurately estimate the efforts.
Accurate estimation requires a multidimensional view to produce accurate and
effective estimates. The various factors which can affect the cost and duration
of the project have been taken in [3].However, regression testing efforts have
not been considered while estimating with the project and people related
factors. To accommodate the regression testing efforts which consumes much time
and cost during every iteration, so a regression testing based Agile estimation
technique is being proposed in this section.
The level of the factor can be low, medium or
high in the project. Unadjusted Value of the Story-point (UV) is provided
according to the level of the factor. At low level UV is 1, at medium level UV
is 6 and at High level UV is 10 as shown in table 2.
Table 2:
Hypothetical values of Story-points
S.No
|
Hypothetical
values of Story-points
|
|
Unadjusted Value(UV)
|
Level(L)
|
|
1.
|
10
|
3
|
2.
|
6
|
2
|
3.
|
1
|
1
|
Various
People and Project related Factors are often unpredictable and unexpected. They
may decelerate or accelerate the project and affects cost and time of the
project. The factors which affect the most are
shown in table 3.
Table 3:
Project and people-Related factors
S.No
|
Related
Factors
|
|
Project-Related
Factors
|
People-Related
Factors
|
|
1
|
Type of Project
|
Communication
Skill
|
2
|
Quality
Requirement
|
Familiarity in
Team
|
3
|
Hardware and
Software Requirement
|
Managerial Skill
|
4
|
Ease of
Operation
|
Security
|
5
|
Complexity
|
Working Time
|
6
|
Data Transaction
|
Experience of
Previous Project
|
7
|
Multiple Site
|
Technical
Ability
|
The
above people and project-related factors and regression testing both impacts on
the estimation. So an estimation algorithm based on regression testing efforts
is proposed and implemented.
5.1 Proposed
Algorithm
·
Identify the total number of user-stories(US )
and story points(SP) per user story and compute Baseline Story Point (BSP)
BSP=US*SP
·
Identify the People-related and
Project-related factor which affects the story points in agile environment where
P= {p1, p2,....pi...,p14 },
where 1< i <=14
·
Identify the level set L for all factors
where L={1,2,3}
·
Assign the values to each factor according
to the level of factor.
o
If L=1 then Value = 1 ,
o
If L=2 then Value = 6 ,
o
If L=3 then Value = 10
·
Compute the Estimated Story Points (ESP)
as
ESP=BSP+0.1(UV)
·
Compute the Velocity from first iteration
as
V = Story point completed in one iteration/
Story point in one user story.
·
Assign Time Rate (TR) and Velocity Rate
(VR) to each of the factor based on the project and team.
o
TR= {tr1, tr2...tri...tr14}
where 0<=i<=3
o
VR= {vr1,vr2…vri…
vr14) where 1<=i<= 0.93
·
Compute the Decelerated Velocity by
considering various factors to optimize the velocity
DV= V*VR
·
Compute the Estimated time required for
the project
o
Estimated Development Time (EDT) =
ESP/Velocity (in Days)
o
Estimated Regression Testing Time (ETT) =å (Tenv + Trts + Trtp
+ Trg + Tra) where Tenv Environment setup for
testing, Trts Regression test Selection, Trtp
Regression test Prioritization, Trg Test Report Generation , Tra
Regression Test Analysis
·
Compute Total Estimated Time (TET)
TET=EDT+ETT
·
Compute Estimated Regression Testing
Effort(ERTE)
ERTE = Regression Testing Effort per
Iteration*(No. of iterations-1)
·
Compute Regression Testing Time (RTT)=Regression
testing time in one iteration
·
Compute Total Estimated Effort (TEE)
TEE=ESP+ERTE
·
Compute Total Estimated Time (TET)
TET=EDT+ETT+RTT
·
Compute Total Estimated Cost (TEC)
TEC=TEE*Cost per story-point
6.
Case Study
In this section, a small project of
web-base application with a total of 30 user-stories has been considered. The
various inputs are as below:
Inputs:
No. of
user stories (US) = 30
No. of
story-points in one user-story (SP) = 10 SP
BSP=US*SP=300
No. of
story point completed by the team in one iteration = 50 SP
No. of
days in one iteration (iteration time) = 10 days
No. of
working days per month = 22 days
No. of
working hours per day = 8 hrs.
Regression
effort per iteration=10 SP
Cost
per story-point=50 Rs.
In this case study all the factors
have been considered at medium level. Time Rate and velocity factor refers to a
numerical quantity that relatively represents the effect of the attribute on
the time of completion and velocity respectively. Hypothetical
Values of proposed factors at Level 2 are given in Table 4.
Table 4:
Hypothetical Values of Proposed Factors at Level 2
Type of Factors
|
Level
|
UV
|
VF
|
TR
|
|
1.
|
Type
of project
|
2
|
6
|
.98
|
2
|
2.
|
Quality
req.
|
2
|
6
|
.97
|
2
|
3.
|
H/W
and S/W Requirements
|
2
|
6
|
.98
|
1
|
4.
|
Ease
of Operation
|
2
|
6
|
.99
|
2
|
5.
|
Complexity
|
2
|
6
|
.97
|
1
|
6.
|
Data
transaction
|
2
|
6
|
.98
|
1
|
7.
|
Technical
ability
|
2
|
6
|
.97
|
2
|
8.
|
Tool
availability
|
2
|
6
|
.98
|
2
|
9.
|
Multiple
site
|
2
|
6
|
.99
|
1
|
10.
|
Communication
skill
|
2
|
6
|
.98
|
1
|
11.
|
Familiarity
in team
|
2
|
6
|
.97
|
2
|
12.
|
Managerial
skill
|
2
|
6
|
.97
|
2
|
13.
|
Security
|
2
|
6
|
.98
|
2
|
14.
|
Working
Time
|
2
|
6
|
.99
|
2
|
Regression Test Strategy
The basic purpose of the regression
test is to ensure that functions in previous deliveries are not adversely
affected by new code. After each iteration, regression testing
is needed as each iteration incrementally adds
more time and effort. So the average time required for various regression
testing activities is considered based on historical data as shown in table 5.
Table 5.
Average Time Required for Regression Testing Activities in a small project
Regression
Testing Activity
|
Avg.
Estimated Time
|
Environment setup for testing
|
3 Days
|
Regression test Selection
|
1 Day
|
Regression test Prioritization
|
2 Days
|
Test Report Generation
|
9 Days
|
Regression Test Analysis
|
2 Days
|
Bug fixing
|
1 Day
|
ETT
|
18 Days
|
Evaluation and results by implementing the
proposed algorithm
· Estimated
· Initial Velocity = Story point completed in one iteration/ Story point in one user story =5 SP / Day
· VF=Average of VF of all the 14 factors=0.96
· Decelerated Velocity (DV) =V*VF=5*0.96=4.80 SP/ Day
· Estimated Development Time (EDT) =ESP/DV=64.25 Days
· Estimated Testing Time(ETT) = 18 Days
· Total Estimated Time TEE=EDT+ETT=64.25+18=82.25 Days
· No. of Iterations=TEE/Time for one iteration=8.225 iteration
· Estimated Regression Effort (ERTE)=10SP*(8.225-1) =72.25 SP
· Estimated Effort (EE) = ESP+ERTE=308.4+72.25=380.65 SP
· Cost = EE*cost per story-point=380.65*50=19032.50 Rs.
7. Conclusion
In this
paper an Agile Software Estimation technique based on Regression testing has
been proposed and implemented by considering a small web-application. By this
method Cost, Effort and Duration of small and medium size projects can be
calculated efficiently.
The proposed algorithm overcomes the challenges in Agile estimation. In the
future work the other factors which affect the estimation most can be added;
thereby having the estimation more efficient.
References
[1]
Cockburn, “Agile Software Development,” Pearson Education, Asia Low Price Edition, 2007.
[2]
S. Bhalereo,Maya Ingle,”Incorporating
Vital Factors In Agile Estimation Through Algorithmic Methods”,
International Journal of Computer Science and Applications, 2009 Vol. 6, No. 1,
pp. 85 – 97.
[3] Rashmi Popli, Naresh Chauhan,” A Sprint-point Based Estimation in Scrum” IEEE International conference Information Systems and Computer networks 9th-10th
march 2013 at GLA University
[4]
Rashmi Popli, Naresh Chauhan,” Research
Challenges of Agile Estimation” Journal of Intelligent Computing and Applications” (July-December2012)
[5]Mike Cohn, “Agile Estimating and Planning" Copyright 2005 Addison-Wesley.
[6]
P. Abrahamsson, Koskela, J., "Extreme Programming: A Survey of Empirical
Data from a Controlled Case Study", Proceedings of International Symposium
on Empirical Software Engineering, pp. 73-82, 2004.
[7] Cohn, M. (2004). User
stories applied: For agile software development. Boston , MA :
Addison-Wesley
[8]
F. Maurer and S. Martel, "Extreme Programming: Rapid Development for
Web-Based Applications", IEEE
Internet Computing, 6(1), pp. 86-91, Jan/Feb 2002.
[9] L. Williams, W. Krebs, L. Layman, A.
Antón, and P. Abrahamsson, "Toward a Framework for Evaluating Extreme
Programming", Proceedings of Empirical Assessment in Software Engineering.
(EASE)2004,Edinburgh ,Scot.,pp.11-20,2004.
[10] F. J. Heemstra, “Software cost estimation”, Information and Software Technology, vol. 34, no.10, 1992,pp.627-639.
[11] J. Hihn and H. Habib-Agahi, “Cost estimation of software intensive
projects: a survey of current practices”, International Conference on Software Engineering, 1991, pp.
276-287.
[12]G. R. Finnie, G. E. Wittig, “AI tools for software development
effort estimation”, Software
Engineering and Education and Practice Conference, IEEE Computer Society
Press, pp. 346-353, 1996. [13]M. Jørgensen, "
Estimation of Software Development Work Effort: Evidence on Expert Judgment and
Formal Models," forthcoming in
International Journal of Forecasting, 2006.
No comments:
Post a Comment