Agile vs Kanban vs Waterfall: Definition, Purpose, Disadvantages, and Performance
A project management methodology is a set of principles and practices that guide you in organizing your projects to ensure their optimum performance. In this modern era, work no longer possesses the characteristics it used to have when the Industrial Revolution first took place in 1760. In today’s world, work has been increasingly segregated into more and more specializations, which in turn requires ever-higher levels of education and domain knowledge.
Introduction
From the birth of the Internet, and the creation of semiconductors to the introduction of the first iPhone to the world by Steve Jobs in 2007. And now the rise of cloud computing and artificial intelligence, rapid changes in technology demand product makers to continually optimize the work process to bring about more efficiency and organizational communication. With that, deadlines become shorter. And work goes remotely.
The global economy means collaboration among workers from different time zones and interdisciplinary fields is needed more than ever.
1. For those reasons
Good product project management has become a crucial part of the product-making cycle. Especially in software engineering, where brand-new technologies are updated and created constantly to reflect the increased complexity of their counterpart hardware components.
According to the Project Management Institute, project management is defined as “Project management, then, is the application of knowledge, skills, tools, and techniques to project activities to meet the project requirements.”
Being a theoretical framework, project management includes itself many methodologies: Agile, Lean, Kanban, Waterfall, etc.; all share common goals but have different problem-solving approaches, thereby suiting different projects’ needs.
2. Why is Project Management Methodology important?
Good software engineering project management methodologies are important because of the following reasons:
First, they are effective, well-tested frameworks to concentrate joint efforts (language, processes, project templates,…) in managing projects.
Second, they improve knowledge management and project documentation. Each project management methodology provides its own benchmarks for measuring progress and generating feedback for further improvements.
Finally, suitable use of project management methodology ensures repeatability, consistency, and sustainability for the project.
Agile vs Kanban vs Waterfall
This article is a moderate attempt to introduce and equip readers who are interested in software project management with an overview of three commonly used project management methodologies: Agile, Kanban, and Waterfall.
Let’s get started!
1. Agile Software Development
Agile Project Management is undoubtedly one of the most well-known general-purpose project management methodologies. A spinoff of the famous software development methodology of the same name. Agile Project Management (APM) was first introduced by Jim Highsmith – an American software engineer in 2004. The basics of APM are similar to the twelve principles in the Agile Manifesto.
What is the purpose of APM?
First off, when you start a project using APM as the sole method. You need to divide the project’s requirements into smaller but concrete tasks. If there are multiple teams working on the project, the above tasks can be delivered to each team and they will decide which task they should work on first.
On the other hand, the primary focus of APM is to collaborate both with the project staff and with customers. You have checkpoints to check in with customers’ expectations and satisfaction. Thus incorporating this part in the planning phase of your project management, together with execution.
It is because of this strategic focus that your teams can quickly adapt to changes in new requirements but still be able to make incremental, yet sustained improvements to the project.
Disadvantages of APM
There have been a lot of discussions about “Agile going wrong”. What happens is that if we use APM incorrectly, it can make workers stressed out and less efficient due to unrealistic requirements in the project. Furthermore, APM is not suitable for products that do not change a lot over a long period of time.
How to start using APM?
APM is actually an umbrella of various project management methodologies. Three of the best-known are Scrum, Lean, and Kanban (the latter will be reviewed in-depth below).
APM in action
Suppose your team is tasked to make the software they haven’t done before. Using APM, the team can rapidly prototype and adapt to new requirements as needed.
2. Kanban Project Management
Although termed as one of the sub-branches of the infamous Agile Project Management, Kanban Project Management (KPM) did not actually share the same origin with the former project management methodology. As the name suggests, KPM was the Japanese automaker Toyota’s “just-in-time” production system. First implemented in 1953 and later branched into other engineering disciplines, including software engineering.
What is the purpose of KPM?
Like most agile approaches, KPM breaks requirements into more easily manageable tasks. This way, we can define tasks in a specific way so there are fewer tasks than when you don’t use KPM. After that, you need to gather enough data required for a given task so the assigned team will have complete information to start working on. The actual process of applying KPM to your project is then continuously improved over time from both internal and external feedback. However, one thing that makes Kanban stand out is that Kanban limits work in process. A team should only work on one task at a time! This means the team shouldn’t switch to different tasks before finishing the current one.
Disadvantages of KPM
Due to the rapid changes in requirements, teams need us to make adjustments to the product. On a different note, the one-task-at-a-time means that a team that has adapted well to multitasking and a large number of tasks can stumble when using KPM.
How to start using KPM?
Kanban boards and cards are popular to visualize and manage tasks.
Above is an example of a Kanban board. They divide the project into 5 phases, corresponding to 5 major columns: pending tasks, analysis, development, test, and deployment. The analysis and development columns have two subcolumns, for current and finished tasks. Each post-it note represents a task. When they complete a task, the Post-it note can move from the “done” column to the “done” one. Source: Kanban Blog
KPM in action
A small-sized software team can use a Kanban board to keep track of their project management. If all work in a room, the team leader can place the board in a position where all team members can review and suggest discussions and modifications.
3. Waterfall Project Management
A short contrast to the two above project management methodologies. The Waterfall Project Management (WPM), with its step-by-step approach, originated from industrial engineering, such as construction and manufacturing.
FURTHER READING: |
1. An Overview of Project Management Services |
2. What Is SCRUM And How Does It Work? |
3. Top 5 Trending Software Jobs Right Now |
What is the purpose of WPM?
The most striking aspect of WPM distinguishes it from its counterpart. Agile is when WPM splits requirements into a consecutive sequence of tasks. Each has to be completed prior to the subsequent ones. Therefore, requirements and tasks must be transparent from the start, and there should be little to no changes to the project later. As a result, detailed documentation can be written and provided for project members to reference.
Disadvantages of WPM
WPM is notoriously inflexible because of its linearity-driven approach, unlike Agile’s multi-linearity. Even with a slow-changed software product, a new customer requirement means that you might need to recreate the product from scratch. Moreover, while completing the project, you cannot proceed to the next stage without completing the current one first.
How to start using WPM?
There are WPM-based project templates to sketch out the most important information, such as a flowchart, for example, to coordinate efforts on a project.
WPM in action
Someone might object, “The Moore’s Law is still in effect with computers’ speed is still increasing year by year, thereby driving changes to all sorts of software, so I don’t think it’s possible for a software project to use WPM at all”. It is true, but only to a certain extent.
There is actually a whole class of software that is quite resistant to change – safety-critical software, like embedded software on a control board inside a nuclear plant, for example. Safety-critical software often has multiple generations of workers to support, therefore needing continuously updated, thorough documentation and best practices to ensure that nothing will go haywire.
Conclusion
Agile vs. Kanban vs. Waterfall have different pros and cons. Depending on the input (what customers want, what the team can do) and output (customers’ feedback and satisfaction), project managers will choose proper project management for the project. Additionally, it is possible to combine many project management approaches to maximize efficiency and adaptability.