Kanban development — tick!
Developing software is a complex activity that requires expertise in a variety of technologies. On a large project teams with a wide range of skill-sets work together towards a common goal: the timely delivery of functionality with the required quality. We use various tools to assist with this process and co-ordinate activities but at the heart of it all are check-lists, even if we don’t recognise them as such.
In his book The Checklist Manifesto Atul Gawande discusses check-lists and how they are used within complicated environments to track, co-ordinate and control activities. As a surgeon Gawande’s field is complex and diverse so it is fascinating to read how something as simple as a check-list can bring around dramatic improvements in patient care. Through the book he discusses other complicated work environments, including construction and avionics, finding simple checks-lists to be a common tool throughout.
Gawande asserts that the reliable management of complexity can become routine but it requires balancing of a number of conflicting qualities
- freedom and disciplin
- craft and protocol
- specialised ability and group collaboration
To support these qualities he suggests that check-lists must take two forms.
- supply a set of tasks to ensure that ’stupid but critical stuff’ is not overlooked.
- supply a set of checks to ensure that people talk, co-ordinate and accept responsibility, whilst being left the power to manage the nuances and unpredictable bits as best they know how.
At Glasswall we use Kanban boards to track and control the work undertaken by the development team. Pending work starts on the left, and progresses across the board, through a number of columns, until it is ‘Deployed’ on the right. At a glance, stakeholders can see the state of play and track whichever item of work they are interested in.
“There must always be room for judgement, but judgement aided and enhanced by process”, Atul Gawande
The columns of a board change over time, as the development process being used by the team evolves, but the process behind the columns remains the same throughout. Each column has criteria that has to be met before an item can leave that column. Much like Gawande’s ‘stupid but critical stuff’ these are the rules of the process that ensure the quality of artefacts as they progress through the development pipeline. The exit criteria of each column (or stage of the process) doesn’t enforce the approach to be taken. It allows the practitioner to use their skills and expertise to complete the required work in the manner in which they judge to be best. Whichever approach is taken to complete the work, the exit criteria ensures that the work complies with an agreed benchmark before proceeding to thee next stage.
For an example board with simple columns of ‘Analysis’, ‘Development’ and ‘Test’ between ‘Pending’ and ‘Done’ examples may be
- Are the requirements fully understood before leaving ‘Analysis’
- Are all automated Developer tasks passing before leaving ‘Development’
- Is the unit test coverage sufficient before leaving ‘Development’
- Is the test pass rate sufficient before leaving ‘Test’
- Has the documentation be updated before leaving ‘Test
This list is not exhaustive, but demonstrates that the ‘gates’ of each column can be used to ensue that the ‘simple but critical stuff’ is covered.
With each column effectively owned by a discipline within the team, when a work item has to transition between teams it triggers a conversation. When a piece of work has been developed and is ready for the test team, the transition from ‘Development’ column to ‘Test’ column triggers collaboration between Developer and Tester to ensure the correct components and tests are being used to validate the feature.
So without realising it, we are using check-lists every working day. The Kanban board is our to-do list and our guide to remind us what we should be doing to ensure it is being done correctly. If we hit the gates as we progress through the process then the critical stuff won’t be overlooked, and we’ll be talking with the right people to ensure the transition between disciplines is smooth.