Here’s a gift for the holidays; a software concept maturity model to lighten your mood.
Level 1 – Initial
At this point, someone has an idea. It seems to work for them, to solve the problems they have. The person actually uses the idea with some success. There are lots of ideas at level 1 right now, but we’ve never heard of them.
Level 2 – Defined
Someone gives the idea a name. Exploratory testing is probably at this level right now, although there are a few tools starting to emerge, and that is the leap to level 3. “Blink” Testing is probably at this level now. The key thing about level 2 is that once an idea has a name, it will spread.
Example of jumping from level 1 to level 2:
Level 1: “As a final check, Joe eyeballs the data, looking for irregularities. He does this mind-meld thing where he takes a step back and looks for patterns.”
Level 2: “Our shop does blink testing as part of it’s quality process. Does yours?”
Level 3 – Vendorified
At this point, the idea is popular enough that people start to do it, and ask for tools to make it. Vendors begin to provide tools to make the idea easy. The Enterprise Service Bus is probably at this level.
Level 4 – “Gotta Have It”
By level 4, vendors have invested a significant amount of time and effort in creating tools. They now create a market for the product. Instead of telling you the ROI of the product, they tell you that “everyone else is doing it” or “In Six Months, companies that aren’t doing X will be unable to complete.” Enterprise Resource Planning (ERP) hit level four about three years ago. Web Services and CRM are probably at this level.
Not to be a jerk, but level 4 often involves marketers and executives who don’t really understand the idea at the nuts-and-bolts level.
After level 4, the tree splits …
Level 5A – Ubiquitous
After all the hype, it turns out that the concept doesn’t solve all your problems and never will. Instead, hopefully, it has some broad specific applicability that solves a lot of problems like X, and can be used by people when the concept makes sense. Object-Oriented Development is probably at level 5 – People use it that use it, people that don’t don’t feel bad about it. Sure, there is a design patterns community and classes on Object-Relational Mapping, but no one is saying you “have” to use design patterns. (Any More) Agile Development is pushing it’s way from level 4 to 5A right now, but I don’t have a good feel for what is happening to test driven development.
Alternatively, some ideas go to level 5B …
Level 5B – Craptacular
Some ideas do not have broad but specific applicability and do not solve problems very well, yet a small group of companies and consultants continue to insist that you “just gotta have it” or that it is the wave of the future. RUP, UML, and some aspects of MDA are probably level 5B. It is interesting to note that many level 5B ideas are re-labelled or re-named to something more “hip”, then re-cycled at a lower level. Examples: The Agile Unified Process, The Enterprise Unified Process, Agile Model Driven Development, and HeavyWeight SOAP Web Services, which in many ways is dressed up CORBA. I am not 100% sure about EUP and Agile UP, though, as they may be part of some elaborate joke. ISTQB testing is probably level 4, going to 5B.
Note that this is just a model, and it’s incomplete. For example, several of the standards set by the Object Model Group have no reference implementation, as they were never actually used in the first place, skipping level 1 entirely.
What is my point, you ask?
Well, in the 1970’s a gentleman named Mark Hanan wrote a really interesting book called “Consultative Selling.” In the book, he suggested that instead of traditional selling, which he calls “Vending”, companies should help the customer solve it’s problem and increase bottom line performance – the ROI argument. When you see big, full-color ads talking about the 500% ROI from test automation, someone in the line of inspiration probably read Hanan.
The problem comes when people stop trying to understand the problem and really solve it, and instead ask “How can I use this (solution) to make money?” – then it turns into a solution seeking a problem, and you begin to climb the ladder toward craptacular. At best, you hit 5A, which really isn’t that bad, OO has really helped some people solve real problems in the real world.
And, know that I think about it, that is the danger with Agile right now, the Shark that could be jumped.
As for me, I intend to try to stay in the Agile Community, to make sure we go to 5A and not 5B.
I suppose this was a little bit more than a joke post, after all.