1-Waterfall Methodology definition,
2-advantages and disadvantages of waterfall methodology,
3-Agile Methodology definition,
4-Advantages and disadvantages of agile methodology,
5-similarities and differences waterfall and agile methodology,
6-when to use waterfall or agile.
1-Waterfall Methodology definition
*Requirement gathering and analysis, you get requirements from the client to develop an application and after you get those requirements you analyze them
*Design software is the second step, in this step you think how the software will look like.
*Implementation, Developers work together to provide the application.
*verification: This application is then tested in the verification phase, for example of testing (integration testing, stress testing, performance testing, after verification it is deployed live on the production server.
Maintenance: in this phase, we control the performance of the application.
2-advantages and disadvantages of waterfall methodology
Advantages: clear goals and directions, Progress can be easily measured, save time and money
disadvantages: Time consuming, customer dissatisfaction, Risk factor.
3-Agile Methodology Definition
- Concept phase: business opportunity is identified and feasibility and viability studies are conducted.
- Inception / warm up: it is a preparation phase for funding, team members, general support, and projects estimates are determined.
- Construction phase: during this stage, the team works closely with management and prepares deliverables, subject to testing and for collecting feedback.
- Transition phase: also known as the end game, the system is ready, final tests are conducted, documentation is written and the final product is deployed. This phase includes reworks in case of defects and training for end-users and team members.
- Production phase: in this phase, all the focus is to keep the system running and to help users adapt to it.
- Retirement: consists of removing the existing system and replacing it with a new system.
Agile system development life cycle (Most common)
An agile system development life cycle is based on the famous Plan Do Check Act method (PDCA). Instead of six phases, the model has 4 phases only, which are as follows, Dolveac et al. (2017):
- The Initiation phase: consists of developing the business model, doing the market research, planning sprints and releases, finding team members and preparing a minimum of documentation.
- The Production Phase: focus on development and task completion through sprints; testing and adjustments together with different stakeholders.
- The Delivery Phase: the final version of the product is delivered to the market, feedbacks are collected and decisions regarding the future of the product are made.
- The future of the product: it could be refactoring, maintenance, or closure. In this phase the future of the product is decided. For Agile development refactoring is the most common phase because it links to continuous improvement. According to the feedback collected from customers, the team decides which improvements will be done to the product. Once this stage is finished the development begins again from the first stage, the initiation phase.
4-Advantages and disadvantages of agile methodology
Advantages: High customer involvement, lesser risk, improved quality.
Disadvantages: Dedicated team, Hard to execute, documentation can be ignored.
5-similarities and differences between waterfall and agile methodology
In this example the product must be ready in 10 months, here the project team will spend 15% on requirement and analysis (1.5 months); 20% of the time will be spent on design (2 months) 40% on coding and testing (4 months) 20% on integration (2 months) at the end 2 weeks user testing of the product.
In this approach, the customer will see the product only at the end of the project and is too late to make any significant change in the project.
In the agile approach, the project will be broken down in 10 releases. the team decides which features can be developed in the first iteration, the other features will be developed in the other iteration. at the end of each iteration, the customer will be delivered an application with more features.
6-when to use waterfall or agile
Waterfall does not accept changes, Agile accepts changes.
Waterfall supports customer interaction only at the end phases, agile support customer feedback during development.
Agile supports synchronized teamwork at all stages, in waterfall there is no continuous collaboration requirement, there is an emphasis on independent performance.
When to use waterfall: fixed project contract, the project is very simple, requirements are static, customers know exactly what they want.
When to use agile: there is no clear definition of the final product, stakeholders may change the scope of the project, rapid deployment is the goal.