Best Practices

Agile vs Waterfall vs Scrum vs Kanban: What's the Difference?

Jonathan Friedman
August 7, 2021
Agile vs Waterfall vs Scrum vs Kanban: What's the Difference?

Are you looking to understand the difference between Agile vs Waterfall vs Scrum vs Kanban? Or, do you know the difference, but you're shaky on which methodology to use for your next project? Then you've come to the right place.

Projects include hundreds of small decisions that come together to achieve their common purpose. The first and arguably the most important of these decisions is which of the project management methodologies you're going to follow. Some have rigid and structured frameworks, while others aim to remain organic and flexible throughout the project.


Let's compare the four most common methodologies: Agile vs Waterfall vs Scrum vs Kanban. Then, let's break down the advantages, disadvantages, and uses of each methodology, so you know which one will best suit you and your current project.

Below is everything we will cover. Feel free to skip ahead.


Agile methodology


Agile methodology

Agile methodology is based on the concepts contained in the Agile Manifesto. Software developers created the Agile Manifesto in February 2001 while discussing development methods.


They created the Agile Manifesto to explain how to develop software with agility by using four values and the following 12 principles:


  1. The first priority is to satisfy the customer with early, continuous delivery of software.
  2. Welcome and embrace changes in requirements, even deep into development stages. Change adds to the customer's competitive advantage.
  3. Frequently deliver software and prioritize a shorter timeline.
  4. For the duration of the project, developers and business people work together daily.
  5. Motivated individuals are the center of projects, providing them with the environment and support to get the work done.
  6. A face-to-face conversation is the most efficient and effective way to convey information within a development team.
  7. Functioning software is the most crucial mark of progress.
  8. Any implemented processes must be sustainable long-term. Sponsors, developers, and users must be able to keep up the pace indefinitely.
  9. Create design agility through continuous technical excellence and sound design.
  10. Simplicity is essential. Minimize the amount of work that needs to be done.
  11. Self-organizing teams generate the best architectures, requirements, and designs.
  12. The team must regularly reflect on how to become more effective and adjust its behavior in order to do so.


The agile methodology uses an incremental and iterative process. Agile software development leans away from in-depth planning at the beginning of a project and instead prioritizes retaining flexibility at each stage. 


Advantages of the Agile methodology


When deciding if the Agile methodology is going to work for you, you need to isolate what you want the process to look like and then compare it to Agile's advantages and disadvantages.

Here are the advantages of Agile software development:


Change is easily adopted


Because Agile methods contain shorter planning cycles, last-minute changes or updates don't throw a spanner into the works. Instead, teams can accommodate changes within a matter of weeks by reorganizing the backlog and constantly evolving the list of priorities.


Don't need a known end goal


Agile works well for projects that don't have a clearly defined final goal at the beginning of the project. Instead, the end goal materializes as work on the project progresses and develops to accommodate changing needs.


Fast and high-quality delivery


Because Agile breaks every project down into small iterations, the team can provide high-quality development, thorough testing, and further collaboration. Regular testing means you can catch bugs early on so that they aren't left to grow into more significant problems.


By splitting the big picture into manageable units, teams can deliver high-quality software quickly while also providing consistent updates.


Strong team interaction


The agile methodology relies on regular communication and face-to-face meetings. They encourage team members to work together and contribute to the project's areas that best match their abilities and skills.


Loud customer voice


The Agile methodology creates space for customers to see the work as it progresses, provide running feedback, share input, and ultimately have their voices heard and reflected in the end product.

Feeling close to the production team gives customers a sense of ownership and loyalty to the end product.


Continuous improvements


Team members, users, and customers are able to provide continuous feedback and input, which leads to constant improvements for the duration of the project. In addition, your company can use issues that crop up to improve future iterations.


Disadvantages of the Agile Methodology


The flexibility of Agile can be challenging to plan around to maintain structure. For example, teams may find it difficult to set a delivery date, proper documentation is difficult, and the final product might be completely different from the original plan.

Here are the disadvantages of using Agile methodology:


Planning is too fluid


The flexibility of Agile can mean that solid planning is impossible. Because last-minute changes are readily implemented and tasks are constantly reprioritized, products scheduled for completion at a specific date can fall far behind schedule and won't be finished in time.


