DevOps teams are a strange mixture of people with a background in IT operations, System administration, software development, consulting, field operations and support. People who do DevOps are the new “warriors” of the IT industry as it comes to them to automate and deploy to production in the fastest and most cost-effective way possible. It’s a tough job as it requires a lot of skills in various domains, deals with a never-ending queue of issues to tackle and a lot of angry people knock on your door if things go wrong. The Kanban method can help DevOps teams put some order into their daily work and the lean theory can definitely be leveraged to improve the flow across the DevOps teams. Below is a sample Kanban board that IT guys can use to get up to speed with Kanban:
DevOps Kanban Board Structure
While you may choose to implement a much more complex board, we would like to suggest starting with the simplest format possible and improving as appropriate. With the sample board above there are three default columns “To Do”, “Doing” and “Done”, but we have added three horizontal lanes. Let us go through them one by one.
- Production Issues – this is the nightmare of every DevOps team. Production issues means unhappy users and this is the worst thing that can happen. If you have something in this lane, you must stop doing whatever it is that you are doing and tackle the production issue. Once the issue is fixed and marked Done, then you can continue with your ordinary tasks.
- Automation – a great deal of the work in a DevOps team is automating repeatable tasks or at least it should be. Having this lane on your Kanban board is a way to say “Yes, we understand automation, we give it a special place on our Kanban board, and we want to measure how many jobs we automate and how much time it takes”.
- Operations – this is where support tickets come in or where you put some administrative tasks like meetings, phone calls, etc. Try to keep this lane as empty as possible, it will give room for automation or strategic projects.
Benefits of Using Kanban in the DevOps World
Kanban combines multiple streams into one
One of the most common issues that a DevOps team experiences is the number of customers they have. By a customer, I mean someone that needs something from you. Such a team usually works with the development team, the support team, the management team, the infrastructure team (if there is one) with the end-user and probably even more depending on the size of the company. If you respond to each request without any sort of scheduling, you will soon be killed by context switching and the lack of clear priorities. Kanban helps teams (not only DevOps teams) to limit the amount of allowed work in progress and by that ensure things get done without too many distractions. When something is moved to done, you can take the next one and knowing how much things you have in the queue actually gives you the chance to predict when request X will be completed.
Gives leverage to say NO
If your plate is full already, Kanban will tell you. You hit the WIP limits – you can do no more (at least not without sacrificing your productivity). When someone comes to your desk and asks for something “very urgent”, show them the board and just ask them to wait. Do not make compromises unless it is a customer or produciton-related issue, which should always be your number one priority. The great thing is that Kanban does the job for you – you don’t have to explain, you don’t have to estimate or judge – just point to the WIP limits and the size of your To Do queue.
Improves flow team communication
When a DevOps (or any other) team works on a dozen of important projects and literally hundreds of smaller items, it is very easy for some things to get stuck and submerge into oblivion. Since Kanban preaches “once started, must be completed” type of attitude, it becomes obvious when a certain thing does not progress. This allows the team members to identify it as an issue and work together towards completion by which you get both flow and team communication improved.
Kanban is probably the best thing that can happen to a DevOps team from the “project/process management” point of view. It is infinitely flexible and is able to address the core issues that a regular DevOps team has in a lightweight and unobtrusive way. Definitely, give it a try and let us know how that works for you in the comments section below.