IBM Software Group
®
© 2005 IBM Corporation
From Waterfall to Iterative DevelopmentMaking an effective transition
Steve Wittie, ITSIBM Rational Software
IBM Software Group | Rational software
2
Outline
SoftwareThe waterfall lifecycleIterative developmentSummary
IBM Software Group | Rational software
3
The Nature of Software
Engineering In the world of atoms, they obey the laws of physics
In the world of bits, software has no “physical laws” Extreme modifiability
Used to be a way to fix hardware problems support the business
Has evolved to driving technology and “Being” the business. Diseconomy of scale
In most manufacturing processes there exists economies of scale
In contrast, the more software you build, the greater the cost per unit item.
Software enables our thoughts, our ideas, our innovation.
IBM Software Group | Rational software
4
The Good News with the Bad
Software is everywhere, from: Our business, to being our business IT departments, to the Department of Defense The Space Shuttle, to shuttle buses Our stock market, to our personal bank accounts
Software problems affect every aspect of our lives, from The customers we can reach, to the “customers experience” The job we can do, to our ability to defend our freedom Our ability to explore, to our ability to get to work The stability of our currency, to the security of our last paycheck
The pervasiveness of software in every walk of life compels us to engineer our software solutions
IBM Software Group | Rational software
5
Outline
SoftwareThe waterfall lifecycleIterative developmentSummary
IBM Software Group | Rational software
7
Waterfall Software Development
Freeze requirements before design. Forbid coding prior to detailed design review. Do the easy stuff first. Complete unit testing before integration. Maintain detailed traceability among all artifacts. Document and maintain the design. Assess quality with an independent team. Inspect everything. Plan everything early with high fidelity Control source code baselines rigorously.
IBM Software Group | Rational software
8
Waterfall: What Happens in Practice
Requirements Design Code Integration Test
Late DesignBreakage
100%
Project Schedule
Dev
elop
men
t Pro
gres
s(%
cod
ed)
OriginalTarget Date
IntegrationBegins
Late design breakage 40% effort on integration and test
Problems in the Software are Found too Late to even React; let alone recover
IBM Software Group | Rational software
9
Outline
SoftwareThe waterfall lifecycleIterative developmentSummary
IBM Software Group | Rational software
10
Our Result of Addressing Waterfall Inefficiencies
• Earliest iterations address greatest risks • Each iteration produces an executable release• Each iteration includes integration and test
Iteration 1 Iteration 2 Iteration 3
IBM Software Group | Rational software
11
Iterative: What Happens in Practice
Prototypes Architecture Functional Product Releases Release100%
Project Schedule
ModernProject Profile
Dev
elop
men
t Pro
gres
s(%
Cod
ed)
Risk Driven User Perspective Throughout Architecture Centric Results Based
Problems are Found in the Software in each Iteration, Allowing Time to Recover
IBM Software Group | Rational software
12
Iterative Software Development
Focus the process on the architecture first
Attack risks early with an iterative life cycle
Emphasize component-based development
Change management of all artifacts
Simplify change freedom with round-trip engineering
Use rigorous, model-based design notation
Instrument the process for objective quality control
Emphasize demonstration-based assessment
Plan releases with evolving levels of detail
Establish a scalable, configurable process
IBM Software Group | Rational software
13
RUP Iterative Development
Phases
Disciplines group activities logically
In an iteration, you walk through all disciplines
IBM Software Group | Rational software
14
Benefits of Iterative Development
Accommodating changes Functional changes, tactical changes, technology
It is inevitable, so make it part of your process
Letting the discovery process work for you Better opportunity for reuse
Reuse identified early (Elaboration) Higher quality
Tested early and more often,
Checkpoints for process valuation
Roadmap of how value will be delivered to the customer Greater predictability, minimize losses
Earlier discovery of potential for failure or cancellation
Defines decision points to reduce surprises Risk
Organization, process, technology addressed early
Addressed each iteration in small, manageable chunks
IBM Software Group | Rational software
15
Better Progress Profile
100%
Project Schedule
WaterfallProject Profile
ModernProject Profile
Dev
elop
men
t Pro
gres
s(%
Cod
ed)
Sequential phases, but iterative activitiesPrototypes Architecture Functional Product
Releases Release
IBM Software Group | Rational software
16
Accelerate Risk Reduction
Iterative
T I M E
Iteration Iteration Iteration Iteration Iteration
Risk reductionRisk reduction
R
I
S
KWaterfall risk
IBM Software Group | Rational software
17
Sounds Great! But there is no such thing as a Free Lunch!
Transitioning to iterative development will be a paradigm shift for all stakeholders; whether it be the customer, management, or the development team; especially the project manager.
These Paradigm Shifts manifest TRAPS that we can get caught in if we are not watching for them!
These Paradigm Shifts include:
• More Planning Work• Acknowledging Rework Up Front• Putting Software First• Hitting Hard Problems Earlier
• Clashes of Lifecycle Models• Different Accounting for Progress• Number, Duration and Content of Iterations• Project Manager & Project Architect
IBM Software Group | Rational software
18
Outline
SoftwareThe waterfall lifecycleIterative developmentSummary
IBM Software Group | Rational software
19
Number, Duration and Content of Iterations - 2
Trap: Too many iterations Tips
Daily, weekly builds are not iterations
Depends on size, team size, familiarity with the approach
the size of the organization, its degree of geographic distribution, and the number of distinct organizations involved
Total # of iterations [I,E,C,T]
Low 3 [0,1,1,1]
Typical 6 [1,2,2,1]
High 9 [1,3,3,2]
Very High 10 [2,3,3,2]
IBM Software Group | Rational software
20
Confused a Little? Change Seems to Do That!
Waterfall lifecycle makes it easy on the manager, hard on the engineers
Early and regular sense of completeness
End of the lifecycle is weighted heavy with risk
Iterative lifecycle brings a bit more complexity to management Sense of incompleteness in the early iterations
More planning work required; each phase and iteration
Less pain in the end
Iterative does not necessarily mean less work and shorter schedules
Price to pay for greater predictability, consistency, quality
IBM Software Group | Rational software
21
Project Managers:
Do not change everything at once
There are fire-proven recipes & techniques to address this type of change. So, get help! Don’t do it on your own!
Keep in mind: Software comes first (Keep the ultimate objective in mind.)
Attack the risk actively or they will attack you
Chose an architect and a project manager who can work hand in hand
Do not follow a process blindly, tailor it and use the tailored process as your guide.
Once in a while, revisit the next slide titled: “Benefits”
IBM Software Group | Rational software
22
Benefits of Iterative Development Process
Consistency Enable clear, consistent communication for all team
members with well defined roles and responsibilities
Exploit reuse early by addressing architecturally significant requirements and applying architectural patterns
Predictability Help identify what resources are needed and when
“Compare to” baseline for addressing bottlenecks and failure points
Defines decision points to reduce surprises; earlier failure recognition
Enables metric development to support future planning and estimation
Quality Focus on risk reduction, accommodate change, test early and often
Roadmap of how value will be regularly delivered to the customer
IBM Software Group | Rational software
23
Hallmarks of Agile tooling (in Ralf) Intelligent check out/in. The tool should know what I
changed. Checkin as a group of associated changes, called atomic
commits. Allow Isolated, individual workspaces until ready to commit.
Add your changes to LATEST.Auto merge when needed (trivial).
Allow Isolated, individual workspaces until wanting to refresh.Get your changes from LATEST.Auto merge when needed (trivial).
No developer interaction with tool unless a non trivial merge needs resolution.
Then resolve it immediately
IBM Software Group | Rational software
24
Hallmarks of Agile tooling (in Ralf)
Ability to Roll back/forward any workspace to a point in time, relative to the commits you want.
Facilitates NO STOPPING – constant iteration of the development process.All roles, developer workspaces, test
workspaces, build workspaces, etc.Don’t wait for other roles (waterfall).
Report trends in all phases of iteration, then improve it.
IBM Software Group | Rational software
25
Ralf and ClearCase Questions:Ralf = Rational Agile Lite Framework
Free plug in to CC explorer / behaves like Tortoise
Why Ralf and who owns itWhat about UCMWhat about CC ver 7.1 Is there anything you can’t do with ClearCase?What about performance (all that meta-data)What about co-mingling regular CC and RalfCCWhat about Agile in multiple vobsWhat about Code and file refactoring Is Ralf easy to install and learn