Team members need to be highly knowledgeable


Agile teams are typically on the smaller side, which helps keep communication clear and straightforward. But, this means that each team member needs to be highly skilled in several areas. They also all need to understand and be willing to work within the Agile methodology.


Large time commitment


Agile projects are most successful when the team is fully dedicated to progress. Therefore, each member must be actively involved and make time for frequent collaboration, which adds to the project's overall timeline.


Developers also need to fully commit to the project because of the nature of the Agile approach. For example, if one team member leaves halfway through, it can be difficult to replace them because they won't already know the updates and changes the team has implemented so far. In addition, explaining each step can be time-consuming and confusing.


Easy to neglect documentation


The Agile Manifesto uses working software as the measure of a project's progress, so comprehensive documentation is often pushed aside! Team members may feel that documentation is less important to focus on.


Although documentation alone does not guarantee a successful project, Agile teams need to find a balance between documentation, discussion, and development. Taking better meeting notes is an excellent place to start overcoming this challenge.


Final product can be unpredictable


The flexible nature of Agile projects means that the end product can end up significantly different from the intended result. Unfortunately, it's difficult to predict a final product because you don't know what updates and changes you'll implement when following customer feedback or unforeseen issues.


Phases of the Agile development cycle


While they are extremely flexible, Agile projects still follow a pattern.

Every project starts with an idea which the team will talk through. Once you've decided the idea is viable and feasible, the development cycle begins.


1. Planning


This is where you flesh out the idea. First, the team discusses and lays out the features of the idea. The goal during the planning phase is to break the idea into smaller, more manageable units (features) before prioritizing them and assigning each feature to its own iteration.


2. Analysis of requirements


During this phase, managers, stakeholders, and users meet to discuss and define business requirements. This includes who will use the product, how they will use the product, and what the product needs to do.


Defining the requirements means they need to be relevant, quantifiable, and detailed.


3. Design


During the design phase, the team prepares the system and software design using the laid out requirements. Then, they start imagining the final product and envisioning what it's going to look like.


The test team creates a test strategy or a plan for how the production team will move forward.


4. Implementation, coding, and development


This phase follows the iterative and incremental development approach (IID) and involves creating and testing features and scheduling the deployment of iterations.


The development phase begins at iteration 0 since you haven't delivered any features yet. This forms the foundation for the rest of the project, including finalizing contracts, preparing environments, and planning and generating funding.


5. Testing


When the team has developed a code, it is thoroughly tested against the requirement marked out at the beginning of the project. This ensures the product is solving the intended problems, meeting customer needs, and matching user stories.


Testing includes acceptance testing, integration testing, system testing, and unit testing.


6. Deployment


Finally, you can deploy the product to customers. But this isn't the end of production! Once customers begin using and testing the product, they might run into issues or problems with the product.


They can notify the production team to address and fix the problem for current and future customers.


Waterfall methodology

Waterfall methodology


The Waterfall model is a rigid, linear project management technique that is often used for construction, IT, and software development. It is called the Waterfall model because each phase flows into the next, like a waterfall.


Instead of accepting changing requirements throughout the process like in Agile, Waterfall requires all stakeholders and customer needs to be gathered at the beginning of the project. Then, after laying out the requirements, the team develops a sequential project plan to meet these needs.


 Waterfall projects are sometimes planned using a Gantt chart – a type of bar chart that outlines the timeline of each task and maps subtasks, dependencies, and the phases of the project.


Stages in the Waterfall process


The stages in a Waterfall project follow in strict, linear order. The development team only moves onto the next stage when the current phase is complete and when customers have reviewed and approved the stage's requirements.


You also can't return to a previous phase without starting the entire process from the beginning! 


1. Conception


The concept phase is the birth of the project. Starting with an idea, you roughly outline the project, determine why it's necessary, and estimate any costs.


2. Initiation


When the idea is better defined, you hire the production team. Working with the team, you will define objectives and goals, the scope of the project, as well as deliverables.


3. Gathering requirements


The thing that sets Waterfall apart from other professional project management techniques is that you gather all requirements at the beginning of the project. Then, once collected, they're analyzed to see if they are feasible.


