agile progress tracking and code complete date estimation

28
Agile Scheduling and Release Planning Michael Geiser

Upload: michael-j-geiser

Post on 15-Feb-2017

206 views

Category:

Internet


2 download

TRANSCRIPT

Page 1: Agile Progress Tracking and Code Complete Date Estimation

Agile Scheduling and Release Planning

Michael Geiser

Page 2: Agile Progress Tracking and Code Complete Date Estimation

What Do We Want to Accomplish?• This presentation proposes (within an Agile SDLC)• How to estimate a code complete date for development to plan a software

release date.• How to track progress towards the code complete date • Present examples Executive Sponsor statuses slides so you can provide a clear

concise status that communicates your message to Senior Management• Use the same artifacts to clearly see that you are on-track or off-track and

how the project is trending so we can see if a mitigation plan is needed

Page 3: Agile Progress Tracking and Code Complete Date Estimation

Assumptions/Facts• Scrum, as codified in the Agile Manifesto, is one of the most

successful Software Development approaches/methodologies for small independent teams and can be scaled to large distributed teams.• Leaders in the field (Scott Ambler, Mike Cottmeyer, VersionOne,

Thoughtworks…) recognize that the Agile Manifesto has limitations when applied to “Large Scale” Agile development efforts• Having many scrum teams in an enterprise does not mean you are doing

Enterprise Agile• Single Team-level Agile practices are different from multiple-team Agile

practices at scale• Agile at scale requires a broader set of tools and techniques

Page 4: Agile Progress Tracking and Code Complete Date Estimation

Project Timeline Slides and Missed Schedule Milestones• Changes in scope are inevitable (not referring to scope creep which is controllable). Agile

addresses fact of life FAR better than any other SDLC.

Inaccurate Effort and Capacity Estimates• Estimates made before work started are often an order of magnitude off and need to you

constantly consider the effect Scope changes.• Completed work and informed revised estimates should continually revise code complete

estimates.

Inability to Objectively and Independently assess project status• Tracking software development in MS Project is problematic and relies on how he Percent

Complete entries are made. • This often leads to Executive Sponsors getting an overly-optimistic view of progress

PMO Basics• If we’re not continually and meaningfully measuring the actual status of the project, how

do we know we’re on track or need a mitigation plan?• We should use templates across projects and with all Executive Sponsors to that we

consistently report and minimize the effort to report and maximize transparency

Agile Project Management Pain Points

Page 5: Agile Progress Tracking and Code Complete Date Estimation

Waterfall and Scrum Differences• In Waterfall SDLCs, SOP is that schedules and scope are defined often

with little Development input and Development is told to “work longer to get just the work done”.• We know how well that worked out in the past…

• Scrum (“Textbook Orthodox Scrum” not SAFe or others) swings the pendulum too far in the opposite direction.• “It’s done when it’s done” and “You can’t have release dates” are just as or

even more unrealistic• The organization doesn’t exist to server Development (as nice as that sounds)• It’s also very “anti-Agile” because it doesn’t meet the needs of stakeholders

Page 6: Agile Progress Tracking and Code Complete Date Estimation

Release Tracking Chart

Page 7: Agile Progress Tracking and Code Complete Date Estimation

Release Tracking ChartThe Release Tracking Chart tracks the Scope, Development Plan, Sprint Plan, and Actual Work completed on a single chart that is always available and always reviewed in Executive Sponsor Status Meetings

Scope: • The Scope and the effort to complete scope constantly changes during a project; normally some scope is added or removed and progressive

elaboration gives us increasing more precise estimations of total effort and code complete dates.

• Good Change Management processes for scope is stile vital in Agile; embracing change in Agile does not mean accepting any change without understanding and recognizing the impact of the change. Scope should reflect accepted changes by the product owner.

• Agile teams should communicate scope and scope changes to recognize schedule risks so they can take action early enough when needed.

Development Plan: • Estimated project work that can be completed according to Staffing Plan is charted to compare to Scope and to project a code complete date.

