Agile, agile, agile. If you’ve been in working in software, then you know this is one of the popular project management buzzwords. Many say they do agile, but few truly get the essence of agile. This article will give a brief overview and the benefits of agile, and where many ‘agile cowboys’ fail in using agile. But before we go into agile, we need to first understand the previous project management methodology.
Waterfall is the traditional methodology of linear project management and was popular in the 1980s.This methodology consists of 5 phases. It starts by analyzing the problem and gathering requirements of solving a problem, getting a design team to develop solution, handing it off to the building team, then testing and finally delivering to the customer. This linear process was done in phases, and if there were issues, would be passed back to the previous phase.
Credit to the author.
Agile is an iterative approach to developing a product, emphasizing cross-team collaboration with speed in terms of continuous delivery of products. This methodology allows teams to adapt quickly to changes. Also known as adaptive methodology, is best suited for projects where:
- Work is not well understood, high technical uncertainty
- Requirements are not stable, high domain uncertainty
- Support for rapid innovation and changing requirements required
For example, here is how scrum, one of the methodologies that follow the agile principle, looks like. Notice that the steps are similar to the waterfall methodology, except it has been broken up into smaller time-frames. This is to accommodate the faster rate of change that is happening around us, particularly in the software industry. Below is an illustration of Scrum, one of the frameworks of agile.
Advantages of agile are:
- Embraces change and is quickly adaptive
- Focus on functionality and customer satisfaction
- Incentivizes stakeholder communication and teamwork
- Uses visual management communication tools (e.g. Kanban boards) to engage the team
Drawbacks of agile are:
- Strong tendency towards IT‐related projects
- Transition from traditional approaches can be hard for people to accept
- To avoid this would require proper change management. Learn more in our article on how to conduct change management.
- Can become disjointed and directionless, an excuse for absence of internal processes and organizational chaos
When to Use Waterfall
That is not to say that the waterfall methodology has gone completely out of fashion, and all companies now must adapt agile. There are some companies that in fact do make sense to stick with the waterfall methodology of development. For example, car manufacturing companies where it is expensive to make iterative adjustments and changes would rather take more time upfront in deciding the overall design of a car.
For software companies and products, it is now common practice to use an agile approach to project management. Let’s have a look at the two popular flavors of agile.
Scrum and kanban are two different frameworks following the agile philosophy. Each one has its benefits, as shown below.
Kanban, which is japanese for signboard, is a continuous process of agile development which allows teammates to have real-time communication and complete transparency on the tasks being worked on. Inspired by the Just-In-Time (JIT) philosophy, the kanban workflow is one where the work in progress (WIP) matches the team’s capacity.
One of the defining features of kanban is the task board. It starts with a list of tasks to be done, and team members move tasks to different columns based on the progression of the task. There is only one taskboard, and it tracks all the work at any given time. Below is an example of a snapshot of a kanban taskboard:
Credit to the author.
As you can see, the pipeline of the work is always continuous and keeps flowing with new tasks. There is also a limit to how many tasks can be work in progress. This board does not belong to any specific team, but keeps track of all development.
Scrum is another framework in the agile methodology. Instead of kanban’s philosophy of JIT, it instead focuses on getting chunkable works done at a consistent time interval called sprints. Scrum also has scrum ceremonies that occur during the sprints. To read more about the different activities in scrum, have a look at our article here. Scrum also has different roles in the product owner, scrum master, and the development team. To know more about the roles in a scrum team, have a look at our article here.
Since in scrum we have the concept of a sprint, where there is a fixed workload amount, the task board will look different at different times. Here is an example of a scrum board during a sprint:
Credit to the author.
After the sprint is completed, the sprint task board is no longer used and a new one is created for the following sprint. During a sprint, no new tasks can be added to the task board. If at the end of the sprint there are tasks left incomplete on the task board, they are put back onto the backlog. The tasks that are completed then provide information for sprint tracking, on average, how much can be done by the team in the given time. This can be fed to future estimation of sprints.
Now that you got some fundamentals, you can begin to explore the world of agile project planning.