Software process improvement efforts often fail because we try to accomplish too much too soon. Aside from the cultural and organizational obstacles to change, people need time to learn and assimilate new ideas and skills. “Human memory and comprehension are limited, and it is easy to design processes that are beyond peoples’ capacities,” says Watts Humphrey (Humphrey, 1989). This is true in any situation, but I think it is compounded in the software world because time is always a scarce resource. The pressure is high in every organization to justify process improvement dollars and increase capabilities.
Establishing and maintaining software best practices requires that you design clear processes and plan a pace of implementation that promotes lasting change. A key component is accommodating human learning and skill development challenges. Borrowing from a training class I developed 14 years ago (yes, implementing best practices is still a challenge), let’s follow a team of water bugs as they progress through Watts’ four stages of Human Methods Adoption to understand what good pacing requires.
Installation – Initial installation of the methods and training in their use. Process documentation and training should answer questions like:
- What is the process goal?
- When is it initiated (trigger)?
- When does it end?
- Who performs it?
- What are the procedures/steps?
- Goal – Row from Point A to Point B in X minutes without crashing or sinking.
- Start – When the team is in position and the starting gun fires.
- End – We cross under the yellow tape strung across the river.
- Who – Sculling Team Awesome.
- Steps – Stroke in unison; Listen to Coxswain
Practice – People learn to perform the methods as instructed. New concepts, like software sizing or software estimating techniques, require more time for people to simply practice. Each person will have their own challenges. Estimation Center of Excellence leads should check in with practitioners to offer help, because they are unlikely to ask for it.
- Are our strokes in sync?
- What is the most efficient rowing technique?
- Where can we practice where the water is calm and we aren’t too far from shore or close to traffic?
Implementing pilot projects provides a protected space to practice. It is also important to practice as a team.
Proficiency – There is a learning curve as people gradually improve their efficiency. Every organization wants to get up and running quickly, but attempting to implement multiple processes at once can cause the opposite effect – stagnation. Avoid practitioner frustration and temptations to abandon the process, especially after they have made a little progress, by letting them become proficient in a few things. Build upon small successes.
Naturalness – Finally, the methods are performed without intellectual effort. This is the goal. Like riding a bike, the team knows what to do and when. They recognize good results. Intellectual effort will always be required, of course; however, it is productive effort aimed at achieving the goal, not wasted energy.
Avoid process improvement failure by providing the necessary time and material resources to lead your teams through these stages; none can be skipped. Plan, coach, and monitor. Before you know it they’ll surpass your performance expectations, because they are competent and confident. Victory at last!
Artwork by Wendy DiNicola.