There are several Software Development Life Cycle (SDLC) methodologies used by IT companies nowadays. The important ones being the Waterfall Methodology, Iterative – Rational Unified Process (RUP) Methodology, Spiral Methodology and Agile-Scrum Methodology.
For our discussion, we would be considering the two more popular methodologies used in the IT Industry – Waterfall and Agile Methodology. Both the methodologies have equal number of followers and haters. There are many business analysts and project managers who swear by the old and tested Waterfall Method while some have fallen in love with the new and exciting Agile Methodology.
Let us first take the case of the Waterfall Methodology. When we come across the word “Waterfall”, we tend to think about the “Waterfalls” available in nature. Those who do not know, a “Waterfall” is created when a river or stream falls over a hill or depression. In a waterfall, the flow of water is always downwards and there is no provision for the water to move upwards. Similarly, in software development life cycle, the flow of actions is unidirectional in the Waterfall method. There are seven stages – Requirements gathering, Requirements Analysis, Design, Development, Testing, Deployment and Implementation. In this model, each phase must be completed entirely before the next phase can start. Also verification is done after every phase, failing which the next phase cannot begin. Frequent changes are not allowed and one cannot go back to earlier phases. This methodology is mostly used in small scale and critical projects, where the client is clear with the requirements. It tends to be more accurate while being very time consuming.
The Agile methodology, on the other hand, is a new and faster SDLC method which has grown in popularity in a very short time. Like the word “Agile” which means “able to move quickly and easily”, the “Agile methodology” is a very lightweight model which allows quicker project delivery. It overcomes many of the disadvantages of the Waterfall model like one can easily move up and down the various phases according to the client’s requirements. One can deliver working software, frequently and taking as less time as possible. There is continuous process improvement and there is always an eagerness to find newer and less time consuming ways to provide an IT solution to the client’s problem.