4. Design


The design phase is best explained by breaking it up into two subphases: logical design and physical design. The logical design involved studying the requirements and brainstorming possible solutions.


During physical design, the team outlines concrete design specifications they need to meet to achieve their goals.


5. Implementation and coding


The coding begins! The team translates flowcharts and algorithms made during the design phase into a programming language.


The project manager assigns tasks to the team and monitors and tracks their progress. Any issues or problems that cause significant delays are resolved by reallocating resources and reassigning tasks to spread the workload evenly.


Stakeholders need regular updates on the team's progress.


6. Testing and verification


When the coding is finished, the team must test the software to find errors or problems. Once the testing is complete, the team delivers the software to customers.


Some teams make use of user acceptance testing (UAT) before deploying the software to the general public. The customers review the product to ensure it meets the requirements laid out in the beginning.


7. Maintenance


Once you've released the product to the general public, customers will discover bugs, insufficient features, and other problems that weren't caught during production. The production team resolves, changes, and modifies the software as needed until customers are satisfied.


Advantages of Waterfall methodology


Waterfall is an excellent option if you have a simple project that isn't likely to change throughout the production process. In addition, its structured and linear nature makes it straightforward to use and easy to document.


Easy to use and manage


Because Waterfall methodology follows specific steps for every project, it is easy to follow and understand. As a result, the team can get moving quickly and efficiently because they don't require any prior training or knowledge.


The rigidity of the Waterfall model also provides specific and measurable deliverables, project management goals, and requirements for the team to work towards. As a result, management is easy and straightforward.


Enforces discipline


Every phase in a Waterfall project has a set start and end date. It's also easy to mark progress and share it with stakeholders and customers.


This enforces discipline within the team and helps them to reduce the number of missed deadlines. As a result, they can focus on the requirements and design before they start coding.


Requires thorough documentation


Waterfall projects can only work when they have thorough and well-planned documentation. Therefore, each phase requires deep documentation, making it easier to understand the logic behind the code necessary.


Documentation also leaves a paper trail for similar projects in the future or for stakeholders to examine when looking for details about a specific phase.


Disadvantages of Waterfall methodology


Although Waterfall methodology is logical and straightforward at its core, it struggles to handle change. Here are the main disadvantages when working within the Waterfall framework:


Difficult to accommodate change


The linear nature of this technique means that you can't quickly work last-minute changes into existing code – the team has to start from scratch.


Once a phase is completed, the team can't go back to a later stage to accommodate any changes. If they only pick up on an issue during the testing phase, it's difficult, expensive, and time-consuming to go back and solve it.


Software delivered later


There are often two to four phases before coding begins. Unfortunately, this means that stakeholders won't have proof of progress (working software) until late in the project's life cycle.


Difficult to gather requirements


All requirements need to be gathered at the beginning of the project. However, collecting this information can be expensive and time-consuming, and progress can't begin until every requirement is thoroughly documented.


It's also extremely difficult to know what customers want in the early stages of the project, as they often only realize their needs later on in the project.


Scrum methodology

Scrum methodology


Scrum is one of the most used frameworks for implementing Agile methodology since it is a subset of Agile. This software development model is also an iterative process that manages complex software and product development.


The Scrum process contains several fixed-length iterations known as sprints, which last between one and two weeks. This regular schedule allows the team to frequently and predictably ship software to their stakeholders.


Scrum methodology works by prioritizing meetings with and communication between stakeholders and team members. It's made up of set roles, responsibilities, and meetings that don't change.


During each sprint, the team makes use of visual artifacts such as burndown charts or a scrum board to illustrate progress and make it easy to provide incremental feedback.


Different roles in Scrum methodology


Something that sets Scrum Methodology apart from other project management techniques is the fact that there is no project manager. As a result, no team member has authority over the other members and can't tell them what to do.


This might feel backward at first, so let's break it down. Each team member in a scrum project falls into one of three following roles:


1. Product Owner


The Product Owner is the person with the vision. They have a product they want to produce and convey this plan to the rest of the team.


Product Owners perform the following tasks:



