February 27, 2021
Hot Topics:

Viewing Agile Concepts From a Phase Perspective

  • By Greg Smith & Ahmed Sidky
  • Send Email »
  • More Articles »

Planning—speculating and creating a living plan

PHASE OBJECTIVE: Break the idea down into discrete pieces of functionality called features. Prioritize the features and assign them to iterations.

The first step in the planning phase is to orient all of the planning team members on the idea.

Frequently the planning team will conduct an "envisioning" meeting to help everyone synchronize on the benefits of the idea. The envisioning meeting can be viewed as a marketing meeting. The team pretends they are going to sell the idea to a customer. They identify the top 3 to 5 product highlights they would tell the customer about. In addition they create a summary of key features that will be delivered. The idea is becoming a project during this exercise.

Note that the planning phase also continues the feasibility work. We gathered enough information to justify planning during feasibility, now we want to refine our financials based on the additional detailed gleaned during planning. See figure 3.

Click here for a larger image.

Figure 3 The planning phase brings the project team together to quickly convert the idea into features. The features are prioritized, sequenced, and estimated during the phase. An iteration plan is created to initialize development.

After features are identified the team goes through the feature card exercise. In this step the features identified during envisioning are fleshed out just enough to prioritize them and sequence them into the order they would be developed in. The team also uses the prioritization as another feasibility check. If a feature comes out of the feature card exercise as a low priority the customer may choose to remove it from the project.

The remaining features are estimated by the team at a high level, identifying the major tasks and resource types needed.

The last step of this phase is to assign features to iterations. The iterations are buckets of time that the team develops features in. A good time frame for an iteration is 2 to 3 weeks. The previous estimates are used to determine which features will fit into the available iterations.

Note that each iteration is structured so that it provides value on its own. This allows deployment even if something prevents all of the iterations from being completed.

The main deliverable from this phase is the iteration plan.

Development—exploring with a schedule

PHASE OBJECTIVE: Create, test, and demonstrate features. Queue iterations for deployment.

The development phase begins with iteration 0. The iteration is so labeled because no features are delivered during it. This iteration is used to put the necessary foundation pieces, both business and technical, in place to start development. Some typical iteration 0 activities are:

  • Finalizing contracts with vendors
  • Initial architecture design
  • Preparing the environments (OS, DB, Development tools)
  • Funding

If you are building on an existing platform, with dedicated resources, you may not need an iteration 0. You can begin development immediately after planning.

When the first development iteration starts the team will refine the tasks they identified during planning. This is very common because the team only provided enough information to estimate the features during planning. Once a project gets through the planning gateway the team knows it is coming and they will begin doing detailed analysis of the work they need to do.

The development done during an iteration is not waterfall. The process will be one of collaborative development. The developer will create code to the minimum specification and demonstrate it to the customer. At this time the customer will identify requirements they missed, or issues with their initial requirements. The developer may also identify technical issues. The developer, customer, and team will work through these issues during the iteration, evolving the code until it supports what is needed at the end if the iteration, not necessarily what was requested at the beginning. Figure 4 illustrates the steps in Development.

Click here for a larger image.

Figure 4 Development starts by establishing a foundation in iteration 0. Development iterations follow, delivering working code in subsets every 2 to 4 weeks. The working code is surfaced for a demonstration and customer feedback. When all iterations are completed the code is delivered to a production environment.

Building and testing occurs during an iteration. When an iteration is complete there is a review meeting to adapt (see Adapt in the following section).

Iterations are stored in acceptance environments until all iterations are deemed complete. At that time all of the work is deployed into the Production environment.

Page 3 of 4

This article was originally published on October 24, 2008

Enterprise Development Update

Don't miss an article. Subscribe to our newsletter below.

Thanks for your registration, follow us on our social networks to keep up-to-date