But Did You Know SEER Supports. Agile Development Estimation. Sprint or. Release. Backlog. Iteration to. Build. Code. Te
Estimating Agile Projects Using SEER for Software
Copyright Galorath Incorporated 2013
1
Delusions of Success: How Optimism Undermines Executives' Decisions (Source:
•
Richard Hartley, HBR)
Problem: Humans seem hardwired to be optimists
• Optimism from cognitive biases & organizational pressures
• Exaggerate talents & degree of control • Attribute negative consequences to external factors
•
Anchoring (relying too heavily on one piece of information) magnifies optimism Best practice: Temper with “outside view”
• Most pronounced for new initiatives Supplement traditional forecasting w/ statistical
parametrics AGILE IS EVEN MORE VULNERABLE TO OPTIMISM
Agile Projects Have A New Set of Risks
•
Using User Stories as size doesn’t mean they won’t grow / change
•
Requirements volatility can be even more drastic (design on the fly)
•
Risk of lack of integration / regression testing from sprint to sprint
• •
Requirements growth due to regular wish lists
•
More
Poorly constructed user stories may require modifications
© 2013 Copyright Galorath Incorporated
3
You Probably Knew SEER for Software Supported These Methodologies
Salvage
RUP
But Did You Know SEER Supports Agile Development Estimation
Defects & Unfinished Work
User Stories, Use Cases, Business Requirements, Etc.
Test
Code
Refactor
Collection of Functionality
Planning
Sprint or Release Backlog
Iteration to Build
Delivered Functionality
n-Iterations per Release
Working System
Fixes, Enhancements, Sustainment
Warranty & Maintenance
Generate Estimates for Each Phase of Development
Formal Estimation Process Is Appropriate for Agile Projects
• •
Build Estimate With Best Available Information Expect Estimates At Feasibility And Concept Phases To Be Created the Same As Previously Built • Recommend: • Use Previous Models Calibrated to Actuals • Estimate Size by Analogy or Comparison • Use a Knowledge Base Driven Estimation Tool • Use Historical Databases For Estimate Reviews
•
Okay To Assume An Agile Development • But Remember What You Don’t Know: • Maturity Of The Team, Availability Of SMEs, Certified Scrum Master Available, Etc, Etc.
The Iron Triangle of a Project
•
During a project a specified set of features need to be achieved during some specific time – by the given resources Scope (features)
Quality Resources
•
Duration
At least one of these three elements: Scope, Time, and Resources must vary, otherwise the quality of the work suffers! © 2012 Copyright Galorath Incorporated
7
Estimating An Agile Project •
The Agile Manifesto was a defense of the “Iron Triangle”
•
The “outer envelope” of a project still requires an estimate
Scope (features)
Quality Resources
Duration
•
The size of a project’s Iron Triangle is estimated by trading of Resources, Scope and Duration (although rarely Quality)
•
Agile’s user-informed (bottoms-up) incremental deliveries respect the Iron Triangle’s limitations © 2012 Copyright Galorath Incorporated
8
How Agile Allows Adjustments To The Iron Triangle?
•
Varying Scope is easy • Negotiation between what is desired and what is possible
•
Varying the Time to accommodate scope” • Depending upon what is required for delivery the release date can be adjusted – makes no sense to deliver on a date if it’s not what is wanted
•
Varying the Resources is a bit trickier • Can be difficult to find the right people • This does not mean to just throw more people at the problem – remember Brooks Law • Often reducing the number of people results in better quality and lower costs at a nominal increase in schedule © 2012 Copyright Galorath Incorporated
9
How Sprints Fit Into An Estimate Agile practices occur within the estimated project “envelope”. This “strategic” estimate for the project:
On a “tactical” level, looks like this:
© 2012 Copyright Galorath Incorporated
10
A Focus on Maximizing Value
Priority 1 2 3 ….
Item feature a feature b feature c
value
If the project is shut down early most of the value is already delivered!
sprint © 2012 Copyright Galorath Incorporated
11
Mapping Of Traditional Activities Agile sprints result in a deliverable product.
As a result, the labor mix is much higher throughout the project. {Analyst, Design, Code, Test, CM, Data Prep, Management, QC}
While most activities are blended into each sprint. {Requirements, Analysis, Design, Detailed Design, Code, Unit Test, Integrate & Test, Program Test}
© 2012 Copyright Galorath Incorporated
12
Estimation Decomposition This physical WBS:
May result in one long set of sprints:
Or simultaneous ones with multiple teams:
© 2012 Copyright Galorath Incorporated
13
Measuring Productivity Agile Velocity
Estimating’s Productivity
Velocity is tactical – “How much can we build in a sprint?” Productivity is strategic – “How much can we build in a project?”
Velocity – “story points per sprint” Productivity – “SLOC or function points per day or month” Is this possible? Velocity
© 2012 Copyright Galorath Incorporated
Productivity
14
Metrics A Story Point is an arbitrary (but intuitive) measure of a feature’s scale: {1,2,4,8,16…}, {1,2,3,5,8…} A Function Point (FP) is a measure of a feature’s scale from a functional perspective. Lines of Code (LOC) are a measure of a feature’s scale from a physical perspective.
Story Points can be measured in terms of Function
Points or Lines of Code – and they wont vary by the team! © 2012 Copyright Galorath Incorporated
15
Project Level Estimation Project histories typically are sized in Function Points (FPs) or Lines of Code (LOC)… Estimation tool calibration
…and typically require FPs or LOC to produce estimates. Alternative calibrations could use Story Points if *consistently defined across projects. * Consistency requires all teams using identically defined story points – best of luck!
Velocity © 2012 Copyright Galorath Incorporated
Productivity 16
The (Conventional Estimation) Conventional estimates have respected the Iron Triangle before it got a name. Scope (features)
Quality Resources
Duration Meanwhile…
While Story Points are a fine metric within sprints, conventional metrics (functional, lines, analogy) may be better. © 2012 Copyright Galorath Incorporated
17
Estimation Is Dead! All Hail Estimation! •
Sophisticated project estimates have always respected the Iron Triangle
•
What’s new is accounting for the effect of Agile affect upon delivery, functionality, and quality
Scope (features)
Quality Resources
•
Duration
It is the responsibility of Agile implementers to reduce expectations of precision in estimates
“It’s better to be roughly right than precisely wrong!” - John Maynard Keynes © 2012 Copyright Galorath Incorporated
18
User Story Defined •
A User Story is a simple statement about what a user wants to do with a feature and the value the user will gain.
•
Consider a User Story as a thin vertical slice through the system.
•
User stories are written from the user perspective in a way that can be easily understood. • Technical jargon is avoided.
• •
Acceptance Criteria is usually written at the same time. The Project Owner is responsible for the user stories • Written by the Sponsor • Reviewed by the project team
•
Usually written on cards • Story on the front • Acceptance Criteria on the back © 2012 Copyright Galorath Incorporated
19
Anatomy of a User Story
•
A User Story identifies: • The User • What the user wants to do with a feature • Value gained by the user
•
So a User Story can use the following format: As a (user role) I want (feature/achieve something) So that (describe value)
•
As a customer I want to track my order from the time I place it until it is delivered so that I know the status of my order at all times. © 2012 Copyright Galorath Incorporated
20
Good User Stories •
Bill Wake came up with the INVEST acronym to describe good User Stories. This is a simple way to express User Story goodness.
•
INVEST •
Independent • User stories should not be dependent on other stories.
•
Negotiable • Don’t treat a User Story as a contract. • Less detail is better in most cases. • Some constraints are not negotiable.
•
Valuable • Shows value to the user (subject of the story)
•
Sized right • Enough detail to properly estimate • Small enough to estimate • Small enough to fit into a sprint
•
Testable • Acceptance criteria should be apparent • This can be verified quickly by writing acceptance criteria on the back of the card © 2012 Copyright Galorath Incorporated
21
Estimating Agile Projects (Source: Vogt) Function Point Components Function points measure software size based on functionality requested by and provided to the end user
Function points represent logical size, as opposed to physical size (like SLOC or objects)
Ready for what’s next
8
Booz Allen Hamilton
22
Generate Early Estimates For Agile
User Defined Sizing Defects & Unfinished Work
User Stories, Use Cases, Business Requirements, Etc.
Test
Code
Build Bottoms Up or..
Refactor
Collection of Functionality
Planning
Sprint or Release Backlog
Iteration to Build
Start TopWorking Down System
Delivered Functionality
n-Iterations per Release
Fixes, Enhancements, Sustainment
Warranty & Maintenance
Manage Uncertainty of Early Estimation
Every Project Needs An Initial Estimate.. Agile Is Not Any Different
Generate Estimates At Any Point In Development
Full Life Cycle Estimate or Test Code Sprint Planning Estimate using Refactor Multiple Team Velocities Sprint orSprint or Release to Release Iteration to Working Backlog Delivered Backlog Build System Functionality Identify Impact of Backlog Warranty & Maintenance n-Iterations per Release Defects & Unfinished Work
User Stories, Use Cases, Business Requirements, Etc.
Collection of Functionality
Planning
Fixes, Enhancements, Sustainment
Manage Sprints Effectively Through Re-estimation!
Estimate Quality Impacts Identify Probable Defects Before Sprint
Defects & Unfinished Work
User Stories, Use Cases, Business Requirements, Etc.
Test
Code
Refactor
Collection of Functionality
Planning
Sprint or Release Backlog
Iteration to Build
Predict Impact on Schedule if Matrix Teams Delivered Functionality
n-Iterations per Release
Working System
Fixes, Enhancements, Sustainment
Warranty & Maintenance
Each Iteration Can Be Fine Tuned To Accommodate Complexities
Recognize Impact Of Integration Early In Life Cycle Calculate Effort for Component Integration Defects & Unfinished Work
Identify Cost of Added Functionality Late in Test Code Release
User Stories, Use Cases, Business Requirements, Etc.
Model Integration Refactor Team Separately Collection of Functionality
Planning
Sprint or Release Backlog
Iteration to Build
Delivered Functionality
n-Iterations per Release
Working System
Fixes, Enhancements, Sustainment
Warranty & Maintenance
Each Phase or Labor Category Can Be Modeled Independently
Total Ownership Costs Includes Cost Of On-Going Support Identify Total Ownership Costs for the Software Defects & Unfinished Work
User Stories, Use Cases, Business Requirements, Etc.
Allows Independent Maintenance Team Test Code Assumptions Refactor
Collection of Functionality
Planning
Estimate Cost of: Sprint or Corrective, Adaptive, Release Iteration to Delivered BacklogPerfective, Build and Functionality n-Iterations per Release Enhancement support
Working System
Fixes, Enhancements, Sustainment
Warranty & Maintenance
Ability To Call Out Specific Items For Warranty/Maintenance
SEER Knowledge Bases Understand Flavors of Agile
Special Parameter Settings Available for Agile © 2013 Copyright Galorath Incorporated
28
Two Agile Knowledge Bases Agile FULL
Agile Novice
•Assumes the development
•Development teams first or initial attempt at Agile software development.
team is motivated, has strong programming skills, has previously performed an on an Agile project
•That the project will have a
certified facilitator – such as a “Scrum Master.”
•Assumes the development team has little to nominal experience in an Agile process Or the team does not have a certified facilitator •The learning curve for Agile will increase during the project life however initial velocity is not optimal. •PM or Quality oversight during the implementation of this new methodology could be intrusive
Store User Stories in Database For Estimation Retrieval
Easy To Load All Stories For Initial Backlog Planning
Backlog Planning Can Be Performed Using Stories or Analogies © 2013 Copyright Galorath Incorporated
30
Perform Sprint Planning By Teams
Select Only Stories For The Sprint then Validate That All The Stories Can Be Completed During That Sprint
Very Fast Approach For Early Release Planning © 2013 Copyright Galorath Incorporated
31
Use Story Points For Sizing
Identify how many of each SP Count the team will attempt Ranges can be used to account for uncertainty
Each Team Can Have a Unique Velocity © 2013 Copyright Galorath Incorporated
32
Enhanced Granularity At Kbase Level
Team A Is More experienced and working on more complex component
Team B is new to Agile and working on simple reports
Estimate Should Be Modeled To Reflect Reality © 2013 Copyright Galorath Incorporated
33
User Defined Activities and Labor Categories Create Custom Naming for Life Cycle
Create Custom Naming for Labor Roles
Activities Can Be Weighted To Observed Contributions © 2013 Copyright Galorath Incorporated
34
Each Team Can Have Unique Labor Contributions Create Custom Distributions of Labor Based Upon Each Life Cycle Activity
Easy To Specify Who Does What and When © 2013 Copyright Galorath Incorporated
35
There Are Specific Parameters To Consider With Agile Estimates • Requirements Formality • Requirements Volatility • Personnel Capabilities – Analyst and Programmers • Familiarity with the Process • Process Maturity • Staffing Complexity • Development System Volatility • Automated Tools Usage • Testing Level • Quality Assurance Participation
Agile Things to Do •
Gauge the Organization: • Assess teams interactivity and motivation • Teams familiarity with process • What is the real role of QA • Do they really have everyone in place
•
Revisit the Estimate After One or Two Iterations • Repeat the first bullet!
•
Pay Attention To Backlog • Could Indicate Process Immaturity… • …but Is More Likely Requirements Volatility
Wrap Up - Estimating Agile
•
About Agile • Remember – Emphasis is on delivered “stuff” not effort or even schedule. • Understand the Specific Method Being Used • Whatever is not finished is moved to next Iteration
•
When Using SEER for Software • Start with one of the Agile Knowledge Bases • Adjust Parameters to Reflect Reality
• Change naming schemes to match method • Change both the Activity and applicable Labor names
• Calculate and redistribute labor by activity • This data is usually available from previous projects
• Use the proxy to estimate effort (for SCRUM)
Final Note
•
When building an estimate for an Agile method, one needs to follow one important rule:
- Stay “Agile”
Contact:
[email protected] +1-310-414-3222 www.galorath.com