Overall, the Product Owner's job is to motivate the team with their vision. They do not manage project progress but rather ensure the team knows what they're working towards.


2. Scrum Master


The Scrum Master is sometimes called the "coach" of the team. They have the following responsibilities:



An important thing to keep in mind is that the Scrum Master is not a project manager. Therefore, they do not have authority over the other team members and cannot tell them what to do. Instead, they are in charge of the process. This means the Scrum Master can't tell Alice and Bob to only code on Mondays, but they can propose a change in the order of upcoming sprints.


3. Scrum Team


A Scrum Team usually consists of five to seven members. These are the worker ants of the project – each member works together and helps the other members. The ideal Scrum Team has a deep sense of camaraderie. 


Members of the Scrum Team do not have separate and defined roles. Instead, everyone works together on each part of the project. They are in charge of the plan for each sprint, and they must work out how much work they can get done during each iteration.


Tools and artifacts in the Scrum process


The flexible Scrum process only runs smoothly because of the useful and practiced tools that the team makes use of. Without these things, it'd be impossible to visualize or track project progress!

 

Scrum board


A Scrum board helps you visualize your sprint backlog. Different teams have different preferences for how the board is set up, but they typically use index cards, sticky notes, or a whiteboard.


A Scrum board has three stages: work to do, work in progress, and work complete.


Throughout the sprint, the Scrum Team updates the board to track and easily document their progress. 


User stories


User stories are software features but viewed from the customer's perspective. They are short stories that follow this general structure:

As a [type of user], I want to [perform a task] so that I can [achieve my goal].


Developers use these stories to make sure their code meets the various requirements of different users.


User stories that you record but don't implement during development are stored in the icebox.


Burndown chart


Your burndown chart tracks all uncompleted and existing work. They visually alert the team if they fall behind schedule and help illustrate the impact of changes they implement.


They are usually constructed with the backlog along the y-axis and time along the x-axis. Story points can describe the remaining work, ideal days, team days, or other relevant metrics.


Timebox


A timebox is a set time period during which the team works towards completing a goal. For example, when timeboxing an iteration, the team will work until completion or until the time runs out – whichever comes first.


This helps keep the project from running overtime and alerts the Scrum Master if the iterations have too many requirements to fill in the allocated time.


Steps in Scrum process


Although the Scrum process is flexible and organic like traditional Agile methodology, it has a slightly more structured process layout. A typical Scrum process proceeds as follows:


1. Product backlog


The Product Owner and Scrum Team work together to add items to the product backlog.


The product backlog is a list of the desired features of the end product, and it's built by combining user stories and product requirements. The development team uses the product backlog to decide what work to complete during each sprint.


2. Sprint planning


Before every sprint, the Product Owner lets the team know which items on the product backlog they need to prioritize. 


Then, the team chooses what work they will do during the sprint and adds this to the sprint backlog (the list of work to be done during the sprint).


3. Refine backlog


When the sprint is over, the Product Owner and Scrum Team meet and arrange the backlog for the next sprint.


The team removes irrelevant user stories, creates replacement stories or new stories, rearranges the priority of stories, or splits user stories into smaller tasks so they're more manageable.

This meeting ensures the backlog only contains relevant and detailed information, which helps the team meet the project objectives. 


4. Daily Scrum meetings


Scrum methodology requires regular meetings. The Daily Scrum is a 15-minute meeting during which every team member gets a chance to talk about goals or issues they've faced during production. It helps keep the team on the same page.


5. Sprint review meetings


Sprint Review meetings happen after every sprint and let the team present the work they've done during the sprint. This meeting is not the place for presentations or reports but rather live demonstrations of progress.


6. Sprint retrospective meetings


Sprint Retrospective meetings also happen at the end of every sprint, and they give the team members a chance to reflect on how the Scrum methodology is working for them. They talk about potential changes for the next sprint, what did or didn't work during the previous sprint, and what they can approach differently next time.


Large-Scale Scrum (LeSS)


If you want to implement the Scrum methodology with a team with hundreds of members, you can use the Large-Scale Scrum (LeSS) framework to help scale the steps and processes involved in a typical Scrum project.


This framework allows you to keep the core of Scrum methodology by extending rules and guidelines without adding additional overhead.


