130 likes | 325 Views
Planning Iterative Software Development Projects. Raj Agrawal, PMP Unisys. Synopsis.
E N D
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