Sprint Plan:• This should track to the Development Plan but reflects the actual Staff capacity and highlights immediately when the Development plan is or

is not being met so remediation plans can be implemented early when needed

Actual Work:• Shows work completed against Scope, the Development and Sprint Plans. It is transparently communicated when Actual Work completed

and total scope are not on plan to met for the target code complete date

Page 8: Agile Progress Tracking and Code Complete Date Estimation

Release Tracking Chart• Take care that the chart and table are consistent across all Status meetings• Include 3 slides in the Executive Sponsor Status Meeting deck:

• Last meeting’s actual status• This meeting’s actual status• Next meeting’s plan

• Being able to move between these three slides and see the change over 6 weeks is an extremely effective way to present this information.• I sometimes put the current slide in the main Status section and put the three in

Appendix Material (know your audience)• The next 7 slides demonstrate this concept.

Page 9: Agile Progress Tracking and Code Complete Date Estimation

Sprint 1 2 3 4 5 6 7 8 9 10 11 12 13Sprint Close 14-Jan 28-Jan 11-Feb 25-Feb 11-Mar 25-Mar 8-Apr 22-Apr 6-May 20-May 3-Jun 17-Jun 1-JulScope +25% 968.75 968.75 968.75 968.75 968.75 968.75 968.75 968.75 968.75 968.75 968.75 968.75 968.75Scope 775 775 775 775 775 775 775 775 775 775 775 775 775Scope -25% 581.25 581.25 581.25 581.25 581.25 581.25 581.25 581.25 581.25 581.25 581.25 581.25 581.25Dev Plan 45 95 145 195 245 295 345 395 445 495 545 595 645Iteration PlanActual Completed 0 0 0 0 0 0 0 0 0 0 0 0 0

Notes• Your Development Plan must

overshoot your Scope in the last few sprints to account for backlog scarcity near the end of the project and project closeout activities. This Dev Plan doesn’t even come close to that goal.

• I would put the Project Schedule at Yellow trending Red at this point.

Sprint 1 - Start

Actual numbers in Black, projected numbers in red

Page 10: Agile Progress Tracking and Code Complete Date Estimation

Sprint 1 2 3 4 5 6 7 8 9 10 11 12 13Sprint Close 14-Jan 28-Jan 11-Feb 25-Feb 11-Mar 25-Mar 8-Apr 22-Apr 6-May 20-May 3-Jun 17-Jun 1-JulScope +25% 958.75 886.25 886.25 886.25 886.25 886.25 886.25 886.25 886.25 886.25 886.25 886.25 886.25Scope 775 725 725 725 725 725 725 725 725 725 725 725 725Scope -25% 591.25 563.75 563.75 563.75 563.75 563.75 563.75 563.75 563.75 563.75 563.75 563.75 563.75Dev Plan 45 95 145 195 245 295 345 395 445 495 545 595 645Iteration Plan 45 100Actual 40 85Completed 40 80 80 80 80 80 80 80 80 80 80 80 80

Notes• Scope Refinement reduces Schedule

Risk moderately but Schedule is still Yellow. I would eliminate the Trending Red modifier but to early to say Trending Green

Sprint 2 - End

Page 11: Agile Progress Tracking and Code Complete Date Estimation

Sprint 1 2 3 4 5 6 7 8 9 10 11 12 13Sprint Close 14-Jan 28-Jan 11-Feb 25-Feb 11-Mar 25-Mar 8-Apr 22-Apr 6-May 20-May 3-Jun 17-Jun 1-JulScope +25% 958.75 886.25 813.75 803.75 760 760 760 760 760 760 760 760 760Scope 775 725 675 675 650 650 650 650 650 650 650 650 650Scope -25% 591.25 563.75 536.25 546.25 540 540 540 540 540 540 540 540 540Dev Plan 45 95 145 195 245 295 345 395 445 495 545 595 645Iteration Plan 45 100 150 185 220Actual 40 85 120 160 210Completed 40 80 120 160 210 210 210 210 210 210 210 210 210

Notes• Schedule almost Green but Iteration

