See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/288839279 Effort Estimation in Agile Software Projects using Fuzzy Logic and Story Points Conference Paper · December 2015 CITATION READS 1 1,623 3 authors: Atef T. Nour El-Din Raslan 6 PUBLICATIONS 52 CITATIONS Nagy Ramadan Cairo University 97 PUBLICATIONS 324 CITATIONS SEE PROFILE SEE PROFILE Hesham A. Hefny Faculty of Graduate Studies for Statistical Research (FGSSR) 300 PUBLICATIONS 2,195 CITATIONS SEE PROFILE Some of the authors of this publication are also working on these related projects: Enhancing Security on Cloud Computing Based on Cryptography View project Mining efficient association rules using fuzzy formal concept analysis View project All content following this page was uploaded by Atef T. Nour El-Din Raslan on 01 January 2016. The user has requested enhancement of the downloaded file. The 50thAnnual Conference on statistics, computer sciences, and operation research, 27-30 Dec 2015 Effort Estimation in Agile Software Projects using Fuzzy Logic and Story Points Atef Tayh Raslan 1 Nagy Ramadan Darwish 2 Hesham Ahmed Hefny 3 Abstract: Software estimation models focuses on estimate the size, time, and cost required to complete the project. The Agile methodologies are more different compared with traditional methods. Thus by the use of traditional effort estimation models can be lead to inaccurate effort estimation. This paper aims to improve the effort estimation accuracy in software project development by applying the fuzzy logic and Story Points Estimation Model (SPEM) on agile software development. This paper introduces a model based of a fuzzy logic to improving the accuracy of estimation in agile projects. The model accepts five inputs and produces the project effort estimation. The inputs of the proposed model include FRiction factors (FR), and Dynamic Forces (DF), Story Points (SP), Implementation Level Factor (ILF), and Complexity (Com). The proposed model can be used to enhance the process of effort estimation in agile projects. Keywords: Agile Software Development, Effort Estimation, Story point, Fuzzy logic 1. Introduction and Problem Definition Effort Estimation is very important stage in software development which includes the predicting the amounts effort that required to complete the project. The effort estimation process includes estimating the volume of the project in term of person/month, project scheduling, and estimating overall the project budget. The software estimation metrics uses to handle the project size, which include three common methods are Line of Code (LOC), Function Point (FP), and use case point (UCP)[11]. The LOC focuses on the number of instructions and data definitions eliminating instructions like notes, blanks, and also continuation lines. FP measure the functionality of a project by determining the indicators of user inputs, user outputs, logical files, inquiries and interfaces. UCP estimates the number of use cases and actors, technical complexity and environmental complexity. The success of software projects mainly depends on accurate estimation in planning phase. The agile methodologies natural are different compared with the traditional methods, so the traditional effort estimation techniques can give us inaccurate estimation [20]. Agile software development needs to a new effort estimation technique to make accurate estimation [22, 23]. Most of the existing effort estimation techniques are suitable for traditional sequential projects. It will be useful to overcome these problems by introducing a proposed model based on fuzzy logic and SPEM model. 2. Theoretical Background In this section, the authors will introduce the basic concepts that are important in the domains of: fuzzy logic, agile software development, software estimation techniques, and story point estimation model. 1 Information Sciences, Institute of Statistical Studies and Research, Atef_rslan2004@yahoo.com Information Sciences, Institute of Statistical Studies and Research, drnagyd@yahoo.com 3 Information Sciences, Institute of Statistical Studies and Research, Hehefny@ieee.org 2 1 The 50thAnnual Conference on statistics, computer sciences, and operation research, 27-30 Dec 2015 2.1. Fuzzy Logic System A fuzzy logic System (FLS) approach introduced by Lotfy Zadeh to handling the vagueness and uncertainty data [11]. FLS is the field in computer science that deals with imprecision, uncertainty, and approximation to achieve practicability, robustness and low cost solutions. FLS is a nonlinear mapping of an input data set to a scalar output data based on the membership degree. FLS system includes Fuzzifier, Fuzzy Rule Base, Fuzzy Inference Engine, and Defuzzification. The fuzzifier converts the crisp input into a fuzzy set that is a non-traditional type of sets which allows an element to have a partial degree of membership. The membership refers to the degree of inclusion to specific set. A fuzzy inference engine is a collection of IF -THEN rules stored in fuzzy rule base is known as inference engine. Defuzzification is the process which refers to the transform of fuzzy output into crisp output. 2.2. Agile Software Development The Agile Software Development (ASD) methodology has recently become one of the most commonly used software development techniques. ASD is “an iterative and incremental approach that is performed in a highly collaborative manner to produce high quality software that meets the changing needs of its stakeholders” [19]. It’s focusing on the software quality during a short time and meeting the customer requirements [20, 14]. The natural of the ASD processes is and self-organizing [17].The characteristics of ASD include modularity, iterative, time-bounded, people oriented, adaptive, decentralized method, simplicity, collaborative, communicative, and small self-organizing teams. The ASD methodologies are based on the agile manifesto that was created in 2001. The agile manifesto includes twelve principles on ASD [7]. The ASD methodologies include Dynamic Systems Development Method (DSDM), eXtreme Programming (XP), Feature Driven Development (FDD) and SCRUM [14, 9, 10, 12, 15, and 18]. 2.3. Software Estimation Techniques There are many estimation techniques in the domain of software development. Figure (1) shows the most common software estimation models which classified into algorithmic and non-algorithmic models. The algorithmic models include linear/none-linear model, descried model, multiplicative model, and power function model. The algorithmic model focuses on the statistical analysis of the project historical data. It needs to accurate input of specific parameter such LOC, FP, number of user screens, and Graphical user interface (GUI) complexity. There are many model based classified into algorithmic model such as Constructive Cost Model (COCOMO), FP model, and UCP, and Software Life Cycle Management (SLIM) model. Recently most of researches focused on the non-algorithmic through introducing the soft computing science in estimation models. There many models considered a non-algorithmic model such as expert judgment, thumb rule decision, Delphi technique, Software Productivity Research SPR, wide band Delphi technique, probe software process PSP , and team software process technique TSP. The recent models introduces based on the soft computing techniques such as a Fuzzy Logic (FL), Artificial Neural Network (ANN), and genetic algorithms to increase the accuracy of the project estimation [25]. 2 The 50thAnnual Conference on statistics, computer sciences, and operation research, 27-30 Dec 2015 Figure (1): Software Estimation Models 2.4. Story Points Estimation Model The story points estimation model proposed by Ziauddin et al, in 2012. Figure (2) shows the story points model which consists of three phases the story size estimation, velocity optimization, and effort estimation [26]. In first phase, the size of story estimates via story points which use a Fibonacci series to estimate each story. The project teamwork makes several meeting to discuss the appropriate method to calculating the required effort for each story and comparing it with previous stories. In the middle phase, the velocity is calculated and optimized by two factors velocity estimation and complexity (Com). The velocity helps the project team to determining the amount of product backlog effort can be handling in one sprint. The Com focuses on the uncertainty in the user requirements by studying the story and technical characteristics. The Com scales ranked using a Fibonacci sequence according to their characteristics. The velocity optimization phase refers to studying the velocity stability and improving it. There are two parameters used in the velocity optimization the FRiction factors (FR) and Dynamic Force factors (DF). The friction includes a group of attributes that could affect on the team velocity as environmental factors, team composition, team dynamic, and process. The FR represents a range of values (stable, volatile, highly volatile, and very highly volatile). The DF uses to studying the factors that could lead to destroying the velocity which includes a 9 factors ranked from (Normal, high, very high, and extra high) team changes, providing a new tools , user defects, project responsibilities , personal issues, owners, vagueness in requirements, frequently changes in requirements, and reallocation. The final phase calculating the project effort by using formula (1), (2) and the project velocity by formula (3): ππ ππ ππ‘πππ¦ πΈπππππ‘ = ∑N πΌ=1 πΆππ × π π‘πππ¦ π ππ§π (1) Where N: Total number of user story 3 The 50thAnnual Conference on statistics, computer sciences, and operation research, 27-30 Dec 2015 ππ ππ π π‘πππ¦ πΈπππππ‘ πβπ πππππππ‘ ππππ = πππππππ‘ πππππππ‘π¦ × ππππππ πππ¦π /ππππ‘β πβπ πππππππ‘ π£ππππππ‘π¦ = πΌππ‘πππ πππππππ‘ π£ππππππ‘π¦ (π·πΉ×πΉπ ) (2) (3) Figure (2): Story Points Estimation Model (SPEM) 3. Related Works There are many researches in effort estimation and agile software development. Some of these researches provide good ideas in our work. The following are some examples of these literatures: ο§ Carl Friedrich Kreb,et al, introduced an estimation model based a parametric cost model for agile projects. The proposed model idea is combining the story points with COCOMO II in order to create enhanced estimation model suitable for a large agile projects [8]. ο§ Sathish Kumar C., et al, introduced guide based harmony search algorithm to optimize the effort estimation on agile software development. The results show the proposed plan gives an effecting estimation compared with other estimation methods [23]. ο§ Sun-Jen H. And Nan-Hsing C., Introduced a COCOMO model based on a fuzzy neural network. The research contributed to uses of FNN gives a smaller mean magnitude of relative error, and subsequently increasing the accuracy of software effort estimation [24]. ο§ Jitender C. and Ugrasen S. proposed a model called by software Maintenance Effort Estimation (SMEEM). This model focused on Xtreme Programming XP method by uses the story points to calculate the volume of maintenance in the project. The results show the proposed model gives an accurate estimation for maintenance in case of using the XP method [13]. ο§ Ziauddin A., et al, introduced a model based on a fuzzy logic for software effort estimation. This model uses a COCOMO II model and triangular membership function to improve the accuracy of software estimation. The final result showed the uses of a fuzzy model give accurate results [27]. 4 The 50thAnnual Conference on statistics, computer sciences, and operation research, 27-30 Dec 2015 ο§ ο§ ο§ ο§ ο§ Andreas S., et al, introduced a research that focused on the agile characteristics to estimates the effort in agile projects. The research result showed the maintenance cost affect on the project estimation [5]. Masateru T., et al, introduced a research that focused on the revisiting software development effort estimation based on early phase development activities. It’s contributed to increase the effort accuracy by collaborate the software size and uses the requirement analysis tools during the exploratory phase [16]. Abeer H. introduced model that aims to increasing the sensitivity of COCOMO cost model. This model uses a fuzzy model to enhances the accuracy and sensitivity of COCOMO 81 intermediate by using a fuzzifying the cost drivers. The researcher contributed to the increasing the sensitivity of COCOMO81 cost model [2]. Abeer H. Introduced model enhanced estimation model based a genetic fuzzy system. This model uses a genetic algorithm with COCOMO81 intermediate. The results showed that the accuracy was increased compared with traditional COCOMO model [1]. Ratnesh L. and Abhay K., Proposed a model that aim to estimates the agile web based. This research included numerous issues related with agile websites. The researcher suggested suitable tools of effort estimation for agile websites [22]. 4. The Proposed Model Fuzzy-SPEM model consists of three layers input layer, process layer, and output layer, as showing in figure (3). The input layer accepts the velocity factors and story size factors, and then the process layer converts those inputs into fuzzy sets through a triangular membership function µ (a) that based on two scalar parameters lower and higher limits [11, 6]. ILF includes all factors that reflect the level of understanding the project components by the team members. Table (1) shows the ILF values assigned by a Fibonacci points. Table 1: Implementation Level Factors Term Scaling 0% - 25% 26% - 50% 51% - 75% 76% - 100% Off the Shelf Full Experience Components Partial Experience Components New Components Fibonacci Point 1 2 3 5 The FR affect on the team velocity which includes team composition, process, environmental factors, and team dynamic. Table (2) shows the Friction factors values, each factor in FR classified to appropriate risk level (stable, volatile, highly volatile, and very highly volatile). Table 2: Friction Factors Friction factors Stable (S) Volatile Highly volatile Very highly volatile (V) (HV) (VHV) Team Cmposition (TC) 1 .98 .95 .91 Process (P) 1 .98 .94 .89 Environmental Factors(EF) 1 .99 .98 .96 Team Dynamic (TD) 1 .98 .91 .85 5 The 50thAnnual Conference on statistics, computer sciences, and operation research, 27-30 Dec 2015 Figure (3): The proposed Model The DF includes all factors that could lead to destroying the velocity during the development process. Table (3) shows the DF which ranked all factors as (normal, high, very high, extra high). Table 3: Dynamic Factors Dynamic Factors Expected to team change Introduction to a new tools Vendor’s Defect Team member’s responsibilities outside the project Personal Issues Expected Delay in Stakeholder response Expected Ambiguity in Details Expected Changes in environment Expected Relocation Normal 1 1 1 1 1 1 1 1 1 High .98 .99 .98 .99 .99 .99 .98 .99 .99 Very High .95 .97 .94 .98 .99 .98 .97 .98 .99 Extra High .91 .96 .90 .98 .98 .96 .95 .97 .98 The Com factors reflects the project complexity level that determined by the project team work. Table (4) shows the Com level values assigned by Fibonacci point. 6 The 50thAnnual Conference on statistics, computer sciences, and operation research, 27-30 Dec 2015 Table 4: Com Factors Term Extremely complex Very complex Moderately complex Straightforward Very straightforward Scaling 0% - 20% 21% - 40% 41% - 60% 61% - 80% 81% - 100% Fibonacci Point 1 2 3 5 8 The SPEM calculation uses a precise value from ILF, FF, DF, and Com factors. Table (5) shows the values of TD factor that categorized by the range of attributes. The imprecision problem appears when we selecting a specific range between two ranges. Table 5: TD Factor Range Attributes Ranges 25% TD Factor 1.00 Volatile High Volatile 50% 75% 0.98 0.91 Very High Volatile 100% 0.85 Stable Considering the FR factors to shows the Fuzzy-SPEM model process. The linguistic values for FR can be represented as stable level ranged (0-25%), volatile level ranged (26%50%), highly volatile level ranged (51%-75%), and very highly volatile level ranged (76%100%). Figure (4) shows the antecedent part which derived using the definition of FR in Table 1. Figure (5) shows the consequent part that derived using the definition of FR with predefined linguistic values. Figure (4): Antecedents fuzzy sets of Friction Factors 7 The 50thAnnual Conference on statistics, computer sciences, and operation research, 27-30 Dec 2015 Figure (5): Consequent fuzzy sets of Friction Factors The output layer converts from fuzzy set form to a crisp set form. There are many methods used for defuzzifying the fuzzy output functions, they are: Max-membership principle, centroid method, weighted average method, mean–max membership, centre of sums, centre of largest area, and first of maxima or last of maxima. The output layer uses the centroid method, as showing in formula (4) [11]. π∗ = ∑ π(ποΏ½).ποΏ½ ∑ π(ποΏ½) (4) The X* is the crisp output which uses to calculate the Storysize*, StoryCom*, FR*, DF*, and ILF* . The final effort estimation equations based on a fuzzy set shown in formula (5), formula (6), and formula (7). ∗ ∗ ππ ππ ππ‘πππ¦ πΈπππππ‘ ∗ = ∑N πΌ=1 πΆππ × ππ‘πππ¦π ππ§π (5) Where N: Total number of user story πβπ πππππππ‘ π£ππππππ‘π¦ ∗ = πΌππ‘πππ πππππππ‘ π£ππππππ‘π¦ (π·πΉ πβπ πππππππ‘ ππππ = ∗ ∗ ×πΉπ ∗ ) ππ ππ ππ‘πππ¦ πΈπππππ‘ ∗ πππππππ‘ πππππππ‘π¦ × ππππππ πππ¦π /ππππ‘β 8 (7) (6) The 50thAnnual Conference on statistics, computer sciences, and operation research, 27-30 Dec 2015 5. Conclusion and Future work This paper aimed to propose a fuzzy-SPEM model for agile software development. The proposed model based a fuzzy logic to improve the accuracy of effort estimation in agile projects. The proposed model divide into three layers input layer, process layer, and output layer. The Fuzzy-SPEM starts with input layer that includes the velocity and story size factors. The process layer converts the velocity and story size factors to fuzzy set by uses a triangular membership function. The rule base includes all rules that define the story size and project velocity. The output layer uses the fuzzy inference to make conclusion and produce a crisp value for the project velocity, volume of the story. Finally, the project effort estimation calculates using the project velocity and size of the story. The researcher planned in the future to implements Fuzzy-SPEM on real agile projects evaluating the results to makes improvements in the proposed model. References 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Abeer H.”Genetic Fuzzy System for Enhancing Software Estimation Models” , International Journal of Modeling and Optimization, Vol. 4, No. 3, June 2014. Abeer Hamdy,”Fuzzy Logic for Enhancing the Sensitivity of COCOMO Cost Model”, Journal of Emerging Trends in Computing and Information Sciences, Vol.3, No.9, 2012. Amid Khatibi Bardsiri and Seyyed Mohsen Hashemi ,” Software Effort Estimation: A Survey of Well-known Approaches” , International Journal of Computer Science Engineering (IJCSE), ISSN : 2319-7323, Vol. 3 No.01 Jan 2014. Amrita Raj Mukker, Anil Kumar Mishra,and Latika Singh, "Enhancing Quality in Scrum Software Projects",International Journal of Science and Research (IJSR), Vol. 3, Issue 4, 2014. Andreas Schmietendorf, Martin Kunz,and Reiner Dumke, “Effort estimation for Agile Software Development Projects”, 5th Software Measurement European Forum, 2008. Atef Tayh Raslan, Nagy Ramadan Darwish, and Hesham Ahmed Hefny, “Towards a Fuzzy based Framework for Effort Estimation in Agile Software Development”, International Journal of Computer Science and Information Security, (IJCSIS) 01/2015; 13(1):37-45. Beck et al., “http://agilemanifesto.org/iso/en/manifesto.html,” last visited in November 2015. Ann L. Carl Friedrich Kreb, Oliver Hummel, and Mahmudul Huq, “ Scaling Agile Estimation Methods with a Parametric Cost Model”, The 9th International Conference on Software Engineering Advance(ICSEA), 2014. David Cohen, Mikael Lindvall, Patricia Costa, “An Introduction to Agile Methods,” Advances in computers, Elsevier, V. 62, pp. 20-22, 2004. Fruhling and Alvin E. Tarrell, “Best Practices for Implementing Agile Methods”, IBM, 2008. Ganesh M. , “Introduction to Fuzzy Sets and Fuzzy Logic”, Prentice-Hall , 9788120328617, 2006. Ioannis G. Stamelos, and Panagiotis Sfetsos, “Agile software development quality assurance”, Idea Group, ISBN 978-1-59904-216-9, 2007. Jitender Choudharia and Ugrasen Suman, “Story Points Based Effort Estimation Model for Software Maintenance”, Elsevier, Procedia Technology, Volume 4, 2012. John Hunt, “Agile software construction,” Springer, ISBN-10: 1-85233-944-6, 2006. 9 The 50thAnnual Conference on statistics, computer sciences, and operation research, 27-30 Dec 2015 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Kevin Vlaanderen, Sjaak Brinkkemper, Slinger Jansen, Erik Jaspers, “Applying SCRUM Principles to Software Product Management,” Information and Software Technology, V. 53, Issue 1, pp. 58-70, 2011. Masateru Tsunoda, Koji Toda, and Kyohei Fushida, Yasutaka Kamei, Meiyappan Nagappan, and Naoyasu Ubayashi, “Revisiting Software Development Effort Estimation Based on Early Phase Development Activities”,10th conference on mining software repositories (MSR), IEEE, 2013. Mike Cohn, “Software Development Using Scrum,” Addison-Wesley, ISBN: 9780321579362, 2009. Mike Cohn, “Software Development Using Scrum,” Addison-Wesley, ISBN: 9780321579362, 2009. Nagy Ramadan Darwish, “Improving the Quality of Applying eXtreme Programming (XP) Approach", International Journal of Computer Science and Information Security (IJCSIS) – ISSN 1947-5500, Vol. 9 No. 11, November 2011. Nagy Ramadan Darwish,” Enhancements In Scum Framework Using Extreme Programming Practices”, International Journal of Computer Science and Information Security (IJICIS), Vol.14, No. 2 April 2014. Rashmi Popli and Naresh Chauhan ” An Agile Software Estimation Technique based on Regression Testing Efforts”, 13th Annual International Software Testing Conference, India ,2008. Ratnesh Litoriya and Abhay Kothari “An Efficient Approach for Agile Web Based Project Estimation: AgileMOW”, Journal of Software Engineering and Applications, VOL.6, 2013. Sathish Kumar C. , Anitha Kumari A., and Srinivasa Perumal R., “An Optimized Agile Estimation Plan Using Harmony Search Algorithm, ” International Journal of Engineering and Technology (IJET), Vol 6 No 5, 2014. Sun-Jen Huang and Nan-Hsing Chiu,”Applying fuzzy neural network to estimate software development effort”, Springer Science, 2007. Vahid Khatibi and Dayang N. A. Jawawi, “Software Cost Estimation Methods: A Review”, Journal of Emerging Trends in Computing and Information Sciences, Vol.2, 2010. Ziauddin Zia,Shahid Kamal Tipu, and Shahrukh Zia “An Effort Estimation Model for Agile Software Development”, Advances in Computer Science and its Applications (ACSA), Vol.2, 2012. Ziauddin, Shahid Kamal, Shafiullah khan and Jamal Abdul Nasir, “ A Fuzzy Logic Based Software Cost Estimation Model”, International Journal of Software Engineering and Its Applications (IJSEIA), Vol. 7, Issue 2, 2013. 10 View publication stats