1) Visualize what you do – make it public – use Kanban cards, boards etc.
2) Limit what you’re working on at one time. Less process switching creates less ‘thrashing’
3) Manage workflow through the system. Lower WIP levels allows bottlenecks to be found.
4) Explicit and concrete policies. You can’t improve if you don’t have clear documentation.
5) Continuous feedback throughout the process.
6) Collaborative improvement based on data and scientific testing. Small, continuous improvement, not top-down sweeping change.
For development, you let the executing teams pull cards from the work backlog, work on them without interruption, then move the card to the next lane - from design, development, testing and more. As you see cards stacking up you can identify backlogs; visualization helps make it happen. Very compatible with Agile development and can be used even in oldschool waterfall development.
More detailed background:
Further reading – SCRUM vs Kanban :
Examples of Kanban boards in Development:
Even more reading:
Fascinating stuff, really…