Advantages of Scrum methodology


Now that you understand the logic behind Scrum methodology, here are the reasons you should use this structure for your next project: 


Increased transparency and project visibility


You keep misunderstandings and confusion at a minimum with daily team meetings. The Scrum Team knows precisely who is responsible for what section of each sprint.


In the daily meeting, they can also identify issues in advance and resolve them before they throw a spanner into the project's works.


More team accountability


Because there is no project manager telling everyone what to do, the team works together to decide what work should be done for each sprint. Collaboration and empowerment allow each member to be independent and proactive in their roles.


Changes are easily accommodated


Short sprints of work and daily feedback allow easy implementation of changes at any stage of the project. For example, if a new requirement crops up, the team can work it into the next sprint during the backlog refinement meeting.


Increased cost savings


Frequent communication gives the team the ability to detect and address issues early on. In addition, coding and testing in small patches mean there is continuous feedback, which increases quality and lowers expenses.


This means that very (very!) few problems become too expensive to fix or solve.


Disadvantages of Scrum methodology


Easy changes, increased savings. Scrum methodology is sounding like a dream. But to keep it realistic, let's look at the less desirable effects of the Scrum method:


Risk of scope creep


Because Scrum projects lack set end dates, some projects can experience scope creep. Scope creep refers to how a project's requirements increase over time due to key stakeholders, internal miscommunication, or internal disagreements. 


When a project has no specific completion date, stakeholders might repeatedly request additional functionality.


Team must be experienced and committed


The Scrum Team doesn't have separate or specific roles they need to fill. This means that every team member has several roles and responsibilities to fill each day – roles and responsibilities that require high levels of technical experience.


On top of the high experience needed, Scrum projects also require each team member to commit to daily meetings for the rest of the project. Finding a team that fits these criteria can be tricky.


The Scrum Master can jeopardize the project 


One of the most important things to understand about the Scrum methodology is that the Scrum Master is very different from the project manager. The Scrum Master does not have authority over the team. If they try to control or micromanage the team members, the project will fail.


The Scrum Master needs to trust the team members and never tell them what to do.


Task Definition Impacts Estimated Timeline


If the project's tasks are poorly defined, estimated costs and timelines won't be accurate. This makes it difficult to plan ahead and can result in sprints taking way more time than anticipated.


Kanban methodology

Kanban methodology


Kanban is a technique used to manage software development processes efficiently. It is a visual framework used to implement Agile methodology. Like Agile, it encourages incremental progress in your current system. It shows the team what to produce when to produce it, and how much to produce.


The best part about Kanban is that you don't need to implement it within a specific setup or procedure, and you can overlay it onto other existing workflows.


What Is a Kanban board


A Kanban board is an essential tool when implementing the Kanban project management technique.


Traditionally, Kanban boards were physical boards with Kanban cards (usually magnets or sticky notes) used to represent work tasks. However, in recent years, many different project management software tools have built virtual online Kanban boards.


Kanban boards each have three columns; the first column is for work to be done, the second column is for work in progress, and the third column is for work completed. In addition, some Kanban boards (such as those for software development) have more columns, including backlog, ready, coding, testing, customer approval, and work completed columns.


A Kanban card represents a task. It's placed in the appropriate column depending on its status. This helps the team see their progress at a glance.


Core principles of Kanban 


Kanban is a useful and intuitive method for tracking the progress of the most important features in a project.


Here are the core principles of Kanban that make it such a valuable progress tracker:


Visualize workflow


Visualizing the workflow lets, you see the big picture and understand where each task fits into the project as a whole.


When you can see each part of the project at once, including queues and blockers, you can identify issues quickly, keep the team on the same page, and improve collaboration.


Implement work In progress limits


Work in progress limits (WIP limits) define the minimum and maximum amount of tasks in the "work in progress" column. This helps keep progress moving without focusing on too many things at once. These help keep the speed up, protect the flexibility of the project, and reduce the need for prioritizing tasks (which saves time!).


Manage and enhance workflow


You need to monitor and continuously improve workflow throughout the Kanban board. Preferably, your workflow is fast and smooth. This shows that the team is efficiently creating valuable products or making valuable progress on the project.


