Title: Planning Iterative Software Development Projects
1Planning Iterative Software Development Projects
2Synopsis
- 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.
3Overview
- 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
4What 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
5Reality Requirements Change!
Source How to Fail with the Rational Unified
Process Seven Steps to Pain and Suffering,
Craig Larman, Philippe Kruchten, Kurt Bittner
6Why 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
7Challenges 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
8Estimation 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
9Top 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
10Project 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
11Resource 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
12Scope 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
13Conclusion
- 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