Planning an Iterative Project

It is usually not very difficult to convince a project manager of all the benefits of an iterative project (see Chapter 4). But when it comes time to define one, project managers are often perplexed: Few of the traditional planning techniques seem to apply. Some new questions arise:

  • How many iterations do I need?

  • How long should they be?

  • How do I determine the contents and objectives of an iteration?

  • How do I track the progress of an iteration?

Among the objectives of project planning are the following:

  • To allocate tasks and responsibilities to a team of people over time

  • To monitor progress relative to the plan and to detect potential problems as the project is rolled out

Planning also deals with managing inanimate resources such as facilities, equipment, and budgets , but we will not cover this aspect because it is not affected significantly by the iterative approach.

Two Levels of Plan

There have been countless ambitious but doomed attempts to plan large software projects from start to finish in minute detail, as you would plan the construction of a skyscraper. As planners have tried to pin down activities and tasks at the person and day level several months or years in advance, I have seen the resulting Gantt charts and logic networks of activities cover the walls of several rooms and lobbies . For such plans to be realistic, you must have a very good understanding of what will be built, you must have stable requirements and a stable architecture, and you must have built a similar system from which you can derive a detailed work breakdown structure (WBS).

But how can you plan to have Joe code module GGART in week 37 if you do not even know about the existence of module GGART?

The approach works well in industries in which the WBS is more or less standard and stable and the ordering of tasks is fairly deterministic because of, for example, the underlying laws of physics. When constructing a building, you cannot bring up floors 1 and 4 in parallel unless you've done work on floors 2 and 3.

In an iterative process, we recommend that the development be based on two kinds of plans:

  • A coarse-grained plan: the phase plan

  • A series of fine-grained plans: the iteration plans

The Phase Plan (or Project Plan)

The phase plan is a coarse-grained plan, and there is only one per development project. It captures the overall "envelope" of the project for one cycle (and maybe the following cycles, if appropriate). It can be summarized as follows :

  • Dates of the major milestones

    - Lifecycle objective (end of inception, project well scoped and funded )

    - Lifecycle architecture (end of elaboration, architecture complete)

    - Initial operational capability (end of construction, first beta)

    - Product release (end of transition and of the cycle)

  • Staffing profile : which resources are required over time

  • Dates of the minor milestones : end of each iteration and its primary objective, if it is known

The phase plan is produced very early in the inception phase and is updated as often as necessary. It does not require more than one or two pages. It refers to the vision document to define the scope and assumptions of the project (see Chapter 9).

The Iteration Plan

An iteration plan is a fine-grained plan, and there is one per iteration. A project usually has two iteration plans "active" at one time:

  • The current iteration plan (the one for the current iteration), which is used to track progress

  • The next iteration plan (the one for the pending iteration), which is built toward the second half of the current iteration and is ready at the end of the current iteration

The iteration plan is built using traditional planning techniques and tools (Gantt charts and so on) to define the tasks and their allocation to individuals and teams . The plan contains important dates, such as major builds, arrival of components from other organizations, and major reviews.

You can picture the iteration plan as a window moving through the phase plan, acting as a magnifier, as shown in Figure 7-1.

Figure 7-1. Project plan and iteration plan

graphics/07fig01.gif

Because the iterative process is dynamic and is meant to accommodate changes in goals and tactics, no purpose is served by spending an inordinate amount of time producing detailed plans that extend beyond the current planning horizon. Such plans are difficult to maintain, rapidly become obsolete, and typically are ignored by the performing organization. The iteration plan covers about the right span of time and is the right granularity to do a good job of detailed planning.



The Rational Unified Process. An Introduction
Blogosphere: Best of Blogs
ISBN: B0072U14D8
EAN: 2147483647
Year: 2002
Pages: 193

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net