Plan and Actual Work Completed is not Meeting Plan; Mitigation Plan still needed.

Observe the “Uncertainty Range” of the Scope is getting progressively narrow. Completed Scope has an uncertainty of 0%; you know exactly how long it took to complete. Uncertainty ranges show the complexity range of uncompleted work.

Sprint 5 - End

Page 12: Agile Progress Tracking and Code Complete Date Estimation

Sprint 1 2 3 4 5 6 7 8 9 10 11 12 13Sprint Close 14-Jan 28-Jan 11-Feb 25-Feb 11-Mar 25-Mar 8-Apr 22-Apr 6-May 20-May 3-Jun 17-Jun 1-JulScope +25% 958.75 886.25 813.75 803.75 760 790 742.5 742.5 742.5 742.5 742.5 742.5 742.5Scope 775 725 675 675 650 680 650 650 650 650 650 650 650Scope -25% 591.25 563.75 536.25 546.25 540 570 557.5 557.5 557.5 557.5 557.5 557.5 557.5Dev Plan 45 95 145 195 245 295 345 395 445 495 545 595 645Iteration Plan 45 100 150 185 220 265 315Actual 40 85 120 160 210 240 280Completed 40 80 120 160 210 240 280 280 280 280 280 280 280

Notes• Sprint Velocity is predictable but less

than Development Plan. Schedule is Yellow Trending Red.

• Corrective Action must be taken or project will fail to meet schedule: A decision must be made to reduce Scope, lengthen Schedule or add Resources to finish by June 1.

Decision Made: Current Scope is needed for MVP and Schedule will be kept; Resources will be added to balance

Sprint 7 - End

Page 13: Agile Progress Tracking and Code Complete Date Estimation

Sprint 1 2 3 4 5 6 7 8 9 10 11 12 13Sprint Close 14-Jan 28-Jan 11-Feb 25-Feb 11-Mar 25-Mar 8-Apr 22-Apr 6-May 20-May 3-Jun 17-Jun 1-JulScope +25% 958.75 886.25 813.75 803.75 760 790 742.5 733.75 718.75 718.75 718.75 718.75 718.75Scope 775 725 675 675 650 680 650 655 660 660 660 660 660Scope -25% 591.25 563.75 536.25 546.25 540 570 557.5 576.25 601.25 601.25 601.25 601.25 601.25Dev Plan 45 95 145 195 245 295 345 395 445 495 545 595 645Iteration Plan 45 100 150 185 220 265 315 370 440Actual 40 85 120 160 210 240 280 340 425Completed 40 80 120 160 210 240 280 340 425 425 425 425 425

Notes• Velocity increases as additional

Resources engage and begin “norming” with the team.

Sprint 9 - End

Page 14: Agile Progress Tracking and Code Complete Date Estimation

Sprint 1 2 3 4 5 6 7 8 9 10 11 12 13Sprint Close 14-Jan 28-Jan 11-Feb 25-Feb 11-Mar 25-Mar 8-Apr 22-Apr 6-May 20-May 3-Jun 17-Jun 1-JulScope +25% 958.75 886.25 813.75 803.75 760 790 742.5 733.75 718.75 698.75 690 690 690Scope 775 725 675 675 650 680 650 655 660 660 670 670 670Scope -25% 591.25 563.75 536.25 546.25 540 570 557.5 576.25 601.25 621.25 650 650 650Dev Plan 45 95 145 195 245 295 345 395 445 505 565 625 685Iteration Plan 45 100 150 185 220 265 315 370 440 510 580Actual 40 85 120 160 210 240 280 340 425 505 590Completed 40 80 120 160 210 240 280 340 425 505 590 590 590

Notes• Development Plan updated to reflect

increased Velocity and Scope changes (The “Dev Plan” line bends upward)

• Schedule Yellow Trending Green or Green Trending Yellow; Development Plan must overshoot Total Scope in the last few sprints to account for Backlog scarcity near the end of the project and project closeout activities (there’s the real world creeping into your Dev Plan again!)

Sprint 11 - End

