Some time ago we described the DevOps methodology on the StackMine blog, its main premise being close collaboration between teams of developers. In order to effectively implement a programming process of this kind, it is essential to use the right tools and follow the defined procedures. One great solution to this issue is Kanban – a predefined framework that facilitates process transparency and an ongoing flow of information. However, to fully understand what it is all about, let’s start at the very beginning – that is, the idea of agile programming.
This methodology is based on working in short, intensive periods (sprints), during which a specific part of the final product is delivered. This way, it is possible to implement the software more quickly and to respond to evolving customer needs. Agile enables a shorter transition time between interactions compared to the cascade method. At the same time, this approach provides more potential for change, preventing the risk that the software will already be obsolete on the day when the final version is delivered.
The name of this solution comes from a Japanese term originally meaning a signboard or information board. Its aim is to ensure that everyone involved in a project can obtain real-time information on the status of its progress. This way, the process can be optimised, as tasks can be dynamically allocated to a team, so that the workload is not excessive but the team does not experience downtime as a result of not working at any given time. This is particularly important in sectors such as IT, where no physical goods are produced and it is often hard to get an idea of the current status of a project without proper visualisation.
One key concept in the Kanban methodology is the boards that present information on the progress of work. The boards consist of columns indicating the next steps of specific activities. There is no predefined board pattern, each team can create its own model. Note, however, that they must not be excessively complex, as this will compromise their clarity and, overall, make the work harder rather than faster. The basic columns include ‘to-do‘, ‘in progress‘ and ‘done‘ – but nothing prevents you from adding your own elements, such as ‘needs testing‘.
On the boards, the team places individual elements to symbolise the units of work. This helps simplify the process – one item in a column is one activity. It is good practice to introduce a unit limit here. For example, if the ‘to-do’ column shows 5 items to be completed in the near future, do not add more until the space becomes empty. This way, you can avoid the chaos caused by dealing with too many tasks at once.
The workflow in the Kanban system goes from the point of commitment to the point of delivery. The former is a space where the team selects the ideas and suggestions it intends to implement from all the ideas collected. The point of delivery, on the other hand, is the final stage, which involves the consolidation of the various elements of the programme and deployment, i.e. the implementation of the current version and handing it over to the customer.
The simplest way to introduce the Kanban methodology is a simple, physical board and a set of sticky notes. There are, however, a number of tools available for more convenient and versatile management. The most popular Kanban programmes include Trello, Jira and Kanbanize. They allow you to access the board online, conveniently create columns as required, and set timeframes for each task.
With advanced projects, it is easy to get stuck due to poorly planned activities, starting to work on too many things at the same time – or assigning tasks in a less than optimal way, resulting in the team being overburdened. Kanban lets you notice at which point in the process a bottleneck occurs, making it easier to allocate resources accordingly, resulting in greater efficiency and faster turnaround on the next stage of the project.