Agile Concepts - II “Agile” Estimating & Planning Nupul Kukreja 5 th November, 2014
Jan 02, 2016
Agenda• “Agile” estimating & planning– For agile projects– For non-agile projects too
• Why planning fails?• Scheduling– Release & Iteration planning
• Tracking and Communicating• Benefits of Agile Planning• Guidelines for Agile Estimation and Planning
“Agile” Estimating & Planning• Estimation and planning can be lightweight
too!• Doesn’t imply estimating and planning for
“agile” projects only• Question to answer: What should we build
and by when?– How big is it?– When will it be done?– How much can I have by then?
6
Purpose of ‘Planning’*• Why do we do it?– Reduce risk & uncertainty– Supporting better decision making– Establishing trust (i.e. frequent delivery)– Conveying expectations
• Planning is a ‘quest for value’– Attempt to find an optimal solution of the overall
product development question: What should be built?
*Agile Estimation & Planning – Mike Cohn
7
A Good Plan• One that stakeholders find sufficiently reliable• One that can be used as basis for decision
making– Approximate time to market– An idea of the set of features
• Made more precise as project moves on• Is a ‘living’ artifact showing the current status
of the project to avoid last minute surprises• Is planned around ‘value’
Why Planning Fails?• Planning by activity instead by features• “Activities” never finish early• Activities are not independent• Lateness passed down the schedule• Multitasking causes more delays• Features not developed by priority• Ignoring uncertainty revised estimates• Estimates become commitments
Agile Approach to Estimating/Planning
Agile Manifesto:• Individuals and interactions over processes and
tools• Working software over comprehensive
documentation• Customer collaboration over contract negotiation• Responding to change over following a plan
That is, while there is value in the items onthe right, agilists value the items on the left more
Agile Approach to Projects• Work as one team• Work in short (2 – 4 week) iterations• Deliver something each iteration• Focus on business priorities• Inspect and adapt
Agile Approach to Planning• Accuracy of plan decreases the further we
attempt to plan• Multiple “horizons” for planning
Market Research
Agile Project
Planning
Estimation & Prioritization• Estimating size:– T-shirt sizing (S, M, L, XL …)– Story-points– Ideal days– … (refer Estimation lecture)
• Keep duration estimate independent of size• Prioritize features w.r.t. size and “other”
important dimensions (lecture on VBRP)
Release Planning
Determine Conditions of Satisfaction
Estimate (theme) User Stories
Select stories and a release date
Do in any sequence
Estimate Velocity
Select an iteration length (~2 wks)
Prioritize User Stories
Iterate until the conditions of
satisfaction for the release can be met
Estimating VelocityBy when will you be done?• A major challenge for planning a release• Avoid point estimates • Techniques:– Historical values
• Only applicable if “everything” is the same
– Run an iteration (or 2 – 3) and predict– Make a forecast
• Estimate team hours• Estimate total hours on project/release• Arbitrarily select stories and break into tasks to fill number of hours• Get velocity from above convert to 90% CI range
Release Plan – Look and FeelIteration 1 Iteration 2 Iterations 3 – 5
As a user, I…
3
As a user, I…
8
As a user, I…
5
As a user, I…
5
As a user, I…
8
As a user, I…
2
As a user, I…
3
As a user, I…
5
As a user, I…
3
As a user, I…
5
As a user, I…
3
As a user, I…
2
As a user, I…
1
As a user, I…
5
As a user, I…
5
As a user, I…
2
Not fixed in stone – updated frequently especially if major changes in velocity/features
Iteration Planning• Release plan provides high level view of “value
delivery”• Iteration plan Short-term, detailed view– What to work on in the next 2 weeks?– What to work on today? (Daily plan/stand-ups)
• Stories being worked on broken into tasks– Ex: Design UI (16 hours)– Refactor DB schema (10 hours)– Determine business rules (6 hours)– Specify acceptance tests (8 hours)
• Tasks NOT allocated to individuals!
Iteration PlanStory To Do Tests
Ready In Process To Verify Hours
As a user, I can…
5
• Code the…(8)• Code the…
(5)• Test the…
(6)
Y
• Code the…NK (6)• Code the…
DL (4)
Code the…BB (4)
33
As a user, I can…
3
• Code the…(8)• Code the…
(5)13
As a user, I can…
2
• Code the…(3)• Code the…
(6)Y
Code the…SK (4)
13
Benefits of Agile Planning• Replanning occurs frequently• Estimates of size and duration are separated• Plans made at separate levels• Plans based on features not tasks/activities• Small stories keep work flowing• Work in process eliminated each iteration• Tracking at team level (instead of individual)• Uncertainty acknowledged and planned for
Guidelines for Agile E&P1. Involve the whole team2. Plan at different levels3. Keep estimates of size and duration separate using different
units4. Express uncertainty in either functionality or date5. Replan often (start of each iteration)6. Track and communicate progress7. Acknowledge importance of learning8. Plan features of right size9. Prioritize features10. Base estimates and plans of facts11. Leave some slack12. Coordinate/sync teams with look-ahead planning.