Wednesday, September 13, 2006

Agile Project Management Planning and Budgeting

David Hussman gave a talk at NFJS about agile Project Management Planning and Budgeting. He started it out by discussing the various agile paths (XP, SCRUM, Crystal, and Feature Driven Development) as well as the traits of agile. These include the ability to adapt to changing business requirements, allowing the business to select features, quality testing throughout, iterative development and deployment, and emphasis on continuous user feedback.

Then David discusses the current planning techniques which include creating a project plan with specific dates and tasks. This plan is a legal requirements document and changes have to come in the form of change requests. Estimates are done early and not updated. The developers are not the ones providing the estimates, and there is rarely enough time for testing. There are no feedback loops and metric to track the plan.

Next, David described the agile release cycle which consist of project, releases and iterations. Project duration is 6 to 12 months and starts out with chartering, roadmap, personas and a product back log. A retrospective is performed at the end of the project.
Releases are 4 to 8 weeks and include release planning and retrospectives. Iterations are 1 to 2 weeks and consist of plan, build and reflect loops.

Product/Project planning determines value. It involves chartering the project by defining the goals of the project, the value to the company, and the success measures. It also involves mapping the project community to define team roles, responsibilities and commitments to the project. Finally, a product backlog is setup.

Release planning involves business prioritization, estimating course grained stories and discussing risk and architectural decisions.

Iteration planning involves the design, develop, build loop. Work is continuously integrated. Information is shared daily and questions are clarified by the customer. Stories are signed off and progress is posted.

Finally, retrospective is performed at the end of each cycle whether at the iteration, release or project level. It is used to celebrate success and vent frustration and to determine what worked, what did not work, and what to add/change/or stop.

David spends some time going over a planning exercise with the audience for the design a POS retail system. Finally metrics collections are discussed. This presentation is available on InfoQ at