Tuesday, September 15, 2015

Estimation In SCRUM Using Project Delay-Related Factors

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