The team must analyze their workflow and implement changes to improve it. Inefficient workflow management is one of the most common project management challenges, and the Kanban method can help to solve it. 


Make explicit process policies


To ensure collaborative change in a Kanban environment, you need explicit processes. Each member of the team needs to understand what "done" entails and how things need to work at the end of the day.


Modify the board to explain each task clearly and in detail.

Improve constantly


Kanban methodology encourages and embraces changes. Once the Kanban board is set up, the team can identify issues and work on finding solutions and improvements.


Teams quantify their effectiveness through flow tracking, measuring cycle time, and increasing the quality of their work.


Advantages of Kanban methodology


Kanban methodology has a highly visual nature which offers a unique edge to the Agile framework. The Kanban board is easy to understand and follow; it helps improve workflow and minimizes cycle time.


Here are the advantages of Kanban:


Increases flexibility


Just like Agile, Kanban is a fluid and evolving model. Different phases don't have set durations, and the priorities are updated as the project progresses. For the team to make changes, they simply add a feature to the Kanban board.


Reduces waste


Kanban focuses on reducing waste by ensuring the team only does work that is necessary for the overall goal. Anything less important won't be on the Kanban board, so you won't waste time doing it!


Easy to understand


Because Kanban is visual, it's intuitive to understand and easy to learn. On top of its ease, it can also be overlayed on top of other project management systems to improve its organization and planning.


Improves delivery flow


Kanban's structure optimizes the flow of work made available to customers. In addition, it ensures just-in-time delivery of high-quality software, which customers can expect to receive at regular intervals.


Minimizes cycle time


Kanban projects minimize the amount of time for tasks to move their way through the workflow (also called the cycle time). In addition, because it's easy to visualize progress, the entire team can ensure work is moving efficiently through the workflow.


Disadvantages of Kanban methodology


Most of the disadvantages of Kanban methodology come from misuse or neglect of the Kanban board. An outdated, overcomplicated, or cluttered board makes efficient work nearly impossible.


Board needs to be constantly updated


If the team forgets to update the board, they'll be working off of inaccurate information. It's difficult to reorganize an out-of-date board when the team completes work based on inaccuracies.


Easy to overcomplicate Kanban board


The Kanban board works well when it's kept clean and simple. The problem comes in when team members add too many bells and whistles. It's essential only to have important information on the board and avoid cluttering it.


Lack of timing


Kanban doesn't tell you anything about the timing of your project. On the Kanban board, you just see what phase each task is in – nothing about how long it's been there or will remain there!

With no timeframes associated with each phase, it can be difficult approximating how long the project will take to complete.


Agile vs Waterfall vs Scrum vs Kanban


Now that you have a better understanding of each project planning methodology, how do you know which to choose?


The first step is to determine how much change you want to be able to accommodate. For example, if you plan on implementing feedback as the project progresses, it makes no sense to try to work from a Waterfall framework.


When to use Agile, Scrum, or Kanban methodologies 


Agile has multiple frameworks within its flexible and iterative approach. We recommend using Agile if:



We recommend using Scrum if:


 

We recommend using Kanban if:



Whatever flavor of Agile you decide to use, you can find different degrees of flexibility to match your team. Project management professionals know their teams and what method will work best for them. 


If you're working on a straightforward project, you might want to consider leaning into a waterfall framework.


When to Use Waterfall methodology


Waterfall methodology is different from Agile and its various flavors in that it is rigid and linear. We recommend using Waterfall if:



It's impossible to say whether Agile or Waterfall is better overall because they work so differently and will suit some projects more than others. 


If you know exactly what your goal is, Waterfall provides an efficient and straightforward framework. If you anticipate changes or updates throughout the project, Agile, Scrum, and Kanban can easily incorporate the changes without the need to start from scratch.


Knowing what to use for your current project


Here at TrueNxus, our mission is to help maximize your productivity, efficiency, and your accountability. As a result, we can work with you to find the best project management technique for your current project.


Our cloud-based project management solution gives you strategic and valuable insights into your project while fueling efficient and thorough communication.  

Want help in determining whether you should use Agile vs Waterfall vs Scrum vs Kanban? We can help. Contact us today.