Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are alternatives to the Waterfall model

Can you please give a methodology that stands to alleviate the disadvantages of waterfall model?

like image 926
nelli Avatar asked May 15 '10 07:05

nelli


People also ask

What is a better alternative to the waterfall software development methodology?

The Complexity of the Project A complex task requires more planning and organization and is, therefore, better suited for the Waterfall methodology. On the other hand, an Agile project can be more flexible and adapt to changes more quickly, making it better suited for less complex ones.

Which model is better than waterfall model?

Agile model is flexible as there is a possibility of changing the requirements even after starting the development process. On the other hand, the waterfall model is rigid as it does not allow to modify the requirements once the development process starts. 4. In Agile model, there is a high customer interaction.

What is the opposite of a waterfall model?

Agile methodology is a practice that helps continuous iteration of development and testing in the software development process. In this model, development and testing activities are concurrent, unlike the Waterfall model. This process allows more communication between customers, developers, managers, and testers.

Which is better the waterfall model or scrum?

If you simply want to produce work faster, try Scrum. If you want to improve your production process, use Kanban. If your projects demand a linear workflow, implement Waterfall.


1 Answers

The problem with Waterfall is that it consists of monolithic stages, each building on the previous stage. So the code is developed in one chunk after the entire system has been designed, which in turn happened after all the requirements have been gathered and signed off.

This is problem because any change has to be ratified by a complex procedure and rippled through all the stages. But the lesson of history is: change happens. The requirements are always incomplete, or mis-specified or simply out-of-date by the time we get to coding. Too often design and build proceed on the basis of assumptions which are nullified when the system gets to UAT. This leads to frantic re-work and slippages.

The truth is not many customers are good at the sort of abstract thinking required to envisage a working software software system. And too many IT professionals lack the experience necessary to understand business logic. Waterfall refuses to accept these truth.

The only honest requirement specification is "I'll know it when I see it". So it is crucial to get working software in front of real users as soon as possible. Any methodology which focuses on delivering working software incrementally in short iterations will "alleviate the disadvantages of waterfall model".

Originally that was RAD or DSDM. Then XP tok up the banner. Now there is Agile and related things like Scrum and Kanban.

So why do people persist with the Waterfall method?

There is a common perception that Agile is just a cover for cowboy hackers to ditch all the boring process stuff and get on with what they enjoy most: writing code. The branding of "Extreme Programming" certainly encourage this thought, and, let's be honest, it is not an unfounded allegation. That is, some coders pretend to be agile as an excuse not to plan, design or document. This does not reflect the actual practice of Agile, which require just as much rigour as any other methodolgy.

Also Agile requires a much greater commitment of time from the customer's staff, which many organizations are loath to accept. Also the people footing the bill may be unwilling to empower their junior staff to make decisions. There is an important distinction between Customer and User.

When it comes to outsourcing the waterfall model provides an easy framework for matching deliverables to staged payments. Indeed the contractual aspect maybe stronger than that: in the EU Waterfall is mandated for all projects valued at EUR 100m or more.

Finally, there are projects where Waterfall works well. These projects have knowledge domains which are stable and well-understood by both the customers and the developers.

last word

Despite its failings Waterfall has delivered many projects successfully. This is because hard work, aptitude and integrity are more important than methodology.

like image 65
APC Avatar answered Oct 11 '22 05:10

APC