Agile Development: Kanban

2 min read
DevOps - Igniting Your Startup

It’s the simple things that can get your going really fast, really soon. Kanban is one of them.

Imagine there is a board with To do, Doing and Done. Something like what Trello prepares for you when you create a new board. All the tasks, to be done, go on post-it notes, in the To Do column. Each time someone starts working on something, he moves the corresponding note from the To Do column in the Doing column. And he starts doing it. When it is done, he moves it to Done. Now this Done column isn’t a simple Done.

Definition of done

There’s a concept in Agile called “Definition of done”. What does it mean for a task to be done? To be implemented? To be tested? To have automated tests? To have documentation? To be compiled into the main project? To be deployed in production? To be approved by the stakeholders? There are a lot of possibilities, and you should define what “done” means, together with your team.

To keep things simple, we’ll assume that done means tested and passed as well, so we’ll need another column before done, called Testing. Also, since the project manager – which in the Agile terminology is called Product Owner – has lots of ideas, we’ll also need an Ideas column, just before To Do. These are things that are not fully thought through, but must not be forgotten. So our columns are:

  • Ideas
  • To do
  • Doing
  • Testing
  • Done

Restraints

Now, Kanban comes with an interesting restraint. You can only have so many notes on a particular column. Except the Done column, where we’d want all our tasks to be. Usually, the limit should be according to the team size. So if we have two developers and two testers, we can go for two as the limit for the Doing and Testing columns. This will bring clarity to your development process, and increase productivity, or – to be more exact – deliverability.

What happens is that when the Testing column already has two tasks to be tested, a developer cannot move another task to the Testing column. His task, to be more exact. So he needs to help the testers finish up testing one of the task being tested for him to be able to move his task to Testing. Also, he’ll not be able to start working on another task if the Doing column already has two tasks.

Momentum

Basically, he’ll actively work to get tickets towards the Done column. Also, the Product Owner will easily see what’s being worked on, what’s being tested, what has been done and what there is to do. Clarity. Transparence. Exactly what one would need at this point.

As you can clearly see, dear reader, Kanban is simple and it will get you where you want to go to. And there are several other goodies that Kanban brings to a development process, such as important and interesting metrics, but we’ll cover those in another article.

Interesting read?