For most projects, the team will need to create a plan that assigns features to iterations for the duration of the project in order to get a feel for the project flow and determine completion dates, staffing, costs, and other oroje ct planting info jmationf Tine resulta nt p lan can be viewed in a sn"eadhheet, as shrnwn i n Figure 6.4. The proneot team and key members of the customer team, including the product manager, do —feraeon flanningi The activities in volved in luying out the iteration plan include:
• Xetermin ing how identified ris ks will inTluence ite ration planning
• Identifying the schedule target
• Establishing the milestone and iteration periods
• Xeveloping a theme for each iteration (or milestone)
• Assigning feature cards to each iteration, balancing customer priorities, risks, resources, ann depen0eocies as necessary
• Summarizing the plan in some combination of a feature-level spreadsheet plan (Figure 6.4), s feature card layout (Figure 6.5) (usually on a wall), or a project parking lot (Figure 6.7)
• Calculating an initial project schedule from staff availability and total feature effort estimates
• Ad-unti ng th e completed p^n as necessary
Wh 1 le the prod uct manager (tog et"iar with fife custome p team) dete rmines r-le pr|o:ity of feature ussignmenr to iterations, technical risk issues may influence her decisions. As previously discussed, customer value and risk are the primary drivers for feature scheduling. For example, in a project with an erratic requirements risk (the team realizes that requirements will be difficult to determine and volatile), the decisions on what features to implement early may be different than those for a project with high technical risk (the team has never used the technology combination before). There may be times when high-value features, which would normally be implemented first, will have to be deferred in favor of high-risk features , whicT nee d too lie imple mented early to reduce the risk, A risk list should be reviewed to determine what impact risk mitigation might have on the iteration plan, specifically the sequencing of features and t he incorp oration of h igh-risk i terns. Other consid erations , such as feature-to-feature dependencies, may have some influence on scheduling, but customer value and risk are paramount.
Every project has some target delivery date selected by marketing, management, or a customer. A target establishes wha t someone outside the project team desires due to an understanding of the business. In the case of a co-product release (say Microsoft is releasing a new version of Windows, for which you, compane has a com pilementary "iroduct), a retes se date ma° "ie fixed. A target may also be used to ensure a fixed limit on development cost. While the rationale behind these dates can vary from s thoughtful analysis of the market to an off-the-cuff guess, they are important. Whether off-the-cuff or thoughtful, they represent the stakeholders' expectation. Every project also has a planned date, which the engineering team develops as part of the release planning process. Both of these dates will be used in the negotiation process, but the project team needs to understand the stakeholders' expectation, even if it is outlandish.
In many cases the target date becomes a constraint on the project. Let's say the best planning and negotiation still yield a date that the product manager, with executive concurrence, deems two months too long. The earlier date can be designated as the constraint date, provided everyone understands its purpose. Since there are many unknowns about the project, everyone—the development and customer teams and executives—works to resolve those unknowns such that the project is completed by the earlier date. For example, everyone looks to cut features in order to reduce the scope. At the earliest time that information indicates the earlier date cannot be achieved, a reevaluation of the project would occur. 19!
t9] This process of negotiating between target and planned dates will only work when all parties are working collaboratively to achieve a common goal. It will not work in a situation in which parties are being arbitrary and capricious.
Iteration and milestone periods will vary considerably depending on the size of the project and whether it involves ha rdware and software, just software, or just hardware (rare today). As previously mentioned, milestones can be used for the purposes of both project management (status reporting) and technical synchronization (integrating hardware and software components). Hardware iterations may be longer than those for software, but the iterations should sync on milestone boundaries for integration testing.
For each milestone or iteration the team should develop and write a guiding theme. This is critical for focusing and ensuring th at the team balances betw een breadth an d depth of features. Theme dev elopment o ften evolves from the process of assigning features to iterations, but sometimes initial theme s present themse Ives independently. These th emes (e.g., "Demonstrate the basic instrument data acquisition capability"), or goals, help focus the team in ways that a list of individual features may not. Themes can also reflect risk abatement strategies (e.g., "Prove that our high-risk valve design is viable"). For large projects in which many features are being built each iteration, themes are particularly important. The best way to document the theme is on an iteration card, as shown in Figure 6.6. These cards can be used to organize feature cards on the table or wall and to record other useful information (such as assumptions) about the iteration.
Figure 6.6. Documenting an Iteration Theme
Heralion Number: 3
Them e: To &i mu late th e lias i e lu n ctto ns of 1 he m\ m me ni t irtu it board
Advanced functions wi 11 te addressed in iteration 7.
The simulations will be able to test BOit to 90% ol the board lunclionality.
One of the reasons index cards are an effective planning tool is that they can be easily shuffled during each iteration's planning session. For small projects the team may lay cards out on a table, while for larger ones cards may be taped to whiteboards. A summary spreadsheet can show a snapshot of the entire project and maintain resource summaries. While cards should identify features that are as independent from each other as possible, dependencies will occur and influence the order of implementation. It's critical that this information be captured on the card.
Other techniques can create a more reliable schedule. The first is to add time to each iteration for changes that are identified during an iteration review. One feature card entitled "Rework and Contingency" is placed in each iteration. I've often seen plans with inspection or review tasks but withouf any time allotted for the changes that arose from those reviews! At the end of each iteration, an agiln project goes through several quick reviews, both customer and technical. The planning phases of somn agile methods imply that features are started and finished within a single iteration. Experience shows thaf most features actually evolve over two or three iterations as customer focus groups provide feedback. deluding a rework and contingency "feature" card in each iteration (60%+ of the effort scheduled for the iteration) provides time for changes that are inevitable, even though the details aren't known.
A seco Dd techn iqu e for increasing the reliability of the schedule, particularly with high exploration-factor projects, is to set aside one or more "empty" iterations at the end of the project. These buffers are useV to accommodate changes, new features, or other project alterations. Alternatively, features assigned to the last iteration or two should be those that can be dropped if necessary.
A final point about release planning needs to be made. Despite superficial appearances, this is not prescriptive planning. Even though a full release plan with features assigned to each iteration may look prescriptive, the plan is subject to review and revision at the end of each iteration and milestone.
Was this article helpful?
What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.