Kanban for software development

Kanban is a part of Agile approach of software development. It´s a method for managing knowledge work with an emphasis on just-in-time delivery. Let´s have a closer look on how is it possible to apply Kanban during the software development (mainly focused on Service & Customer Care process) and how it is supported by Cloud Apps.

 

Kanban was developed in Toyota company in mid 60´s and it is a visual process management system which tells us where and how to produce products. This system helps a company to control the logistical chain, because it´s a pull flow system based on sales requirements.
However it´s obvious that system which is used in many IT companies, is not the original Kanban, but it´s quite modified. Kanban for software development takes basic principles from Toyota´s Kanban and modifies it to a specific IT area. Kanban enables production line SW development.

Kanban is represented by six core practices:

  • Visualise - most common is to use a board with cards and columns. Each column represents the different state or step in the workflow.
  • Limit “Work In Progress” issues
  • Manage flow - the flow of work in the workflow should be monitored, measured and reported.
  • Stabilization and rationalization process
  • Anything that does not contribute to value creation for the customer, should be removed
  • Exact adjustment of production levels
  • We could also have many other points, but less is sometimes more.

Pull & Push Model

Kanban is a typical Pull Model system which supports team spirit and contionuos flow of work. What does it mean? Let´s have a look on the following picture:
push model

In the picture above it is clearly shown how a team member takes tasks individually without any control of someone else (like manager). Each task has its own priority which can be set by a customer or by a team manager. Each member should work on a single issue and not to have more. However this rule is almost never realistic. There is also another way how to manage work - it´s called Push Model, but that´s not the way how Kanban works. Push Model is shown on the picture below: 

pull model

 

It´s evident that Push Model has a lot of flaws. For example team members have no idea what other colleagues are doing because all work is assigned to individuals by their manager. That also means that there could be a lots of waiting until work is assigned to individual. These mentioned problems are solved by Kanban and now we will show how.

Kanban Board and workflow

As we have said in previous paragraphs, Kanban is mainly represented by Kanban Board. Kanban Board can be a real wall in a meeting room or a computer application can be used. 

kanban board

There are five columns in the original board - Stack of requirements, Ready to develop, Development, Testing/Acceptance and column where there is marked what was delivered to customers.

Each task (or issue) is represented by a card (poster) which is moved from left side of the Board through columns to the right side. A customer makes a requirement and based on that, an issue is created which is placed to the Stack of requirements. Then some developer picks up the task and he solves it. If the issue is solved then it is placed to QA queue for testing and finally delivered to a customer.

We have to remind that during the development phase, a programmer and a customer communicate with each other and regulate small changes. In the most cases QA participate only in the final stage (called Testing of course). QA is responsible for the detection of possible errors and potential problems prevention in the future.

What about problems which can appear in many teams?
We bet that almost every team ever had problems like following:

  • Unbalanced allocation of resources - then solving of a problem may take more time and there are many “Work In Progress” issues. This problem can apppear if, for example, some team member takes five issues and he is working on that at the same.
  • Communication between team members - if they don´t know what other colleague is working on, then it is quite difficult to determine which team member needs a help. It is also not easy to follow in detail progress of an issue. Last consequence of the mentioned problem is that if communication in the team is not on proper level, then QA doesn´t see the problem in a broader context and breadth of testing needs expansion.

These problems can be elmiminated by Kanban, and now we will look how.

Applying modified Kanban into Service & Customer Care process

First of all, QA doesn´t have to be interested only at the final stage. QA can be also involved during the initial phase. Let´s check the following picture which shows quite a modified Kanban: 

modified Kanban

As you can see, this version of Kanban Board is extended to seven columns. This is much more convenient for Service & Customer Care process. If you don´t have a clue how mentioned process works, following points can give you a little awareness about it.
First of all, a customer makes a request to fix some defect in the product.

  1. Issue related to that request is established in a reporting tool which supplier of sw uses.
  2. Issue is picked up by Support Level 1.
  3. Issue is passed to Support Level 2.
  4. Now there is an initial phase - research what´s going on there, where can also participate QA team.
  5. Issue is solved by a programmer (a programmer and a customer communicate with each other).
  6. If a customer accepts a proposed solution, then the solution is placed in the QA queue.
  7. Solution (fix) is tested by QA.
  8. Solution is published.

In the previous part of this article we did mention some problems which can appear during the process. Well, let´s have a look how the described modified Kanban can help us to solve those problems.

If Kanban is implemented then Kanban Board will be created and daily meetings with QA and dev people will be introduced. This can bring better overview of the current process flow, possibility to determine which issues are pain, etc… Remember that each member must know his next step. If not, other guys from the team can help him.

When a better overview of the process flow is available, it will be also possible to better estimate issue completion. Every colleague can provide a better customer replies - that can help to increase customer satisfacton.

There can also be placed some metrics of performance measurement. The most common metric is “Time”. With Kanban Board it is possible to track how much time was spent in each stage of the process flow by each team member. Based on this measurement we can determine in which areas colleagues need help (which knowledge/skill should be improved).
Another metrics can be eg. “Count of completed issues”, “Count of cancelled issues”, and so on.

Some problems which can appear

Kanban doesn’t bring only advantages. There are also some negative things which can appear.
For example, if we work only on issues according to their priority, then it can happen that some low priority issue can be in the queue for a long time. Nobody would work on it and the progress with that issue would get stuck.

Another example may be boredom after a while. People may pay less attention after a couple of months. From the beggining everybody is interested in the new activities and the process is adjusted. However there is one condition - in the team there must be a leader. Someone with charisma and someone who will maintain the set processes.

Cloud applications which support Kanban

There are a lot of apps which are really convenient for Kanban in SW development. But Kanban can work also under the something more common like Microsoft One Note, Excel, etc. However if you want something more easy to use, choose some app from the list below:

1. Trello.com - Trello operates a freemium business model.Trello has limited support for tags, in the form of six colored labels that can be

renamed. 

trello.com

2. Targetprocess.com - Free app for 5 users. If you want to use it for more guys, then each member costs a couple of dollars / month. There is also an option to install it on your Windows Server. 

targetprocess.com

3. Agilezen.com - AgileZen was developed by Rally Software, which was founded in 2001. Rally Software offers cloud computing-based solutions for managing Agile software development. The company’s offerings include Application Lifecycle Management (ALM) and Project Portfolio Management (PPM) platform and products, Agile consulting services, courses through Agile University and training courses focused on Agile and Lean practices.

AgileZen

And many other apps are available.

We will focus in more detail on some other apps in some next article. Kanban can be a great opportunity for your team how to improve your processes, how to share knowledge between your colleagues and many other possibilites could be available. Pros & Cons of Kanban were mentioned in this article. 

Article was written for Start2Cloud.com portal.

Share

Počítač ENIAC z roku 1946
IBM PC z roku 1981
Datacentrum - "skladiště" cloudových služeb