Building an Xbox – the Kanban way

Building an Xbox – the Kanban way

Okay, okay, we’re not really going to be building an Xbox here. The title relates to a book I read on the subject of Kanban and the development of Kanban for software development throughout the building of the xbox.

kanban-board

Stepping back a little; the Kanban system has been around longer than the xbox. Kanban (看板), meaning billboard, or signboard, in Japanese, is a scheduling system for Lean Manufacturing. Lean Manufacturing employs the use of Just In Time (JIT) techniques to manage supply chains. JIT was originally developed by an engineer in the Toyota Corporation, the system is seen as a great tool to promote both efficiency and improvement within processes.

One of the main benefits to Kanban is preventing overcapacity, which in the automotive world is a big part of supply chain management, another area is of course, under capacity, both of which have an impact on workload and throughput, both of which highlight one or more inefficiencies that need to be addressed. Kanban aligns consumption with production, so as a part is used, the supplier is told to produce another part providing assurances of future availability and visibility to links within the chain.

So how does this benefit software development?

A Kanban Board is used to visualise progress and processes which offers participants the ability to appreciate work load and capacity. A key point of the Kanban Board is that work should be pulled rather than pushed.

Pull vs Push

With a Push system, work is pushed because of the process.

You do this step, then this step, then this one and finally you have an end product.

If you imagine this end product to actually be something you want to sell, you may find that after following a process of many steps that actually the product isn’t wanted, needed or is too buggy to use.

If we compare this to a Pull system, we see more of a repetitive sequence of loops whereby each stage in the process makes a pull request on the preceding stage depending on overall demand. Again, if we consider this from an end product point of view, if there is no demand for the end product, review and change the product, market it better, of just stop throwing resources at something that isn’t needed.

In manufacturing, the main concept is to pull resources as you need them and is usually employed in places where aggregating resources would not provide any market efficiencies (i.e. having 1000 left door panels waiting in the bin when you only manage to ship 500 cars would not be a market efficiency as you’ll end up losing money on the materials not used).

Project managing a software development cycle can employ Kanban as a human resource management tool, whereby team members are essentially asked to manage their own capacity and to pull the next piece of the over-all deliverable as their workload allows. Of course, this is only half the battle, understanding and breaking down the overall deliverable is a key component that needs further explanation.

The Kanban Board

One of the key benefits of the kanban board is to give everyone a better understanding of the outstanding work, a resource pulls the next piece of work from the board as their capacity allows whilst reducing waste from multi-tasking and context switching. The system also exposes operational problems by it’s very design and generally stimulates collaboration. Kanban is designed to promote iterative change and customer focus and suits a typical start-up strategy of ‘fail fast‘.

kanban-board

The incremental approach is designed to both limit the impact of buggy code making it out in to the wild (the changes should be small in nature so the bug(s) should have limited impact and be addressable quicker than will be the case in more traditional approaches to software development) and to remove or reduce resistance to change.

The 6 practices of Kanban

  • Visualising work
  • Limit the work in progress
  • Flow management
  • Making policies explicit
  • Using feedback loops
  • Collaborative / Experimental evolution

More than just Software Development

Kanban has proved itself in Software Development, but it has also shown great success in other areas of Knowledge Work. In fact it can be applied to any repeatable and consistent workflow which includes things like:

  • Human Resources & Recruitment
  • Marketing
  • Executive Leadership
  • Organisation Strategy

Marketing and Recruitment are especially suited to visualising and monitoring work processes.

I’m going to post more on Kanban in the future.