Abstract:The key measures of any project about its perfectness are ability to
complete in the scheduled time and within the estimated cost. Cost and effort
are important factors whenever a project is developed. The estimation of cost
and effort is a difficult task in Agile environment. The Scrum is
the widely used method of Agile. Most of the software development organizations
are using Scrum these days but these are facing problems related to estimation.
It
has been observed that the current estimation method in Scrum mostly rely on
historical data from past projects and expert opinion but in absence of
historical data and experts these methods are not efficient. So there is need
of an algorithmic method, which can calculate cost and effort of the software
project. In this direction S.Bhalero, Maya Ingle [2] has considered some
project-related factors that calculate the cost as well as effort of the
project for a general Agile environment. However, several other delay related
factors may affect the Scrum environment. In this work an Algorithmic
estimation method is being proposed considering various factors that can delay
the project thereby estimating the more accurate release date, cost, effort and
duration for the project specifically for Scrum. The effectiveness and
feasibility of the proposed algorithm has been shown by considering case study
in which different levels of factors are taken and compared.
1. INTRODUCTION
Agile development is now accepted
globally as the best way to develop, maintain, and support software systems.
Scrum is designed to add energy, focus, clarity, and transparency to project
planning and implementation. Scrum is a simple
frameworkused to organize teams and get work done more productively with higher
quality. It allows teams to choose the amount of work to be done and decide how
best todo it, thereby providing a more enjoyable and productive working environment.
Scrum is composed of the following project management practices: The
Product Owner creates the requirements, prioritizes them, and documents them in
the Product Backlog during Release Planning. In Scrum, requirements are called
features. Scrum teams work in short iterations. When Scrum was first defined
[1, 2], iterations were 30-days long. More recently Scrum teams often use even
shorter iterations, such as two-week iterations. In Scrum, the current
iteration is called the sprint.The
estimation of cost,
effort, size and duration of a software project in a sprint is a difficult
task. The accurate estimations of software are critical for both developer and
customer. Ignorance of estimation methods may cause serious effects like
exceeding the budget, notdelivered on time, poor quality and not right product.
So estimation of software is important that involves the determination of
effort (person-month), duration (in months) and cost (in rupees). Moreover it
becomes more complex when requirements of the project are changed continuously.There
is a fundamental problem applying accurate estimation and tracking due to the
quality of baseline plan and unclear project scope for scrum project due to
volatile requirements. In Scrum, the estimation is done by historical data from past projects
which are not efficient. However, there may be various project related factors
that may affect the project estimation. Moreover, people related factors may
also affect the project development as per Agile principles. Therefore, delay-related
factors that can cause delay in a project must be considered while estimating
in Scrum environment. Thus an algorithmic method that quantifies various project
delay related factors has been proposed in this work.
In Section II currently used estimation
technique for Scrum is discussed. In Section III related work in field of Scrum
estimation is described and in Section IV problems related to estimation in
Scrum are discussed andSection V describes proposed Sprint-points, factors and algorithm. In
Section VI feasibility of our algorithm is shown, Section VII contains the
Conclusion and future work.
2. SCRUM ESTIMATION TECHNIQUES
Estimation is the process that is used to estimate the cost, effort and
the time taken to complete the project which is going to be developed. The
process of estimation starts from the planning phase and refined throughout the
project. Agile methods adopt the
practice of accepting last minute changes in the software through gathering the
requirements in iterative and incremental manner [13]. Some approaches of
estimation in Agile are in table below.
TABLE I - Agile Estimation methods
S.No
|
Approaches of Agile Estimation
|
||
Name of approach
|
Working
|
Problem
|
|
1.
|
Learning-oriented Approach
|
This approach is based on
the collective learning from previous estimation experience and knowledge of
several managers drawn from the results of many specific projects.
|
This method is not used as it may provide very
unrealistic estimates.
|
2.
|
Expertise-based Approach
|
In
this technique an expert compare the project with similar past projects based
on personal memory.
|
It requires opinion of multiple experts.
|
3.
|
Regression methods
|
This model is based on
regression data and developing regression equations to make estimates.
|
It
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.
|
How the system
is decomposed into different components
|
3. RELATED WORK
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.
Jamieson [8] pointed out a number of problems with current estimation
models in scrum. First, the procurer must often allocate the budget without
sufficiently understanding the requirements. Thus, the budget often does not
reflect the true scope of the effort, resulting in heavy and costly change
management, budget over-runs, and delays. The most established methods of
estimating the cost of software development require more data than is typically
available to the supplier bidding on a tender from the procurer, resulting in
misunderstandings, inaccurate quotes, and frequently, an adversarial
relationship between the procurer’s contract manager and the supplier.
Benediktsson [11] investigated the
impact of software development approach on the resulting product and its
attributes by comparing V-model (VM), evolutionary model (EM), incremental
model (IM), and extreme programming (XP).His findings were that XP and Scrum
method provides more quality and productivity.
Williams et al. [7, 9] investigated the
usage of a subset of XP [5] 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. PROBLEM IN EXISTING METHODS
OF ESTIMATION
In
Scrum environment the problem is that as 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 base use story, 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 have to be
changed. Thus, an absolute value like sprint point is needed rather than a
relative value of story-point. Based on the critical study of various research
discussed above, several problems are there in existing estimation and tracking
methods for scrum software developments.
First,
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 theAgile project[15].
The
second problem is Effort
Estimation. Estimations are done in units of time while to estimate how
much each team member can spend effective time for sprint related work is more
important. The fact is that no one can sit at one place to complete the job
without attending meetings, lunch breaks, unexpected breaks, checking emails
and phone calls etc.
The third problem is Release Date
Estimation. The Release planning
is the activity to calculate the actual release date so that the final product
is handed over into use for the customer. In Scrum Estimation technique a release plan is
made but it doesn’t consider various factors like velocity, cost-benefit ratio
etc.
The fourth problem is that
story-points cannot be easily related to the time duration because story points
represent the amount of work and the velocity differs from team to team. Thus,
sprint-points are needed that can be used to calculate cost and effort.
In Scrum 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. Scrum
Estimation methods may lead to the errors in case of inexperienced Agile team.
Therefore, there is strong need of analyzing the factors hat affect the
estimation of theAgile project.
5. PROPOSED DELAY-RELATED
FACTORS
In this project some
delay related factors have been proposed that can affect the estimation of cost
and effort of the project.These factors are as below:
1.
Complexity
2. Security
3. Technical Ability
4. Expected Ambiguity in Detail
5. Expected Changes in Environment
6. Team Members Responsibilities Outside the Project
1. Complexity:-Complexity
defines the uncertainty of the project; high complexity means the project is
highly uncertain. Complexity can be technical complexity that includes number
of technologies involved, another can be complexity related to story points and
another can be the management complexity that project staffing, etc. Complexity
is a major factor as it increases cost, size and duration of the project.
2. Security:Security is the most important factor and there are
many aspects of security. Security can be network security, functional
security, code security and documentation security. Security should always be
taken as the highest priority factor.
3. Technical
Ability:
The technical ability means the ability to understand the specific kind of
activity, one involving method, techniques, processes, procedures, software,
etc. It also means having a good knowledge of specific tools and emerging
technologies. If a team consists of technically skilled members, it reduces the
learning time and thus reduction in the duration of the project.
4. Team
Members Responsibilities outside the Project: Team members have lots of responsibilities
outside the project. Shifting between the projects may be done and due to this
the duration of the project is affected.
5. Expected
Ambiguity in Requirements:Sometimes lack of clarity in the
requirements causes the change in duration as well as cost of the project.
Requirements are gathered in the beginning of the project and on that basis the
task is performed, but if the requirements are not clear no task can be
started. This increases the duration of the project.
6. Expected
Changes in Requirements: Scrum promotes changing
requirements that mean at any point of time in the project new requirements can
be added. Due to change in requirement there may be a situation where there
will be need for more tools and hence increase in the team member and thus the
changing requirements increases the cost and duration of the project.
6.PROPOSED ALGORITHM
The proposed
algorithm explains the various steps involved in estimating a project in Scrum
environment.
·
Identify
the delay related factors which effect the effort in Scrum environment where
P={ p1,p2,....pi,…….pn
} where 1<i<=n
·
Identify
the unadjusted value of Story-points related to each level in Scrum environment
where UVSP = {p1 + p2 + p3
+ …..+ pn }
where Li (1<=i<=3)
·
Compute
the estimated story points(ESP) as
ESP=BSP+0.1(UVSP)
Where BSP is Baseline story Points
·
Compute
velocity from first iteration as
Velocity=ESP/story point completed
·
Compute
new velocity by considering delay-related factors
V=velocity*d
·
Estimated
Development Time (EDT) = ESP/Velocity (in Days)
·
Release
Date=Start date + EDT
7. CASE STUDY
In this section the feasibility of our
algorithm is shown by a case study in which the prioritization order of user
story is calculated. We have considered the user stories of enable quiz which is a technical quizzing solution; for companies that
hire engineers and it will allow them to better screen job employees and assess
their internal talent for skills development.
Table 2: Calculation of I/E
Story
|
Importance
|
Hours factor
|
I/E
|
1.As a manager, I want to browse my existing quizzes
|
10
|
7
|
10/7=1.42
|
2.As a manager, I can make sure I’m subscribed to all the
necessary topics for my skills audit.
|
4
|
3
|
4/3=1.33
|
3. As a manager, I can add additional technical topics to my
quizzes.
|
1
|
16
|
1/16=0.0625
|
4.As a manager, I want to create a custom quiz bank
|
8
|
8
|
8/8=1
|
5. As a manager, I want to create a quiz so I can use it with
my staff.
|
5
|
4
|
5/4=1.25
|
6. As a manager, I want to create a list of students from an
Excel file so I can invite them to take the quiz.
|
7
|
5
|
7/5=1.4
|
7. As a manager, I want to create a list of students online.
|
6
|
8
|
6/8=0.75
|
8. As a manager, I want to invite a set of students.
|
3
|
8
|
3/8=0.375
|
9. As a manager, I want to see which students have completed
the quiz.
|
9
|
6
|
9/6=1.5
|
10. As a manager, I want to see how the students scored on the
test so I can put in place a skills improvement program.
|
2
|
16
|
2/16=0.125
|
8. RESULTS
By using Delay-related factors decelerated velocity is calculated on
the basis of which effort and cost is calculated. The Delay-related Factors are
taken at low level. So Unadjusted value of Story-points is 6 ,On the basis of
the project delay done by these factors Velocity Factor is calculated which is further used in
calculations of The effect caused by these factors.
Table 3: Velocity Factor
S.No
|
Delay-Related Factors
|
Medium level
|
VF
|
1.
|
Complexity
|
UVSP=6
|
0.93
|
2.
|
Security
|
UVSP=6
|
0.94
|
3.
|
Technical
Ability
|
UVSP=6
|
0.97
|
4.
|
Expected Ambiguity in Detail
|
UVSP=6
|
0.98
|
5.
|
Expected Changes in Environment
|
UVSP=6
|
0.96
|
6.
|
Team Members Responsibilities
Outside the Project
|
UVSP=6
|
0.96
|
·
Unadjusted Value (UV) = All the six
factors at medium level so UVSP=6*6= 36
·
Total User-stories=10
·
BSP=300
·
Project Start Date=1st
Januaury,2014
·
Estimated Story Points (ESP)
=BSP+0.1(UVSP) =300+0.1(36)=303.6
·
Initial Velocity = 5 SP / Day
·
AvgVF=Average of VF of all the 6
factors=0.95667
·
Decelerated Velocity (DV)
=V*AvgVF=5*0.95667=4.78330 SP/ Day
·
Estimated Development Time (EDT)
=ESP/DV=303.6*8/4.78330=507.76 Hours
·
Project End date=14 Jan 2014
7. IMPLEMENTATION
The case study is
implemented in a Agile Management tool in Excel. The snapshots of the results
are as in Figure 1, Figure 2 and Figure 3.Figure 1 shows the list of available
developers, testers, technical writers, business analyst, test manager, project
manager and configuration manager and there available capacity in person days.
Figure 2 shows how the release date is calculated using the test management
tool.In figure 3 deacelerated velocity is calculated by using the velocity
factor.
Figure 1:
Capacity Management
Figure 2:
Release date
Figure 3: Velocity Factor
7. CONCLUSION
The purpose of this research work is to develop an
algorithm for estimation which can calculate accurate cost, effort and duration
of the project. In this paper resistance factors in Agile environment are
proposed that impact the estimation of the project. Estimated value of Story
points highly depends on the value of these factors. In this project work project
delay related factors are proposed that impact the estimation of release date
in a project in agile environment. The release date calculation of user-stories
highly depends on the value of these factors. In this work the decelerated
velocity is calculated on the basis of these factors.The approach developed is
really simple and easy to understand and can be effectively used for release
date calculation in Agile environment. By this method release date of small and
medium size project can be calculated efficiently. In the future the other
factors which are important for users can be considered; thereby making correct
and efficient estimations of time.
REFERENCES
[1] Beck, K., & Fowler, M. (2000). Planning
Extreme Programming.Upper Saddle River, NJ: Addison-Wesley Professional.
[2]S.
Bhalereo,Maya Ingle,”Incorporating Vital Factors In Agile Estimation Through Algorithmic
Methods”,
International Journal of Computer Science and ApplicationsTechnomathematics
Research Foundation Vol. 6, No. 1, pp. 85 – 97,2009
[3]Mike
Cohn, “Agile Estimating and
Planning",Addison-Wesley,2005.
[4]
Mike
Beedle“Agile Software Development with Scrum”, Ken Schwaber, Prentice Hall,
2001, pp. 100-101
[5] Mike Beedle , Martine Devos ,Yonat Sharon ,Ken Schwaber,
Jeff Sutherland, “SCRUM: An extension pattern language for hyper
productive software development”, 2000.
[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] L.
Layman, L. Williams, and L. Cunningham, "Motivations and Measurements in
an Agile Case Study", Proceedings of ACM SIGSOFT Foundation in Software
Engineering Workshop Quantitative Techniques for Software Agile Processes
(QTE-SWAP), Newport Beach, CA, 2004.
[8] Jamieson, D., K. Vinsen, G.
Callender, “Agile Procurement to Support Agile Software Development, Proceedings of the 35th IEEEInternational
Conference on Industrial Informatics,2005.
[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 Eng. (EASE),
Edinburgh, Scot., pp. 11-20, 2004.
[10]
F. J. Heemstra, “Software cost estimation”, Information and Software Technology, vol. 34, no.10, pp.
627-639, 1992
[11] O. Benediktsson, D. Dalcher, and H.
Thorbergsson,“Comparison of Software Development Life Cycles: A Multiproject
Experiment,” IEEE Proceedings – Software,vol 153, 2006, pp. 87-101.
[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]
RashmiPopli, Naresh Chauhan,” Research Challenges of Agile Estimation” Journal
of Intelligent Computing and Applications” July- Dec 2012.
[14] RashmiPopli, Naresh Chauhan,” “Scrum- An Agile
Framework”, International Journal of Information Technology and Knowledge
Management (IJITKM) ISSN: 0973-4414", Vol-IV, Number-I, 20 Aug 2010. [15] RashmiPopli, Naresh
Chauhan,”Sprint Point Based Estimation in Scrum”International Conference on
Information Systems and Computer Networks ISCON-2013,at GLA Mathura,March 2013.
No comments:
Post a Comment