October 21, 2005

...Learn TDD with Codemanship

Software Process Improvement Process Improvement!

My thoughts today are very much focused on agile approaches to improving development team performance. It occured to me that there are 4 factors in SPI that affect the speed and effectiveness of such programs. Since SPI is essentially organisational learning, the factors that influence the rate at which we learn and the improvements we can achieve are:

1. Frequency of feedback - the more often we see the effects of our actions, the faster we can adapt our behaviour
2. Quality of feedback - "it's wrong, do it again!" isn't going to help us adapt in the right ways very much
3. Organisational Fluidity - the less rigid the structure of the organisationh undergoing SPI, the less time and energy is required for them to change
4. Organisational Receptivity - if they neither need nor want to change, then change probably won't happen

I've literally this morning coined the semi-comic term Software Process Improvement Process Improvement - or SPIPI - to describe the concept of improving frequency and quality of feedback, as well as the fluidity and receptiveness of the organisation undergoing SPI.

Adopting an agile approach to SPI helps with frequency of feedback. You can use the same planning tools and technqiues used in XP or SCRUM to plan and execute your SPI program in a highly iterative, adaptive fashion. You can improve the quality of feedback using carefully designed and thoughtfully applied metrics for scope, productivity, quality and cost. I'm still thinking about organisational fluidity. My initial thoughts are about the role that the SPI coach or consultant plays. Some consultants are what I call "kinetics". They go into the organisation with a lot of energy and shake the whole thing up. Other consultants are what I call "statics". They enter slowly and with little disruption and eventually become part of the existing structure. It's rather like the difference between firing a high speed rifle bullet through a jelly, or carefuly inserting a tooth pick into it. My thinking on this is that you should prefer the kinetics if you actually want things to change. Of course, change can be painful, and kinetics tend not to stay around for long... Maybe they should charge a lot more?

Improving receptivity is a lot more complicated, since you're trying to influence the motivations of large numbers of very different people. The question is "how do you herd cats?". Maybe the answer is "with cat food". I would be interested to know if both receptivity and fluidity can be measured and improved. If they can, then there's still hope for organisations that are lacking in either. Perhaps SPIPI can help large, rigid, heirarchical organisations prepare for Agile SPI.

More on this soon, no doubt.
Posted 15 years, 10 months ago on October 21, 2005