Page 15: Agile Progress Tracking and Code Complete Date Estimation

Sprint 1 2 3 4 5 6 7 8 9 10 11 12 13Sprint Close Date 14-Jan 28-Jan 11-Feb 25-Feb 11-Mar 25-Mar 8-Apr 22-Apr 6-May 20-May 3-Jun 17-Jun 1-JulScope +25% 958.75 886.25 813.75 803.75 760 790 742.5 733.75 718.75 698.75 690 675 665Scope 775 725 675 675 650 680 650 655 660 660 670 670 665Scope -25% 591.25 563.75 536.25 546.25 540 570 557.5 576.25 601.25 621.25 650 665 665Dev Plan 45 95 145 195 245 295 345 395 445 505 565 625 685Iteration Plan 45 100 150 185 220 265 315 370 440 510 580 650 720Actual 40 85 120 160 210 240 280 340 425 505 590 650 665Completed 40 80 120 160 210 240 280 340 425 505 590 650 665

Notes• It is recommended to plan on a

“Hardening Sprint”, which would be Sprint 14 in this example, to finish and refactor as needed and to finalized non-functional requirements like performance and other “end-to-end” testing that are hard or impossible to do until code complete

Sprint 13 - End

Page 16: Agile Progress Tracking and Code Complete Date Estimation

Release Timeline Estimation

Page 17: Agile Progress Tracking and Code Complete Date Estimation

Classic Cone of Uncertainty• What is the “Cone of Uncertainty”?• The cumulative uncertainty of the scope and effort for a project and it’s

reduction over the course of a project

• In most common definitions, it is an artifact of the Waterfall project start up approach• Relatively course-grained estimates are done based on knowledge of scope

and capacity during early planning• These rough estimates are often used to determine a target release date• The development window is determined either from backing into the release

date or based on historical data of development pace• The project timeline is locked down using these estimates

Page 18: Agile Progress Tracking and Code Complete Date Estimation

Classic Cone of Uncertainty Diagram

Page 19: Agile Progress Tracking and Code Complete Date Estimation

Problems with the Classic Cone of Uncertain Diagram• The over/under on the Accuracy of Estimates is interesting but we need to know while the project is in flight

how the accuracy of estimates affects when the work will actually be done.

• The “Classic” Cone of Uncertainty diagram is (IMHO) a seriously flawed representation of the concept and not useful at all.• The 1.00x level of Accuracy of Estimates on the y axis is reached at the end of the project. The graph gives the

impression we had the estimate dead on at the start and are just eliminating the buffer.• The x axis needs to show when the project will be done as the metric of interest.• Completing work, Progressive Elaboration and Rolling Wave Planning over a project lifetime narrows the range of

estimation uncertainty; it is a continual process not the event based changes shown in the diagram.

This diagram has no useful information or value

Page 20: Agile Progress Tracking and Code Complete Date Estimation

Code Complete Date Refinement – Improved• The useful Project Management graph is a Target Code Complete Date “Cone of Uncertainty“

• This graph allows action to be taken to affect the target completion date (remove scope, add resources) or to accurately set expectation of shareholders and downstream teams (Release Management)

• Graph the right (actionable) information • A useful graph for in-flight projects needs to show the impact of Change Requests, refinement, velocity and total scope on the finish date• Mitigation plans can only be implemented if you know there is a likelihood and impact of risk to the target date

• The right graph needs the right axes• The x axis is time• The y axis is total scope

• Need to know Velocity• The estimated speed of development per iteration is needed

• Collect the data at the right time• Update the graph at the end of each iteration or on key events (i.e. Scope Changes, staff crises)

• Overlay the estimated completion date range (the uncertainty of the date)• Like managing risk, the uncertainty needs to decrease over time and reach a single target date as soon as possible

Page 21: Agile Progress Tracking and Code Complete Date Estimation

Code Complete Date ChartQ: “Why have this chart too when I have the excellent Release Tracking Chart?”A: Complexity and Clarity• These two charts have two entirely different purposes and combining them would be confusing

