At a couple of recent conferences, some people have asked me about one “maturity” model or another. As one of the few people who has read the CMMI book from cover to cover, here’s what I think: In process-speak, the notion of maturity is backwards.
A mature entity, in biology, is one that can survive and thrive without parental support. A mature being is one that has achieved an age and stage where it can reproduce, mutate, and diversify. In general, diversity and sustainability come from interaction with other mature creatures. An animal or plant attains and sustains maturity either by adapting to its environment, or by being adapted to it already, but no species is adapted to all environments.
A mature person is one who is highly conscious of when it’s appropriate to follow rules and when to break them. A mature person is largely self-guided. Only in exceptional circumstances does a mature person need to refer to or appeal to a rulebook at all. In such cases, the issue is that someone believes that the rulebook isn’t working, and in such cases, consensus between mature individuals and organizations—not the rulebook itself—makes the determination as to what should happen next. Mature people know that rulebooks need to be interpreted.
We don’t consider a person mature when he says or does the same thing over and over again, when he answers by rote, when he appeals to authority, or when he goes through the motions. We consider a person mature when he is able to think and perform independently, when he behaves responsibly and respectfully towards others, and when he accepts responsibility for his actions. We also don’t mind when a mature person screws around every once in a while, as long as little or no harm comes of it.
We generally think of mature people as being relaxed and easy-going, rather than rigid and uptight. Mature people who can’t get their way immediately don’t stamp their feet, shout, or hold their breath until they turn blue. Mature people recognize the possibility that other people’s values, actions, languages, cultures, and means of expression are worthy of respect. Mature people question themselves at least as quickly and as closely as they question others. Mature people are forgiving and fault-tolerant, recognizing that immature people often need to make mistakes in order to learn. Mature parents don’t scare the kids, don’t yell at them, don’t try to protect them from every peril. Mature parents provide a supportive environment where kids can make mistakes and learn from them.
One more thing about mature beings: they eventually get old, and they die, to be replaced by other mature beings.
So what does all this mean for “process maturity”?
If maturity means the same thing for processes as for other living things, a genuinely mature process, whether for individuals or for groups, should incorporate freedom, responsibility, diversity, adaptability, and self-sufficiency. A genuinely mature process shouldn’t emphasize repeatability as a virtue unto itself, but rather as something set up to foster appropriate variation, sustainability, and growth. A mature process should encourage risk-taking and mistakes while taking steps to limit the severity and consequence of the mistakes, because without making mistakes, learning isn’t possible.
What do you think? How do process “maturity” models stack up?
Note: This post was inspired by Jerry Weinberg’s writing, in particular the material on “maturity” in Quality Software Management, Volume 1: Systems Thinking. For an unusually sharp passage on the subject, see pages 20 and 21.
Want to know more? Learn about Rapid Software Testing classes here.