This article is intended to give an insight of a method where some waterfall properties and some agile properties are blend to give a flavour of hybrid. It also intended to know which methodology suits where.
Today every organization tries to move to agile or specifically to scrum with actually not doing much homework whether this methodology suits the organization.
Few have misconception that if there is a daily stand up, they are following agile. The only thing which makes everyone to rush for agile is fast delivery. Somehow an impression is being created that Water Fall methodology is bad and agile is good and switching to agile is the panacea to all issues in a project. But most of the organization are not following pure agile, rather a flavour of agile which suits their organization which actually termed as hybrid method.
Before we move deeper into discussion first let’s have an overview of both Waterfall and Agile.
Waterfall (introduced by DR. Royce in 1970) as the name suggests is a typical methodology type where a sequential flow of development is followed. It is typically called waterfall because the output of one phase is the input of next phase. Normally it starts by finding all the requirements upfront. Before the project initiates everyone tries to generally achieve the level of predictability and control over project cost and schedule. Phase gate are created for transition from one phase to another.
Problems in waterfall
- Not all requirements are identified and cleared at the planning time and implementing them later
- No customer feedback till end or at least end of a phase gate.
- Limited scope for Change Requests.
- Do not handle any uncertainty which practically is bound to happen.
- Heavily planned.
- costs a lot if changes appear in the later phases.
To counter the problems in waterfall later 80’s and 90’s the iterative method of software development started to be used where the project is broke up into incremental functionality for delivery. It is a flexible and adaptive approach of project management.
Scrum is good but it only defines till team level. It doesn't talk any layer beyond it. It is ok for the small projects but for a large complex projects, an additional layer of project management is needed.
b.1) Manifesto of Agile
Individual and interaction over processes and tools.
Working application over huge and comprehensive documentation.
Customer collaboration over Contract negotiation.
Problems in agile
- An agile or adaptive cannot be successful without the participation between the client and the project team.
- No high level management to manage the entire project as everyone is confined to team level or sprint level planning.
- Though changes in agile are welcomed even at the last stage yet it the overall time and cost of development and implementation.
- Agile advocates close communication within the team which means collocation is needed and sometimes it is not very successful with virtual teams.
Which methodology suits when?
Actually Agile and Waterfall are not mutually exclusive and can be blend and can be taken as complementary to each other. It is not like that agile is replacing waterfall and will eradicate it in future. It also not the case that agile is good and waterfall is bad.
Both have their advantages and disadvantages which depend on situation to situations. Pure waterfall is actually no more being used anywhere. It is misleading that anything which is not agile is treated as waterfall.
Some criteria for choosing a methodology are:
If the project is heavily adaptive agile is best suited but where requirements are clear and no much customer feedback needed Waterfall suits.
Level of uncertainty.
For a project in which the results are unknown or are uncertain agile can be suitable but where the results are clear and the final product is known waterfall is the method.
Example: building a multi-store building, waterfall is the method to use as the result is clear.
For R&D work, agile methodology suits as exact end point and how much time will it take is not known.
Time to Market
For a product to be available in market rapidly and in chunks, than agile is best suited but only the full and final feature application is to be delivered then Waterfall is the methodology to use.
Legal regulations a and Documentation
If the project inherits some legal regulations to adhere to and so lots of documentation needed in that case preferred methodology is Waterfall. If a little documentation is needed and more focus is on working application Agile works.
How to Blend Waterfall and Agile ?
Neither Agile nor waterfall is discrete methodology to compare. Comparing them is like comparing apples with oranges.
Sometimes blending between plan driven and agile approach give a different level of agility
"Highly adaptive is restricted to team level only. Little or no release for project level planning. Another way can be to let the team and projects be in agility mode but the Business in the Waterfall mode."
More plan driven approach more emphasis on project and release level. By adjusting level on emphasis on each of the level it is very possible to create a different level of agility and adaptively
Working in Hybrid method is not easy and may require more skill but it can be done and can give a better level of project management.