• The x-intercept of the Code Complete Chart is a key feature of the chart, you wouldn’t get the same clear picture from a combined chart

• The Release Tracking Chart does give you a Code Complete date, but this chart vital for reporting results of Change Control Meetings whereas the Release Tracking Chart would not be useful.

Page 22: Agile Progress Tracking and Code Complete Date Estimation

Code Complete Date Chart• Take care that the chart and table are consistent across all Status meetings• Include 3 slides in the Executive Sponsor Status Meeting deck:

• Last meeting’s actual status• This meeting’s actual status• Next meeting’s plan

• Being able to move between these three slides and see the change over 6 weeks is an extremely effective way to present this information.• I sometimes put the current slide in the main Status section and put the three in

Appendix Material (know your audience)• The next 6 slides demonstrate how to use this tool.

Page 23: Agile Progress Tracking and Code Complete Date Estimation

Notes• Initial Scope (with uncertainty) is between

581 and 969 Story Point and will take between 9 and 14 Sprints

• Initial Target Code Complete date is 17 June. This date is very much “At Risk”.

Sprint 1 - Start

Sprint 1 2 3 4 5 6 7 8 9 10 11 12 13 14Sprint Close Date 14-Jan 28-Jan 11-Feb 25-Feb 11-Mar 25-Mar 8-Apr 22-Apr 6-May 20-May 3-Jun 17-Jun 1-Jul 15-JulEst Scope +25% 968.75 893.75 818.75 743.75 668.75 593.75 518.75 443.75 368.75 293.75 218.75 143.75 68.75 -6.25Est Scope Remaining 775 700 625 550 475 400 325 250 175 100 25 -50 -125 -200Est Scope -25% 581.25 506.25 431.25 356.25 281.25 206.25 131.25 56.25 -18.75 0 0 0 0 0Velocity 75 75 75 75 75 75 75 75 75 75 75 75 75 75Approved Scope change 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Page 24: Agile Progress Tracking and Code Complete Date Estimation

Notes• Velocity in Sprints 2 and 3 were less than

Sprint 1 and below the initial estimate• Scope changes can be from PO changes to

the Backlog, the elimination of duplicate User Stories or refinement of User Story estimates

• Range of Code Complete has reduced but 17 June Code Complete date is still At-Risk

Sprint 3 - End

Sprint 1 2 3 4 5 6 7 8 9 10 11 12 13 14Sprint Close Date 14-Jan 28-Jan 11-Feb 25-Feb 11-Mar 25-Mar 8-Apr 22-Apr 6-May 20-May 3-Jun 17-Jun 1-Jul 15-JulEst Scope +25% 968.75 843.75 768.75 708.75 633.75 558.75 483.75 408.75 333.75 258.75 183.75 108.75 33.75 -41.25Est Scope Remaining 775 675 615 555 480 405 330 255 180 105 30 -45 -120 -195Est Scope -25% 581.25 506.25 461.25 401.25 326.25 251.25 176.25 101.25 26.25 0 0 0 0 0Velocity 75 70 60 75 75 75 75 75 75 75 75 75 75 75Approved Scope change -25 10 0 0 0 0 0 0 0 0 0 0 0 0

Page 25: Agile Progress Tracking and Code Complete Date Estimation

Notes• Velocity is on average close to estimate in

Burndown in this example• The Code Complete date range is now

much more narrow• Target Code Complete of 17 June is now

after the range of Code Complete dates (but there is still no buffer)

• Code Complete estimated date is between 20 May and 17 June (3 June is most likely based on graph)

Sprint 6 - End

Sprint 1 2 3 4 5 6 7 8 9 10 11 12 13 14Sprint Close Date 14-Jan 28-Jan 11-Feb 25-Feb 11-Mar 25-Mar 8-Apr 22-Apr 6-May 20-May 3-Jun 17-Jun 1-Jul 15-JulEst Scope +25% 968.75 843.75 768.75 693.75 531.25 437.5 367.5 292.5 217.5 142.5 67.5 -7.5 -82.5 -157.5Est Scope Remaining 775 675 615 555 425 350 272 197 122 47 -28 -103 -178 -253Est Scope -25% 581.25 506.25 461.25 416.25 318.75 262.5 192.5 117.5 42.5 0 0 0 0 0Velocity 75 70 60 80 70 70 75 75 75 75 75 75 75 75Approved Scope change -25 10 0 -50 -5 -8 0 0 0 0 0 0 0 0

