Wednesday, July 16, 2008

Introduction to Agile for Traditional Project Managers

The Software Project Manager's Bridge to AgilityAt Agile 2007, Stacia Broderick mapped the PMBOK process groups and knowledge areas to agile practices. She started by defining agile as a value driven approach to building working software by collaborating with customers and embracing change. The characteristics of agile are:

1. Iterative, incremental

2. Risk mitigation via use of timeboxes

3. Continuous improvements

4. Team ownership of quality

5. Value based prioritization of requirements

6. Dedicated self managing teams

7. Collaborating with customer

8. Embracing change

9. Modern engineering practices

Next she went over the Agile manifesto and the principles of:

1. Individuals and interactions over processes and tools

2. Working software over comprehensive documentation

3. Customer collaboration over contract negotiation

4. Responding to change over following a plan

She then mapped the PMBOK process groups of Initiate, Plan Execute, Control, and Close to the agile practices of Envision, Speculate, Explore, Adapt, and Close. She described how the traditional iron triangle of Scope, Time, Cost or Budget has a fixed scope from which a date and cost is derived where as in agile, the triangle is reversed with the date and cost fixed and the scoped varied or derived based on a prioritized product backlog.

Next, Stacia covers the PMBOK knowledge areas and starts with Integration Management. Traditionally integration management covers how to communicate the project plan, manage, direct, monitor and control the project. In agile, it is facilitate, inspect and adapt through release and iteration planning and execution through every iteration. Integrated change control is worked through the ranked product backlog. In agile, the team plans for the next iteration based on prioritized backlog. The team breaks down features into tasks and meets every day in daily stand up meeting to discuss progress, impediments, and ways to remove impediments. At end of iteration, the team presents a product increment that is demoed in a review meeting. The team has retrospective and inspects and adapts both the product and the process. This is similar to Deming’s plan, do, check, act cycle.

In traditional scope management, there is scope definition followed be the creating of the WBS, scope verification, and scope change control. In agile, the planning meetings are to define scope, there is release and iteration plans from product vision, roadmap planning, and release planning, feature acceptance and feedback results from product owner collaborating with the team, and a prioritized backlog to accept changes. The planning comes at a strategic level where iterations contain themes or features and tactical level, where for the next iteration features are broken down into task. The agile road map shows the details of the next iteration and features of the future iteration for the current quarter and higher level features or themes for 2nd and 3rd quarter, etc.

In traditional time management, the tasks are broken down and estimated, the sequence is determined as well as the resources. The schedule is developed and controlled. In agile, we do not see tasks until iteration planning (the team determines estimates and tasks). The teams are dedicated. The schedule is the project roadmap, release and iteration plans. The project roadmap and release plan are updated based on velocity. No better way to see progress then to look at product at end the of each iteration.

As for cost management, it involves cost estimation, requested change processed through change control, cost budgeting, and cost control. Agile also has cost estimating, a release backlog updated to reflect new and changing requirements, cost budgeting, and cost control. The dedicated team model reduces cost budgeting and management significantly. It makes it simpler to calculate cost. A simple way is to figure out the team cost per iteration, add any special resource and a standard overrun. This cost can then be applied to figure out total cost per quarter etc. It’s a time and material project but with a deliverable at end of each iteration at which customer can choose to proceed or not.

In terms of quality management, the practices of quality planning, quality assurance, quality control and built into agile via test driven development which pushes QA to the beginning and then having reviews, retrospectives, and acceptance.

Stacia wraps up covering skill sets the agile project management needs. Most importantly are the soft skills of listening, facilitating, educating, embracing change, continuously improving and leading by serving. Agile is a value based approach and call for leadership not management. The pm has to let go and allow the team to self manage. Next come the project skills of assisting the product owner with the backlog management, clearing obstacles from the team and product owner, advocating the agile principles and practices, making progress visible, and bringing the news and not becoming a barrier to communication.

This presentation is available on InfoQ at