Agile vs Waterfall

November 15, 2020

There are several approaches and methods to managing a software development project, but the most popular ones are Agile, Kanban, Scrum and Waterfall. The approach and the method are chosen based on the answers to the following questions, for example: What is the task type? What is the project’s size? What timescale is needed? And, what is the budget? The correct approach and method will also yield the best results for a project and the whole development process. 

We will now take you through the approaches and methods in more detail. 

Agile

The Agile approach is a very iterative approach to project management. This means that you can adjust and amend your project as you go along, which helps to increase the value of the project you are working on. 

Principles of the Agile approach:

  • People and their interactions are more important than processes and tools
  • It is better to create a working product, rather than creating documents
  • Collaboration with the client is vital 
  • Reaction to changes is more important than following the basic plan
  • Prioritize tasks

The biggest advantages of the Agile approach are that it’s empowering to individuals, it’s collaborative, you’re always improving your work, you get to hear about new ideas from the team, and you get great regular feedback. 

Additionally, according to Agile, a client would be able to launch the first version of an application within a short period of time (one week to one month), while the developers continue to work on the application. Parts of the application may be modified in order to match the market and to make the project more successful in time. So, you wouldn’t necessarily have to wait until the whole software development process is complete to release a product. 

On the other hand, Agile doesn’t really suit a project if you have a generic project that isn’t too time demanding, you’re not in a collaborative team, if you have to have management approval at every stage in the development cycle, and your team doesn’t want to use the approach anyway.  

Within the Agile approach there are software development methods, we will now look at the most popular ones.

Agile methods:

Scrum

Team size: Up to, or less than, 10 individuals

During a Scrum the main project is split up into much smaller chunks, also known as goals, that must be completed in a particular time span. These time spans are known as sprints which are usually no more than one month long, and are typically 2 weeks long. 

Each day the whole team completes a 15-minute progress check, also known as a daily scrum, where they discuss how the smaller goals are going. 

At the end of the sprint there is a sprint review. During the sprint review the team checks the work they have done, and they do a retrospective review to see where they can improve on their work next time. 

The whole project is usually led by two people: Product Owner and Scrum Master (team lead).

Kanban

Team size: Up to 3 individuals 

The Kanban method is when the developer uses a task board, which has ‘To do’ and ‘Done’ sections on it, to help visualise the development process for the team. 

Tasks are placed in a particular section to start off with and are moved to a new section when they are completed. 

This type of method is useful because the team can see exactly what is happening at any one time, and you can see what may need more work. 

Scrumban

Scrumban is a mixture of two methods: Scrum and Kanban.

Scrumban is used when the product owner is not active or there is no Scrum Master. In this method the work starts with a task board. The key difference between the traditional Kanban board and Scrumban task board is the number of sections the Scrumban board has, the task board has the following sections: ‘To do’, ‘Doing’, and ‘Done’. 

Task planning takes place when it is needed, and especially when there are only a few tasks left in the ‘To do’ section. There are no fixed roles in this approach, nor is there a person setting all the tasks. 

The moment a developer finishes their work, they are free to choose the next task to work on. So, in this case all the team members work equally. Plus, each team member can work on one task at a time.

Final thoughts

The methods mentioned above are flexible methods, which are universal and can be applied to any project. These methods do depend on the client’s time and budget, so this should be considered before work starts. Additionally, feedback between the team and the client is always very important, as this helps to create a product that works just as the client wants it to.

You’ve now got a better idea about the Agile approach and the most popular methods used in this approach. Let us now look at the Waterfall approach, which is somewhat different to the Agile approach. 

Waterfall

During the Waterfall approach, software development gets broken down into different stages. These stages are set out in a linear manner, so you go through each stage one at a time. This sequential process means that you cannot move onto another stage without successfully completing the stage before.

Typical stages you’ll hear about are: 

  • Analysis of system requirements
  • Planning of project stages (done once and can’t be modified)
  • Engineering (inner layout, design, structure, etc)
  • Product development (layout and design)
  • Integration (data management and source code creation)
  • Testing (system error correction, bugs are fixed)
  • Product release (the end of product development, adaptation may be done if needed)
  • Technical support (maintenance and support in case of system errors)

Now you’ve got a better idea about the Waterfall approach and its stages, let’s check out some pros and cons of the Waterfall approach.

Pros Cons
There is a set budget and there are set deadlines Project requirements are set at the start of the project and remain unchangeable
Clear workflow and well-defined work stages Pricey and can be a time consuming process
Detailed project plan and well-structured documentation Lack of flexibility, which means there is no opportunity to make changes after the project has started
Easy to track working time and budget - due to the constant reports The client will see the project on its release, and all the extra changes will require extra time and finance
Tasks remain unchangeable until the end of the project No collaboration between the development stages
Product quality is more important than the time and money spent on it Product is tested after it’s released

When are the Agile and Waterfall approaches applied?

Agile Waterfall
When the list of product requirements is not defined and you need to make rapid changes Project requirements are well-considered and remain unchangeable - There is a clear idea
When you’ve got an experienced team Technologies and tools are known beforehand
When the client actively participates in the application’s development Client doesn’t want to take part in the development process - They only see the final product
When it is important for the client to have an opportunity to make changes in the project The client wants to know the deadlines and final product price
When you need to be adaptable The designed product is complicated and costly
The product’s field of expertise is changeable The product is similar to one that has been done by the team already

Conclusion

We hope that you now have a clearer idea of the approaches and methods used in the software development process, and when to use them for the best! 

It may be a lot to take in but once you’ve tried them out you won’t be able to live without them anymore! They totally simplify the workflow, and help you to track the changes and the progress of a project.

If you would like to read more about the development process visit our website!


Apply for the Manual QA