Page 26: Agile Progress Tracking and Code Complete Date Estimation

Notes• The uncertainty of Code Complete is

minimal and there is almost an entire sprint buffer between the latest Code Compete date and the 17 June target

• Almost certain that Code Complete will be the end of the 3 June Sprint at this point

Sprint 9 - End

Sprint 1 2 3 4 5 6 7 8 9 10 11 12 13 14Sprint Close Date 14-Jan 28-Jan 11-Feb 25-Feb 11-Mar 25-Mar 8-Apr 22-Apr 6-May 20-May 3-Jun 17-Jun 1-Jul 15-JulEst Scope +25% 968.75 843.75 768.75 693.75 531.25 425 327.5 246.25 156.25 81.25 6.25 -68.75 -143.75 -218.75Est Scope Remaining 775 675 615 555 425 340 262 197 125 50 -25 -100 -175 -250Est Scope -25% 581.25 506.25 461.25 416.25 318.75 255 196.5 147.75 93.75 18.75 0 0 0 0Velocity 75 70 60 80 80 70 80 80 75 75 75 75 75 75Approved Scope change -25 10 0 -50 -5 -8 15 8 0 0 0 0 0 0

Page 27: Agile Progress Tracking and Code Complete Date Estimation

Notes• It is an important principle of Agile that

we be open to change in scope at any time. This doesn’t mean that the Product Owner and Stakeholders have free reign to make any changes with consequences; the “Iron Triangle” concepts still apply.

• The effect of the change at this point on the Release Date is obvious: If the scope change is accepted, the schedule change of adding two additional Sprints also must be accepted (at this late stage, it is unlikely we could add resources to cover the scope change).

Sprint 9 – What if we add another 100 days of scope at the start of Sprint 9?

Sprint 1 2 3 4 5 6 7 8 9 10 11 12 13 14Sprint Close Date 14-Jan 28-Jan 11-Feb 25-Feb 11-Mar 25-Mar 8-Apr 22-Apr 6-May 20-May 3-Jun 17-Jun 1-Jul 15-JulEst Scope +25% 968.75 843.75 768.75 693.75 531.25 425 327.5 246.25 277.5 202.5 127.5 52.5 -22.5 -97.5Est Scope Remaining 775 675 615 555 425 340 262 197 222 147 72 -3 -78 -153Est Scope -25% 581.25 506.25 461.25 416.25 318.75 255 196.5 147.75 166.5 91.5 16.5 -58.5 -133.5 -208.5Velocity 75 70 60 80 80 70 80 80 75 75 75 75 75 75Approved Scope change -25 10 0 -50 -5 -8 15 108 0 0 0 0 0 0

Page 28: Agile Progress Tracking and Code Complete Date Estimation

NotesCode Complete

Sprint 11 – End (Code Complete)

Sprint 1 2 3 4 5 6 7 8 9 10 11 12 13 14Sprint Close Date 14-Jan 28-Jan 11-Feb 25-Feb 11-Mar 25-Mar 8-Apr 22-Apr 6-May 20-May 3-Jun 17-Jun 1-Jul 15-JulEst Scope +25% 968.75 843.75 768.75 693.75 531.25 425 327.5 246.25 156.25 81.25 0 0 0 0Est Scope Remaining 775 675 615 555 425 340 262 197 125 50 0 0 0 0Est Scope -25% 581.25 506.25 461.25 416.25 318.75 255 196.5 147.75 93.75 18.75 0 0 0 0Velocity 75 70 60 80 80 70 80 80 75 80 0 0 0 0Approved Scope change -25 10 0 -50 -5 -8 15 8 0 5 0 0 0 0