Waterfall and Agile Methodologies
Essay by shamanthumesh • February 8, 2016 • Essay • 2,420 Words (10 Pages) • 1,501 Views
Waterfall and Agile Methodologies
Project is a set of activity executed to obtain unique product. Project Management is careful planning, controlling and organizing with application of skills, knowledge and techniques to meet specific project requirements. Every project management technique involves five fundamental steps, viz., initiating, planning, executing, monitoring and controlling and closing. Among the various project management techniques, the sequence of execution of these five steps can vary across the models or there can be additional steps added to these basic steps.
Among the various existing project management techniques, waterfall methodology and agile methodology are the two universal methodologies followed across various organizations. Waterfall model is one of the oldest methodology existing and is a linear model. Agile is an emerging methodology and it is an iterative model. Both waterfall and agile methodologies are widely used across the organizations.
Waterfall model involves completion of each step before executing the next step, there is no room for change. Testing is done after the design and development of the product. The feedback of the product is obtained only at the end.
Agile is an iterative approach where there can be repetition in steps executed based on the requirement. In agile model, there can be changes or new requirements introduced at any point of time. For example, during the process of development, if there are any new change requests, a waterfall model would not accommodate the changes unless the whole process is restarted from the scratch. In agile model such changes are encouraged and the changes can be easily accommodated. Testing is not done in fixed stages but is done and is started from day one. The feedback is obtained in each stage and hence it reduces risk.
Both waterfall and agile models have the respective pros and cons. Waterfall model can be used in the situations where the client is certain about the end product and agile model can be used when the end goals are not clearly defined. Agile model can be used when the client’s needs are hazy and the goals are clearly clarified as the project progresses.
In agile methodology, the testing is involved in each sprint and hence bugs are caught in the initial development stages itself. Since the product is tested at each cycle, the product can be released at any phase in the project. In waterfall model, since the system testing and integration testing is done only in the end, there can be defects found at the cycle which might be incorrigible and might require restarting the whole process. The product cannot be released until the final testing is done.
In agile methodology, in the initial iteration, different developers work on different modules and integrate it to obtain a basic working model. Based on the outcome of the first iteration, the client comes up with new requirements to be seen in the next iteration. In waterfall model all the developments are confined to each of the steps and the modules are integrated at the end of the development of the modules. There is no scope for change or new requirements during the progress of the project.
In the waterfall model, the project planning is a crucial step and hence the budget and timelines can be accurately estimated during the start of the project. The testers can prepare scripts at the initial stages of the project. In agile model, the timelines are not determined and hence the chances of on-time delivery and delivery within the budget are slight. The testers are not sure of the outcome of the project and hence cannot write the scripts at the initial stages of the project.
Waterfall model is more secure because they are plan oriented. For e.g. if the designer or a an architect of the project declines to work for the project and drops out, then a new person can easily replace the position of the designer or architect, since waterfall is plan oriented and plan is documented initially. In agile model, since there is no confirmed initial plan, there is a lot of dependency on the designer and hence a certain amount of risk is involved with respect to people dropping out of the project.
In waterfall model the potential risk involved is known in the initial planning and design stages and hence any alternate solution can be selected before the coding begins. In agile methodology coding is started in the initial stages and hence if it is decided to inculcate new solution then there is a certain amount of rework and extra effort put to incorporate these changes.
In waterfall model there is a great emphasis on documentation at each stage and hence many organizations find it reliable and reassuring. Agile model is not well documented since there are new requirement and changes at every stage and hence some organizations do not find this technique reliable.
Waterfall model is suitable for the projects when it satisfies one or more conditions such as, complete requirement of the project is known in advance, customers are not willing to be involved in the collaboration and discussion about the project during all the stages of the process, technology is understood well in advance, there are ample resources with required skills available, the project duration and effort is small, there are stiff rules on ensuring complete set of requirements before going to next phase.
Waterfall model was initially used in construction sites and hardware industries where the initial design and layout of the structures are planned and the development begins only after complete design is made. Waterfall model can be used in development of a website using existing technologies. Waterfall model is also used in software industries since it is easy to understand and the end-goal is set well in advance. The customers can follow up the progress easily.
For example, Consider a company ABC working on the product XYZ involving waterfall model. The product has to be delivered in 10 months. The team would first work on gathering requirements and analyzing it for about 1.5 months. Then another 2 months will be spent on designing the product. Next 4 months will be spent in development and unit testing. Next 2 months will be spent on integration and system testing. Remaining two weeks will be spent on User Acceptance Testing (UAT). The customer will not get to see the product until the end of the project cycle.
Agile model is suitable for the projects which satisfies one or more conditions like rapid development is prioritized over the quality of the product, there is active involvement of the client in the project, the client might get involved in communicating the new changes to be incorporated in the project, there is no clear vision or goal of the project, there are ample resources with skilled developers
...
...