Kanban is a form of production control method used in the traditional manufacturing industry as a form of inventory control. However, in recent years the software industry has seen usage of Kanban in software development. The effects of this on software development are positive, however it is still not seeing wide-spread use or it is not being used to its full potential. To explore its application in the software development industry, and it’s potential benefits for developers, let’s have a look at Kanban.
Where did Kanban come from?
Kanban was developed by Taiichi Ohno, an industrial engineer at Toyota. It was initially created as a method for controlling production so as to maintain and improve a high level of production. It acts as a facilitator for JIT (Just-In-Time) production method. It was based upon the observations of a supermarket. In a supermarket every customer takes what they need, when they need it. Following a purchase the supermarket restocks its inventory accordingly. Similarly in Kanban a process is seen as a ‘customer’ of one or more previous processes which can be seen as ‘store’ processes. The customer process goes to the store process to get require components, which in turn causes the store process to restock. Therefore, Kanban is a way of meeting supply with demand. It makes production more efficient because inventory levels are only kept in amounts that are required for processing.
How is it used in software development?
Software projects are faced with a constant influx of requirements by the end users, because the requirements for the end user can often be ever changing. Or for instance, new issues may only come into sight once the user actually begins using the software. This is where Kanban comes in; a constant stream of requirements is constantly put into the backlog from where the team can set priorities for different stories. Each task is then completed based on the priority level designated by the team. In this way the whole process gets streamlined. This also inculcates a sense of continuous improvement to the whole production process. In detail, the benefits of Kanban are:
- Focus on continuous delivery
- Reduction of wasted work/wasted time
- Increased productivity
- Increased efficiency
- Team members’ ability to focus
Kanban is flexible. There are no set times for tasks, and priorities can constantly be reassessed. Kanban focuses on continuous delivery. By delivering small portions of the project to the end user continuously, the project team has many opportunities to fix their mistakes and give the user what they want based on feedback. In this way the user’s needs are met to maximum effect. Kanban also minimizes wasted work and maximizes the related measures of productivity and efficiency. By wasted work in the context of software development, we mean, work that is not needed, work that is incorrect and time spent doing the work sort of work.
Considering its benefits and success in the manufacturing industry, and it’s easy applicability to the world of software development, it comes as no surprise that an ever increasing number of IT firms are adopting the Kanban method of production. Basically, project managers should be looking towards Kanban if they want to increase productivity and efficiency, reduce wasted work and if they want to adopt a model of production based on continuous improvement.