A lot of application development teams, and to a lesser extent operational IT teams, have either no or limited process. They depend on a combination of individual expertise, informal conventions and team habits (some good and some bad); and being prepared to put with all the problems of poor quality and unpredictability. It does not have to be like that and here I present some 'low hanging fruit' you can pick to make your teams more productive – the approach is simple and practical.
This document is written for smaller teams (5-15 people) who spend their time doing a combination of maintenance and new feature requests on an existing application. This actually covers the majority of software teams because, much as we all want to work on green-field projects and deliver Rel 1.0, most of our work is done on existing systems.
The process improvement approach is based around the implementation of a ticket system. This addresses two key needs:
- Support the consistent use of a process on a daily basis
- Provide historical information for future process improvement initiatives
The introduction of a ticket system is only the part of the journey (albeit the most visible outside the team). Teams should be looking to exploit multiple tools and techniques, in particular
- Automated unit tests
- Frequent integration builds
- Configuration Management
The specific workflow that a team will adopt depends on a variety of factors:
- Skills
- What is acceptable in the organisation
- Type of project
- Inclination
However the focus should be on techniques and tools that deliver value to the team and organisation.