Agile software development

advertisement
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
Download