Why Waterfall Model and Iterative Techniques are so risky


Generally the software development methodologies are classified into either a Waterfall method or an Iterative method. First we will look into what Waterfall Method does.

Waterfall Method

This method is also known as Predictive Methodology, because each phase will be predicted completely before proceeding to the next phase. Analysis will be the first step which will analyze the requirement specification. Design phase which is followed by the analysis phase will cover the complete design of the software which is going to be developed. In coding phase, developers will start coding based on the design. Finally testers will be continuing their testing and it will be maintained by the maintenance team. This entire process will be called as one Big Release.

water1.gif

Why Waterfall model is so risky?

  • You might feel that you understand the problem very well, but during development you might feel the problem is not understood well
  • You don't discover the mistakes at an early stage
  • Underestimation of the time required to complete which can lead to late delivery
  • Each team will be kept idle when the other teams are into a particular phase
  • Product won't be shown to the customers unless the testing phase is completed
  • Customers won't be involved in all the phases, that leads to misunderstanding the requirement gathering

Iterative Techniques

Iterative techniques generally repeat the development phase, from requirement gathering to the delivering functionality to produce a working model. It says that we have a running program at each stage. This method is more adaptive than waterfall model, because this method assumes that requirement will be either be inaccurate or will change over time. Processes followed here are all same as the waterfall model. At the end of any stage of the iterative techniques, you can deliver the program to the client. Here the clients will be involved at any stage to clarify the requirements. It provides additional values to the project.

water2.gif


Why Iterative Techniques are also so risky?

  • You might be tempted to code at early stage
  • Unless you are clear about the solution, the program will require much iteration.
  • Small change in code will generate a long list of error with little help in findings
  • You might be run out of time, if the iteration continues for many times

So which methodology solves most of the issues faced in the above two techniques. It will be discussed in my next article.