SOFTWARE ESTIMATION AGILE COCOMO II Methodology SANTIAGO GALLEGO CESAR GONZALES RICARDO INSIO BRAVO JOSE MIGUEL ALONSO 1 Software Estimation Agenda 1) Agile Methodologies 2) PC GEEK. Incremental development 3) AgileCOCOMO II 4) Analogy Parameters 5) Steps for Estimation 6) Conclusions 2/20 Software Estimation Agile Methodologies Agile software development refers to a group of software development methodologies based on iterative development, . Agile methods generally promotes: cross-functional Teamworks • self-organization and accountability • rapid delivery • development iterations • Agile methods break tasks into small increments : minimal planning • Iterations are short time frames • Each iteration includes: • • • • • 3/20 Planning Requirements analysis design, Coding Unit testing and acceptance testing Software Estimation Agile Methodologies helps minimize overall risk, and lets the project adapt to changes quickly, The goal is to have an available release at the end of each iteration • • Agile methods are a family of development processes Not a single approach to software development In 2001, Utah meeting to discuss ways of creating software in a lighter, faster, more people-centric way They called it "Agile Software Development" and "agile methods“ • They created the Agile Manifesto • Later, they formed The Agile Alliance to promote agile development • The Agile Manifesto states: • “Individuals and interactions over processes and tools • • • 4/20 Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan Software Estimation Agile Methodologies Some of the principles behind the Agile Manifesto are: • • • • • • • • • • 5/20 Customer satisfaction by rapid, continuous delivery of useful software Working software is delivered frequently and it is the principal measure of progress Even late changes in requirements are welcomed Close, cooperation between business people and developers Face-to-face conversation bet way ofcommunication (colocation) Projects built around motivated individuals Continuous attention to technical excellence and good design Simplicity Self-organizing teams Regular adaptation to changing circumstances Software Estimation Agile Methods Dynamic Systems Development Method (DSDM) • DSDM is an iterative and incremental approach • emphasises continuous user involvement • deliver software systems on time and on budget while adjusting for changing requirements Extreme Programming (XP) • • • • • Improve software quality and responsiveness to changing customer requirements Frequent “releases” in short development cycles Programming in pair or extensive code review Flat management structure, Simplicity and clarify in code Avoid programming of features until they are actually needed Feature Driven Development (FDD) • client-valued functionality (feature) perspective to deliver tangible, working software repeatedly in a timely manner • To manage complex work (such as a new product development) • Scrum 6/20 Software Estimation Agile vs Traditional Methodologies Agile Methodologies Traditional Methodologies Based on Heuristics provided by code production practices Based on rules provided by Development Environment Standards Suitable for requirement changes during the project Resistance to Requirement changes during the project Rules defined internally by the team . Low control process Rules defined externally High control process No traditional contract or at least very flexible Strict contract existence Customer is part of the development Customer interacts with development team team through meetings 7/20 Small Development teams and working co-located Big and distributed Development teams A few roles Many roles No emphasis in Software Architecture SW Arquitecture is essential and it works under models Software Estimation PC GEEK Incremental development Project split in 6 phases First Phase to develop: • Customers & Suppliers. Management: Customer and Supplier Creation, Delete, Modification Second Phase • Store & Components Management: Components Creation, Delete and Modification Third Phase • Purchase Management. Supplier orders management. • Creation, Delete and modification of Supplier orders Fourth Phase • Customer and Sales Management. Sales Orders Management • Creation, Delete and Modification of Sales Orders Fifth Phase • PC’s manufacturing. PC’s and Stock management. • PC’s & Components Stock and Store Management Sixth Phase • Sales Orders Shipment • PC’s & Components Stock, Store Management and Sales Orders 8/20 Software Estimation Agile COCOMO II • US Center for Software Engineering has created AgileCocomo-II for build on the estimation by analogy approach while accounting for differences between projects,a cost estimation tool that is based on the Constructive Cost Estimation ModelII (COCOMO II) • The Goal is provide project managers with a simple mechanism for quick, accurate and, reliable cost and, effort estimates that: – – – – 9/20 Is self-explanatory Requires minimum inputs Leverages past experience with similar projects while accountingfor differences Leverages the accuracy and, reliability of the proven COCOMOII model Software Estimation Agile COCOMO II (cont.) • One cycle to vary one cost driver/scale factor • Four steps per cycle: Specify analogy parameter and its baseline value 2. Choose cost driver/ scale factor to be changed in this cycle 3. Provide old and new values for the cost drivers /scale factor 4. As necessary, specify size to relate productivity to effort 1. • At end of cycle, choose one action: – – – – – 10/20 View report Change a cost driver/scale factor independent of previous Change a cost driver/scale factor in addition to previous Go back to initial estimate Estimate another project Software Estimation Agile COCOMO II (cont.) 11/20 Software Estimation Analogy Parameters 1) Total Cost in dollars 2) Total effort in Person-Months 3) Productivity in Dollars / Function Points = TC$ / FP 4) Productivity in Dollars / Lines of code = TC$ / LOC 5) Productivity in Function Points / Person-Months = FP / TEPM 6) Productivity in Lines of Code / Person-Months = LOC / TEPM 7) Project Velocity in Total Ideal-Person-Weeks / Iteration 12/20 Software Estimation Analogy Parameters (cont.) Input parameters to Agile COCOMO II. To determine baseline value we need (of a Previews Project) as required: Total costs in dollars (TC$) • Total effort in Person-Months (TEPM) • Function points (FP) • Lines of Code (LOC) • To calculate the estimation we could need (of a Current Project) as required : Month Labor rate • Function Points • Lines of code • Development Language • 13/20 Software Estimation Analogy Parameters (cont.) Example: Total Cost in dollars 14/20 Software Estimation Analogy Parameters (cont.) Example: Productivity in dollars / Function Point 15/20 Software Estimation Steps of estimation (per cycle) Choose cost driver/scale factor to be changed in this cycle Define analogy parameter Provide old & new values for and its baseline value the cost driver/scale factor Start cycle Specify size to relate productivity and effort Create report 16/20 Software Estimation Demo • Demo of an actual estimation • Based on the well-known PCGeek project • http://sunset.usc.edu/cse/pub/research/Agile COCOMO/AgileCOCOMOII/Main.html 17/20 Software Estimation Conclusions (I) • Simple mechanism for quick, accurate, and reliable cost and, effort estimates Requires minimum inputs – Take past experience with similar projects while accounting for the differences – • Takes the roots of COCOMO II, using its same factors • Focuses in the changes between projects rather than calculating an absolute estimation from scratch • Uses an agile philosophy: uses a number of small, simple cycles to perform the actual estimation • It still needs the calculation of the Function Points of the project – By comparison with previous projects this could even by bypassed • Comparison is the main driver for the estimation – 18/20 Strong need for storing the results of previous projects Software Estimation Conclusions (II) • Imposibility of storing a previous estimation – Estimation if fast, so no need of it • “Autocalibration”, as it uses the results of previous projects in the same company – Any inconsistency in the company with the model will be absorbed automatically when using previous projects as a reference • Same limitations as COCOMO II – For example, not calibrated for small projects under 2000 SLOCs • Supposedly multiplatform (web application) – 19/20 Only working under IE in Windows, though Software Estimation References • http://csse.usc.edu/csse/research/COCOMOII/coc omo_main.html • http://csse.usc.edu/csse/research/AgileCOCOMO/ 20/20 Software Estimation