By Plamena, Project Manager at Flat Rock
One of the first decisions each project faces is “Which development methodology to use?”
The two most popular basic methodologies are Waterfall and Agile. Feelings run strong on the subject as each model has its strengths and shortcomings. We will let you decide which one you prefer after arming you with information about both methodologies.
The Waterfall model can be described as a linear and sequential approach to software development. This means that the project is divided into stages and as each stage is completed, the team moves on to the next.
Advantages of the Waterfall Methodology
→ It is agreed on what will be delivered early in the project. This way the customer knows what to expect. Planning is easy and straightforward.
→ Client involvement is not required after the specification stage.
→ The progress is more easily measured because the scope of the project is known.
→ Members are included in the project depending on the current stage. This allows them to plan their work on other projects.
→ There is a clarity and understanding of the overall picture of the project.
Disadvantages of the Waterfall Methodology
→ Once a step has been completed, the team can’t easily go back to a previous stage and make changes.
→ The methodology relies heavily on initial requirements. If there is a requirement error, a change is hard to implement.
→ The whole product is tested at the end. If bugs are written early, but not discovered, their existence may affect how other code is written.
→ The customer is not able to see the product until the end of the project.
This methodology is implemented best when the requirements are clear and the client doesn`t want or doesn`t have the ability to be involved throughout the entire project.
Instead of a sequential design process, the Agile methodology follows an incremental approach.
The team works on small modules. The work on these modules is done in sprints and at the end of each sprint tests are run.
Advantages of the Agile Methodology
→ Easily adjustable, this methodology allows changes to be made after the initial planning. It`s easier to add features and change requirements.
→ At the end of each sprint the priorities are evaluated.
→ The testing at the end of each sprint ensures that the bugs are caught and fixed early in the development cycle.
→ The client is involved through the entire project and can monitor the development.
Disadvantages of the Agile Methodology
→ Progress is hard to measure as the scope of the project is not clear.
→ There is a lack of clarity and understanding of the overall picture of the project. → This leads to the “piecemeal effect,” a development phenomenon that can occur as pieces of code are written and added to an application where they may or may not fit well.
→ The degree of customer involvement may be a problem for some customers.
Agile works best when members of the development team are completely dedicated to the project. It is appropriate when the requirements are not clear from the beginning or rapid development is required.
When it comes down to it, neither one of the methodologies is inherently better than the other. You will have to decide which is best for you and your project.
To find out more, contact us and we will choose the best mix of practices for your software project.