DevOps is quickly becoming the future of managing software development projects among companies, from start-ups to large enterprises.

Introducing DevOps practices in small milestones will help with the overall gradual adoption within a team. One way to accomplish this is by setting goals and using katas to help achieve them.

What is a kata?

Kata is a term that originates with martial arts. Katas are physical movements, called forms, designed to be practiced repeatedly. Each movement is simple and can be repeated many times in a short period. The kata practitioner focuses on making small improvements with each repetition.

Katas were brought to a wider audience by Toyota in their lean management practices with improvement katas. And now they are used in many industries and contexts.

Within software development, a kata is an exercise used to improve engineering practices, like in the field of DevOps. The idea is that continuous training and practice will lead to mastery and help build solid routines.

Goals and Katas

It is important to focus on manageable and measurable goals and by practicing and refining the kata, these goals can comfortably be achieved. In the following paragraphs, we give you two examples of such goals.

Decrease Issue Duration

In this first example, we would like to improve lead time and release frequency. One performance obstacle that applies to both of these KPIs is the use of large user stories (i.e issues). Due to their size, these take too long to finish and cannot be deployed to end-users fast enough.

Let’s say that we have a team whose average issue duration is initially 20 days. The team would like to reduce the issue duration to 3 days, but to comfortably achieve this, they will set intermediate target goals over time such as 10 days, then 5 days, and finally 3 days.

  • GOAL: Decrease Issue Duration
    • KATA: Use Smaller Tasks - Break overly large tasks into smaller units

The idea here is that by practicing the kata repeatedly, the team will see continuous improvement and get better with each sprint until the goal of 3 days is reached.

Execute Smaller Releases

In this second example, another obstacle that prevents improvement for release frequency, is loading too many issues into a release. This extends the time it takes to finish and deploy a release and potentially causes delays to the project.

Let’s say that we have a team whose average issues per release is 50. The team would like to have no more than 10 issues per release and as was the case in the first example, they arrive at their target goal by gradually improving until they reach it.

  • GOAL: Execute Smaller Releases
    • KATA: Minimum viable product thinking - Embrace minimum viable product thinking and create small releases to get early customer feedback. List the tasks that need to be accomplished to produce a MVP, then prioritise them to create the release schedules keeping each release small.

This goal and continuous practice of the kata will allow the time between releases to become shorter and shorter.

Interested in introducing or improving DevOps practices for your project? Demo our new app DevSensei and let us know what you think.