Scrum vs. Kanban vs. Agile vs. Waterfall Methodology

Stephen Soldberg
Softwarium
Published in
5 min readOct 28, 2019

Whenever a customer approaches you with a new product, “Agile vs. waterfall methodology” issue is one of the main decisions you will have to make to develop it. In this article we will look at the pros and cons of each method and go into Kanban and Scrum as well. First, let’s start with Waterfall methodology pros and cons.

When Should You Use Waterfall?

Waterfall is a linear approach to software development where all of the details of development are agreed to form the very beginning. In other words, you sit down with your customer and list all of the features and requirements for the product. It is very important that you get as many details as possible at this stage because it will not be possible to revise them once development has begun. This is because each stage of the development process is distinct and must be completed before the next one can begin. So for example, you will need to fully gather all of the requirements before designing can begin and you would need to finish the design stage before coding can begin and so on. However, you should always keep in mind that once a stage has been completed, you cannot go back. If there is a need to revise an earlier stage, you will need to go back to the very beginning.

We can see the inherent flaws with this method. Gathering all of the requirements from the customer is one of the most difficult aspects of the development process. The reason is because the customer may not know all of the details upfront or may be intimidated by the details thus not allowing you to get a clear picture. What compounds this problem is that the deliverables depend on the documentation. Therefore, the customer might not be satisfied with the end-product even though you did exactly what the requirements state. Changes at the final stage will be very difficult and costly to implement.

If you are looking for some positives for “Agile vs. Waterfall methodology” disputes, we can say that the rigidity provides some structure to the overall project. The scope is more easily measured and you will be able to provide the customer with a clear timeline. Also, the customer does not need to be closely involved in the project, so if this is one of their wishes, then the Waterfall model would work. Waterfall is generally a good fit for small projects because it will be easier to gain all of the requirements and functionality up front. If you are creating a project from scratch, it would be a much better idea to use the Agile methodology. Let’s take a look.

When Should You Use Agile?

Agile is considered to be the more modern approach to software development than its predecessor, Waterfall. Agile vs. Waterfall methodology has a more iterative approach to development where all of the tasks are broken down into timed segments called sprints. Each sprint will be measured in weeks and will focus on the development of a specific feature. This is very beneficial because the customer is able to see what was produced in each sprint and provide feedback on whether any changes are needed. Also, since the customer is much more involved in the project, they will get a certain sense of ownership for it as well.

If you are creating a product from scratch, Agile is definitely the best way to go because since the customer is heavily involved, you can create a working model of the product and get it released much faster. However, it is important that the customer realizes their vital role in the overall success of the project. If they do not want to get too much involved Agile might not be a good idea. Also, Agile works best if the development team is all located in one location. Nowadays, it is popular to have a teams spread out in all parts of the world.

When Should You Use Scrum?

It would not be correct to compare Scrum with the other methodologies because Scrum is not a full-fledged methodology. It is a framework for implementing Scrum methodologies where all of the team interactions and activities are clearly specified. Furthermore, it can be adopted to other areas of business besides IT. The biggest benefit that Scrum brings is transparency. All team members are aware of the current state of the product and are better prepared to address some of the unplanned obstacles that are sure to come up during the development process. Furthermore, it allows you and your team to better adapt to changing conditions and requirements since things are bound to go over budget, estimates done in the beginning were not correct and many other problems.

Another way of implementing Agile is with the Kanban methodology.

When Should You Use Kanban?

Kanban was created in the 1940’s by Taiichi Ohno when he was working for Toyota. He needed a way to organize all of the work being done at every stage of the process. He came up with a genius system that ended up changing the IT landscape. On the surface, the system is fairly simple. Everything is divided into three categories: to-do, ongoing and done. The genius of the system comes in when you need to start making changes. So for example, if you need to change a process, you will be able to do so gradually without disrupting the entire system. It limits the amount of work in the “In progress” file thus avoiding a bottleneck.

How to Choose What is Right for You?

While we have given you an overall understanding of each methodology and framework, the ultimate choice will depend on your individual requirements. It is very important to choose the right approach from the very beginning because it will be impossible to change once you have started. Do not resort to a platitudinous “Agile vs. Waterfall methodology” dispute Take the time to study each method in-depth and have a sit-down meeting with your customer to come to an agreement about what you feel best.

Read more on our blog.

--

--

Stephen Soldberg
Softwarium
0 Followers
Editor for

Business development manager in Softwarium