Using KANBAN for dev. software

Maybe you know the situation. Your team develops great application and customers are crazy about it. Everything’s going well. With growing interest, your team is growing too and robustness of applications as well. But suddenly, you begin to see that development is slowing down, more and more bugs is bubbling up and one member doesn’t know what’s doing the other one. Many people in this situation says that the time has come to grasp the development more methodically and decides to implement SCRUM, because they talk about it everywhere. Scrum is a great software development methodology, but brings changes also out of the development team, and for that reason many companies fail in implementation.

If you want to make your team working more efficiently, agile way, is necessary to put the fundamental building blocks first. And this can be Kanban. Kanban is not the regular methodology, it is rather a set of principles covering the workflow to let
everyone knows what’s going on, minimize amount of unfinished work and make the team self-organised.

Visualization of workflow is absolutely crucial for Kanban. The following two examples will help us to quickly understand.

Look at the table below for 10 seconds and then continue reading.

05d1965

 

Have you noticed these things?

  • Everything that goes into the Test is blocked
  • Many things are taken, but no one is ready
  • Simon is doing on multiple tasks at once

Now look at the following picture for 10 seconds.

0f7bdcf

 

So what team finally done?

  • As you can see, it doesn’t make a sense continue to develop and send tasks to a blocked Test. The team therefore abandoned his unfinished work and helped Robert and Albert solve the problems in Test and complete the tasks.
  • Now free Robert and Albert helped Simon to have to do more things at once and tighten the tasks in the Test.

Human brain has an exceptional ability to analyze visual information, but not analysis the data. Placing Kanban board on the wall, helps the team to know what’s going on, don’t forget important things, make decisions and keep team self-organised.

Once I heard an analogy that a team without a visual board is like a footballer with horse blinders. He sees just ahead at a distance of one meter. In such a situation, you have to tell each player where to run, when to kick the ball and where are other players. This is not very effective, isn’t it.

There is no specified form of the Kanban board. It always depends on the team what recognise useful and what not helping administration. Cards with tasks can contain notes for each of the states, such as “Once analysis is done, send a copy to Martin.”, “On testing, ask the QA team for help.”, etc..

Visualization workflow is definitely the strongest Kanban practice, but there is one more recommendation – limit the amount of unfinished work. Not everyone is oriented on finishing work and especially the programmers rather focus on programming and testing procrastinate as long as possible. They also like to do several tasks at once because of common technical basis. Once you can realise that after half a year, there is many tasks working on work, but no one finished. Testing then such a complex application is almost impossible do it properly and takes an enormous amount of time.

Kanban establishes limit for each state of workflow to minimize the problem of the bottleneck and unfinished work. Let’s say we have three programmers. To avoid the situation that the task will not be tested and therefore never finished, set the limit to a maximum of three unfinished tasks at once. The programmer is then pushed to complete the first task, before starting another one. Setting limits is again individually for each team and should solve the problem of unfinished work and not restrict the developers.

Let’s summarise the Kanban. There are three principles. Visualize the workflow, set limits to work in progress and constantly monitor how it works and seek a possibly to improve. If you are thinking about establishing agile principles and even some agile software development methodologies, Kanban is definitely a great start. Kanban is very useful in combination with Scrum or XP, because there isn’t in either case such a detailed workflow watching.

The article was originally written for http://www.projectman.cz