Iterative and Incremental Principle Series 4: Iteration Planning – (a.k.a What should I do today?)
- by llowitz
Welcome back to the fourth of a five part series on applying the Iteration and Incremental principle. During the last segment, we discussed how the Implementation Plan includes the number of the iterations for a project, but not the specifics about what will occur during each iteration. Today, we will explore Iteration Planning and discuss how and when to plan your iterations.
As mentioned yesterday, OUM prescribes initially planning your project approach at a high level by creating an Implementation Plan. As the project moves through the lifecycle, the plan is progressively refined. Specifically, the details of each iteration is planned prior to the iteration start.
The Iteration Plan starts by identifying the iteration goal. An example of an iteration goal during the OUM Elaboration Phase may be to complete the RD.140.2 Create Requirements Specification for a specific set of requirements. Another project may determine that their iteration goal is to focus on a smaller set of requirements, but to complete both the RD.140.2 Create Requirements Specification and the AN.100.1 Prepare Analysis Specification.
In an OUM project, the Iteration Plan needs to identify both the iteration goal – how far along the implementation lifecycle you plan to be, and the scope of work for the iteration. Since each iteration typically ranges from 2 weeks to 6 weeks, it is important to identify a scope of work that is achievable, yet challenging, given the iteration goal and timeframe.
OUM provides specific guidelines and techniques to help prioritize the scope of work based on criteria such as risk, complexity, customer priority and dependency. In OUM, this prioritization helps focus early iterations on the high risk, architecturally significant items helping to mitigate overall project risk.
Central to the prioritization is the MoSCoW (Must Have, Should Have, Could Have, and Won’t Have) list. The result of the MoSCoW prioritization is an Iteration Group. This is a scope of work to be worked on as a group during one or more iterations.
As I mentioned during yesterday’s blog, it is pointless to plan my daily exercise in advance since several factors, including the weather, influence what exercise I perform each day. Therefore, every morning I perform Iteration Planning. My “Iteration Plan” includes the type of exercise for the day (run, bike, elliptical), whether I will exercise outside or at the gym, and how many interval sets I plan to complete.
I use several factors to prioritize the type of exercise that I perform each day. Since running outside is my highest priority, I try to complete it early in the week to minimize the risk of not meeting my overall goal of doing it twice each week. Regardless of the specific exercise I select, I follow the guidelines in my Implementation Plan by applying the 6-minute interval sets. Just as in OUM, the iteration goal should be in context of the overall Implementation Plan, and the iteration goal should move the project closer to achieving the phase milestone goals.
Having an Implementation Plan details the strategy of what I plan to do and keeps me on track, while the Iteration Plan affords me the flexibility to juggle what I do each day based on external influences thus maximizing my overall success.
Tomorrow I’ll conclude the series on applying the Iterative and Incremental approach by discussing how to manage the iteration duration and highlighting some benefits of applying this principle.