In Big Macs vs. The Naked Chef, Joel derides the least common denominator effect of formal methodologies:
Mystery: why is it that some of the biggest IT consulting companies in the world do the worst work?
- Some things need talent to do really well.
- It's hard to scale talent.
- One way people try to scale talent is by having the talent create rules for the untalented to follow.
- The quality of the resulting product is very low.
You can see the exact same story playing out in IT consulting. How many times have you heard this story?
Mike was unhappy. He had hired a huge company of IT consultants to build The System. The IT consultants he hired were incompetents who kept talking about "The Methodology" and who spent millions of dollars and had failed to produce a single thing.
Luckily, Mike found a youthful programmer who was really smart and talented. The youthful programmer built his whole system in one day for $20 and pizza. Mike was overjoyed. He recommended the youthful programmer to all his friends.
Youthful Programmer starts raking in the money. Soon, he has more work than he can handle, so he hires a bunch of people to help him. The good people want too many stock options, so he decides to hire even younger programmers right out of college and "train them" with a 6 week course.
The trouble is that the "training" doesn't really produce consistent results, so Youthful Programmer starts creating rules and procedures that are meant to make more consistent results. Over the years, the rule book grows and grows. Soon it's a six-volume manual called The Methodology.
After a few dozen years, Youthful Programmer is now a Huge Incompetent IT Consultant with a capital-M-methodology and a lot of people who blindly obey the Methodology, even when it doesn't seem to be working, because they have no bloody idea whatsoever what else to do, and they're not really talented programmers -- they're just well-meaning Poli Sci majors who attended the six-week course.
And Newly Huge Incompetent IT Consultant starts messing up. Their customers are unhappy. And another upstart talented programmer comes and takes away all their business, and the cycle begins anew.
What's the moral of the story? Beware of Methodologies. They are a great way to bring everyone up to a dismal, but passable, level of performance, but at the same time, [Methodologies] are aggravating to more talented people who chafe at the restrictions that are placed on them. It's pretty obvious to me that a talented chef is not going to be happy making burgers at McDonald's, precisely because of McDonald's rules. So why do IT consultants brag so much about their methodologies?
Joel's entry, written in January 2001, is essentially championing the same Dreyfus Model of Skill Acquisition that the Pragmatic Progammers began advocating in 2002 with Herding Racehorses and Racing Sheep. Andy briefly covered this in the presentation he gave to our group, but the full slide deck (ppt) goes into much more detail:
Level 1: Beginner
- Little or no previous experience
- Doesn't want to learn: wants to accomplish a goal
- No discretionary judgement
- Rigid adherence to rules
Level 2: Advanced Beginner
- Starts trying tasks on their own
- Has difficulty troubleshooting
- Wants information fast
- Can place some advice in context required
- Uses guidelines, but without holisitic understanding
Level 3: Competent
- Develops conceptual models
- Troubleshoots on their own
- Seeks out expert advice
- Sees actions at least partially in terms of long-term plans and goals
Level 4: Proficient
- Guided by maxims applied to the current situation
- Sees situations holistically
- Will self-correct based on previous performance
- Learns from the experience of others
- Frustrated by oversimplified information
Level 5: Expert
- No longer relies on rules, guidelines, or maxims
- Works primarily from intuition
- Analytic approaches only used in novel situations or when problems occur
- When forced to follow set rules, performance is degraded
As Joel points out, the value of big-Em methodology decreases very sharply as you climb the skill ladder. He's also saying that the resulting value of hundreds of level 1 and 2 coders banging out millions of lines of code is surprisingly low, but that's a topic for another blog entry.
The Dreyfus model is a general model of skill acquisition that was originally developed through observation of thousands of nurses performing their work. It has nothing to do with software development, per se. You could be a level 1 skydiver and a level 3 cook. But there are some interesting historical parallels with software development:
The nursing profession had a lot of problems in the 70’s. The Benner book, and the Dreyfus model, is often quoted as being instrumental in helping turn it around. And if you read the book, you’ll see that the problems faced by nursing back then have strong parallels to those faced by the software industry today.
And as Dave points out, you really don't want to be in a position where you're following a set of static, defined rules:
What can companies effectively outsource? Stuff that can be specified precisely. Stuff that has rules. This means that (in general) the jobs of novices will be more at risk from outsourcing that those of experts. Now, this is my no means a perfect model: companies outsource projects that shouldn’t be outsourced, and companies have a strange habit of firing their experienced people in bad times because their salaries are 50% higher than the novices (why does no one ever account for the cost of all that experience walking out the door?). But, ignoring all the exceptions, in general we need to move away from the low Dreyfus levels and start occupying the higher Dreyfus levels if we are to to make ourselves less vulnerable to job evaporation. And Dreyfus is all about the acquisition of skills through experience.
Now, as amusing as it may be, I am not trying to encourage the level 5 means never having to say you're sorry attitude. "No rules" isn't shorthand for an air of smug superiority, although there's certainly no shortage of that in our profession. "No rules" means that we should actively seek out challenging development opportunities with lots of unknowns, work that takes considerable experience and skill. The kind of work that cannot be done by beginners slavishly following a big-Em methodology.
Posted by Jeff Atwood View blog reactions
« Resharper for VB.NET Wintellect ASP.NET FAQ »
Just a great post. Thanks.
Christian Romney on February 3, 2005 09:31 AMJust a great comment. Thanks.
Luis Cipher on February 4, 2005 10:01 AMYa, I'm definitely Level 5.
Allen Guest on February 8, 2005 09:21 AMIt's somewhat coincidental that level 5 = number of fingers in one hand.
Level 5 = talk to the hand!
Jeff Atwood on February 8, 2005 10:52 AMNot to be argumentative, but Hubert and Stuart Dreyfus came first. Benner applied their model to nursing. The comment that "It has nothing to do with software development" is ironic given the actual background of the model.
Ray on April 19, 2005 11:02 PMI believe you, but can you provide links that elaborate on this connection?
Jeff Atwood on April 19, 2005 11:19 PMRegrettably the fact of CMMI accreditation does require that software teams implement the necessary processes throughout - program manager, analyst, developer or test we are going to have to think and work within a standards driven process. Which means learning it and practicing. Interestingly much compliance driven work has been outsourced to CMMI level 5 firms in Asia, while many domestic UK and US shops have not demonstrated achievement of level 3 CMMI competence.
Raimond on July 23, 2005 03:35 PMNo Best Practices
"And if you are one of those people who promote a 'testing maturity model' then you must be apoplectic. A maturity model is basically a gang of best practices hooked on crystal meth. In my maturity model of the industry, promoting a maturity model is mere level 2 behavior. By level 3, we outgrow it. "
http://blackbox.cs.fit.edu/blog/james/archives/000187.html
Jeff Atwood on August 2, 2005 05:13 PMI'm getting a 403 on the PPT slides --- any chance of making them generally available?
Thanks,
Greg Wilson
gvwilson at cs dot utoronto dot ca
http://www.google.com/search?q=herding+racehorses+ppt
I'll modify the link, too..
Jeff Atwood on May 15, 2006 10:18 AMVery interesting post, as usual.
Once I was inspired by the article (don't remember who's) about role of management in development process as a support service. This post makes perfect sense in continuation of this theory - here is a very difficult job for the management: find and juggle with perfect balance of rules and free hunting for a very diverse development force. Too often (I would say always) I see that seniority is assigned at the hiring point as the org chart prescribes it. Too bad if management thinks it’s job done at this point – the novices will not have their rule set to grow on good examles and seniors will be chocked away.
IMO, not having a CMMI or ISO 900 certification is not a good thing (the company I'm working for has none, but I'm not happy with this). IMO it only shows either the incapacity of an organization to formally describe and acknowledge how and what it is doing, or the lack of understanding of what advantages such a formal description brings with it - which IMO is the possibility to discover smart things and generalize them and discover bad things and elliminate them.
Also The Methodology is IMO also not a bad thing in itself. As long as The Methodology is a living body of rules, periodically revised and properly maintained, and into which's maintenance feedback from the actual process is used, I think a Methodology is a must, especially in larger teams. What's IMO wrong with The Methodology in most cases is that it's always something hard to swallow for the senior ppl which initially established The Methodology that on one hand they may have been wrong, and on the other hand that the world is changing. Since those are usually the ppl with authority, in most cases The Methodology fails to be useful at some point in time. But 99% of all organizations getting the maintenance of The Methodology wrong still doesn't mean that The Methodology in itself is a bad idea.
flj on January 8, 2007 11:18 AMOther point here is that experts usually cannot work together. I think that this is because of their ego, so a humble expert is very rare combination. I believe that the ego developes within the grow process. That's why a lot of famous people who achived some mastery in some subject are so eccentric. When a person becomes an expert, he starts to dictate the rules since he thinks that only he is at this level and others are not so skillfull. And becuase they are "not so clever" (here is the ego - I'm much smarter then the others), they have to follow the rules to avoid the mistakes - otherwise the goal will not be acvhieved. In this way, others cannot grow and achive the mastery, since they are always protected to avoid the mistakes (when the real learning happens IMHO, at least for levels 1,2 and 3, for next levels, person learns mostly with observations).
Good metaphore is too protective parents - how they protect the children (not-expierenced) for life - in the end the children are weak because they never tried "to cope with big problems".
One of the chalanges is to develop a working social model where experts collaborate successfuly.
A very thought provoking article and comments there on.
Methodologies for methodologies sake would not deliver. A clear purpose of the methodologies must be established and a regular check on whether those methodologies are delivering must be made by the management and technical staff to be account to make the requisite changes to methodologies keep in continually delivering on the purpose.
In the least, the methodologies can establish a common vocabulary and a consistent understanding of terms used in the organisation and encourage consistent practices.
Muralidhara on December 26, 2007 10:08 PM| Content (c) 2008 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved. |