Waterfall is the standard process oriented methodology employed by most (particularly large) organisations that need rigorous procedural control and auditability. It is particularly relevant for client side work because it involves a step by step process with a relay race approach involving up front analysis costing and estimation, and an incremental project life cycle with different skills being employed at different periods, thus allowing resource to be managed more easily. It is also easier to certify and compare against standards, and the focus on documentation means that there are easy reference points and improved knowledge transfer among the people involved. Organisations like to work this way, and people get comfortable with it because it can allow them to point fingers when things go wrong, and can remove the need to change and be flexible.
Agile comes at projects from a completely different angle, placing the onus firmly on people rather than process. It does away with documentation that does not add immediate value to the project development, and to be successful requires all team members to be more cross functional and work together in a fluid supportive way, dependent on a high level of goal congruence and motivation. It is a trust based approach that is not easy to tick off against quality standards, but much easier to measure against return on investment. It provides high visibility on outputs and relevance, and allows for much greater client side involvement and ultimately satisfaction, and delivers greater recognition for team achievement. However the lack of documentation raises risk in areas of knowledge transfer, trust is fragile across organisations, and Agile does not necessarily deliver whole projects any faster. Organisations are rarely set up to cope with Agile requirements, but professionals like to work this way because it allows them to control the way they work and they don't have to waste time on non-core activity that detracts from delivery.
The point to note is that client based work, particularly for clients with limited or no Agile experience, and/or delivery with novice (R1) or limited experience Agile teams, has both pros and cons. In the rush to sell or implement Agile against Waterfall, the cons are often ignored, but these must be recognised and mitigated against if you want your Agile project to really be successful.
The following is a brief outline of both the pros and cons of Waterfall and Agile you can use as a starter for ten.
| Waterfall | Agile |
Overview - Relay race approach
- Good for clear, well defined & fixed requirements
- System specs
- Functional requirements
- Software requirements
- Analysis
- Design
- Coding
- Testing
- Operations
| Overview - Holistic rugby approach
- Good for projects with unknowns
- Cross functionality
- Parallel working
- Working together
- User stories (supported by use cases, models, UML etc. as necessary) rather than detailed Requirement Specs
- Ongoing Analysis and Design
- Coding and testing in tandem
|
Pros - Audit
- Structured management
- Budget and schedule predictability
- Control
- Scale
- Skills Specialisation
- Documentation = knowledge transferability
- Familiarity / often part of organisational culture
- Structural support from other departments
| Pros - Early ROI
- Flexibility
- Team control
- Better understanding of both bigger picture and immediate priorities
- Better delivery
- Higher visibility
- More client involvement
|
Cons - Late ROI
- Embeds rigidity
- Heirarchical control
- Lack of client involvement
- Big delivery surprises late in the project
- Too much documentation
- Poor visibility
- Poor long-term goal coherence
- Difficult to control output relevance over life-cycle
- Protracted delivery
- Reduced personal involvement
- Higher risk of failure
| Cons - High learning curve
- Early process surprises
- New ways of working
- Resistance to evolving information
- More regular dependency on client involvement
- Harder to manage third party dependencies
- Harder to manage resource
- Requires much tighter team working
- Requires greater cross functionality within teams
|