If you are reading this article, it’s quite possible that you have heard about Kanban. Or, you are trying to understand how Kanban works and how it can help you. In this article, I am going to share my experience about how I use Kanban when I manage projects. And, after doing quite a few, what benefits I have seen from this way of doing things.
Before I dive into the details, let me give a small disclaimer – I am no Kanban guru. Nor am I saying that this is THE way of doing things. It’s not a fit for all size kinds of things. What I can tell you is that the approach helped me a lot and if done right it can help you a lot as well.
We at Focalworks understand that every customer is different and so are their needs. But, there are certain things that are consistent. Kanban is all about keeping that balance. Be flexible so that you are able to deliver fast and deliver value.
So, coming back to the topic – Why Kanban? What is so good about this?
Kanban helps the customer as well as the team. It helps in prioritising tasks, which task is in what stage of development. With these data points, the customer can make informed decisions. It also empowers many non-technical customers to get involved in the development cycle. And, this makes them connected with the development team.
Customer gets a clear idea of where things are
Kanban is nothing but cards stacked into columns. They need to move from left to right. You can think of the cards as racing cars. They start their race to the finish line which is always the right most column on your board. Oh, by the way some cards do overtake each other as well sometimes.
And, because of this everyone in the team looking at the board at one glance can see what’s happening on the project.
Here are some questions that I ask myself looking at the board:
- How many tickets are currently under development?
- How many are already groomed / ready for development?
- How many are in Backlog and need discussion with the customer?
And the best part is, to answer these questions I look at the number of cars in that column and get answers. If there are too many in the development column, I know something is not right and needs attention. It’s almost like there is a traffic jam.
If there is something in the “Ready for development” phase, then they are waiting for a developer to start work on. We can also say these cars are ready to race, but they need drivers.
Your customer feels empowered and love to contribute
When your customer understands what’s going on with his / her project, it becomes easy for him / her to contribute. For sure he / she won’t be doing development, but your customer is the most important person in the project. After all, he / she knows what he / she wants and knows how the final product should behave.
When we start working on a project, we share a small document. This document outlines what role the customer plays for cards in each column. It also covers what roles the developers will play in each column of the board.
This allows customers to provide their valuable inputs at the correct time. And, this reduces the chance of any kind of rework. Whenever the cards are moving to the right hand side, there is a go ahead. This ensures things are happening as per the requirements.
Also, things like asking questions and recording their answers as records become easy. Every Kanban tool will have a commenting system. This means, every communication is on record and can be traced back.
We, for example, on one project have Estimates mentioned in the description itself. And, the approvals are comments itself. So, everything is available for anyone to look back.
Can be scaled based on the requirements of the project
By keeping the Kanban structure nimble, it is quite easy to scale up and scale down the process. For example, during the development phase the number of columns is less. We don’t have many stages where customer approvals are necessary to close a task. But, once the project is live we do add columns like “Waiting on UAT” or “Waiting for approval”. These columns suggest that the team is waiting for inputs or actions from the customer’s end.
With special kinds of sprints, sometimes we add columns which can have a very specific use case. And, once that Phase is complete we get rid of that column. Like, in one project there was a team who was doing accessibility testing. So, the idea was to add one more column for them. Any ticket which moves into that column would need testing from their end before going to UAT. But, once the process was over, we got rid of that column.
Prioritisation becomes very easy
With cards arranged as blocks it becomes so easy for the customers to get a sense of the tasks on the table. And, then prioritisation becomes easy. Customers can bring cards from the backlog to the right hand side columns. This suggests that certain tasks got prioritised. Also, within the same column if prioritisation is required, you can do that by moving those cards to the top. All of this is done with the intention to provide more value to a product / project. This process allows customers to decide what tickets provide them more value.
I would say this is just the tip of the iceberg. This way of doing things and executing projects have really helped me and our customers in getting the most out of the development hours that we have put in. It helps in keeping a nice record of each task that was done along with the scope of the work. And, if the tools that you are using have due dates, shirt sizing / estimates, then it’s like a bonus.
If you want to read up on Kanban and it’s history a little bit, you can look at Wikipedia and enjoy the ride. If you are looking for tools – then I will tell you that there are a lot of tools available that you can use. I operate on Gitlab as well as Asana and we are open to any other tool as well. Personally, I use Notion for my own task management. So, basically what I am saying is that the magic is in the way you operate and not in the tool. Choose any one which has a board and a good notification system, that’s it.
Written by: Amitav Roy
Edited by: Thailambal PN