Planning Iterative Software Development Projects Raj Agrawal, PMP Unisys
Synopsis Iterative software development projects require a different approach to project planning as compared to traditional waterfall projects. This is especially true in areas such as estimation of effort, technical risk mitigation, schedule development, resource planning & scope management. Experiences, lessons learned and best practices derived in parametric estimation, iterative development of schedules, requirements development & analysis will be discussed.
Overview Introduction What is iterative development? Reality – Requirements Change! Why iterative development? Challenges of iterative development Estimation Estimation techniques Top down or bottom-up estimation? Planning Project Plan development Resource Plan development Scope management – iteration by iteration Conclusion
What is Iterative Development? Development methodology to improve software project delivery Divides project into “mini waterfall projects” called iterations Requirements per iteration are based on technical risk mitigation and business value Iteration duration is typically 4-12 weeks Iterations are timeboxed – fix end date and remove requirements if slippage Each iteration delivers a partial working system Requires continuous negotiation between scope, solution & project plan
Reality – Requirements Change! Source: “How to Fail with the Rational Unified Process: Seven Steps to Pain and Suffering”, Craig Larman, Philippe Kruchten, Kurt Bittner
Why Iterative Development? Mitigates risk Assumes requirements will change over project life A tested partial solution enables feedback to align requirements and design Provides early indication of project progress Provides basis for early scope negotiations & management Reduces Gold-plating & Requirements Creep
Challenges of Iterative Development Cost estimation without a detailed WBS Rolling Window Planning - Project Plan only detailed to next iteration Requirements analysis during each iteration may lead to changes to baseline Clients need to prioritize requirements Architects need to identify and prioritize technical risks Waterfall milestones such as SDR, PDR, CDR need to be mapped
Estimation Techniques Top down estimation requires A cost estimation tool Measure of volume Input for languages Environment parameters Bottom up estimation requires A detailed WBS Estimates for each lowest element of WBS
Top Down or Bottom Up Estimation? They complement each other Use top down estimation for application development Bottom up estimation Validation of top down estimate Estimate each iteration and discipline within iteration Add other items such as business modeling & system integration
Project Plan Development Create high level plan based on estimate Phase dates Iteration plan Iteration dates Key milestones Detail the first phase & first iteration Develop next iteration plan mid-way through this iteration
Resource Plan Development Use hours estimate from the cost model Use hours by roles from cost model Spread hours over the timeline Assign staff to roles
Scope Management – Iteration by Iteration Each iteration is time-boxed Requirements dropped from an iteration move into next iteration Only if requirements are prioritized Architecture is defined Technical risks are prioritized Close stakeholder involvement is needed for scope management
Conclusion Iterative development requires a different mindset – do the hard work first Stakeholders need to involved closely Estimation tools aid planning Requirements should be prioritized Architecture centric design Iteration plan should mitigate risks Leads to adaptive development