Level 5 means never having to say you're sorry

February 3, 2005

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?
  1. Some things need talent to do really well.
  2. It's hard to scale talent.
  3. One way people try to scale talent is by having the talent create rules for the untalented to follow.
  4. 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
20 Comments

Just a great post. Thanks.

Christian Romney on February 3, 2005 9:31 AM

Just a great comment. Thanks.

Luis Cipher on February 4, 2005 10:01 AM

Ya, I'm definitely Level 5.

Allen Guest on February 8, 2005 9:21 AM

It'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 AM

Not 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 12:02 PM

I believe you, but can you provide links that elaborate on this connection?

Jeff Atwood on April 19, 2005 12:19 PM

Regrettably 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 4:35 AM

No 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 6:13 AM

http://www.google.com/search?q=herding+racehorses+ppt

I'll modify the link, too..

Jeff Atwood on May 15, 2006 11:18 AM

Very 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.

Laboremus on May 23, 2006 8:45 AM

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 AM

Other 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.

Boris on March 9, 2007 11:22 AM

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 AM

I think I've applied this to security guard training...lol

Level 5 no rules means you know the rules inside out, have used the rules and understand why the rules are there. Only then do you know when and where to break the rules.

Vahid on June 7, 2008 9:00 AM

Don't hate Political Science majors. Remember the creator of Facebook took Sociology at Harvard because he said it would be a waste to learn what he already knew.

Iconoclast on January 5, 2009 9:27 AM

There should've been a level 6. An expert that is able to follow rules.

Yngve Nilsen on February 12, 2009 7:27 AM

You've got a long way to go, pal. All I see is biased crap. A response from a level 0.

Level 0:
- Incompetent and therefore skeptical about any body elses' opinion
- Offers opinion without support or detail
- False sense of superiority
- Forum and comment troll

I think that with this list the programmer would peak at 4. 5 looks more like a socially defunct programmer who walls himself from the ideas or opinions (and valuable insight) of others. By becoming intellectually isolated personal growth stagnates until their skills/knowledge become obsolete.

If I could fork 5 the other half would be

Level 5B: Expert and Lifelong Learner
- Transcends guidelines/maxims/models by seeking and understanding the source of their inception
- Can solve problems intuitively
- Actively seeks challenges to feed curiosity and personal enjoyment of defeating those challenges
- Feels need to share knowledge and experience with other programmers because he enjoys sharing in on the fun
- Looks at future challenges with delight and enjoys that one can never know too much

I have worked with a Level 5A before and it sucked. He whined and moaned about doing less challenging tasks because he felt it was below him. It took considerable amount of effort to get him to engage as a team player. He was blind to see benefit of other people's ideas. He also had trouble adapting to new ideas beyond his expertise. He was great on his own but as a team fuggetaboutit.

I have also blessed to work with a couple 5Bs. One guy was literally a genius with a photographic memory. He also needed a partner to work with because he moved from one project to another so fast that he needed someone to follow him around documenting everything he did. He had a childlike disposition and he clearly loved and loved to share the work he did. I also worked with another who was team leader on one of the early 80's variants of *nix. If you asked him about anything technical he would eloquently explain from the basic interpretation to the advanced. Even if you knew what he was talking about, he would still insist. This guy could punch out effective and working code in record time. While working with him I could ask him questions about the theory of what I was working on he was more than happy to help but when it came to details of implementation I was completely on my own. Not to mention that they get excited about talking about new technologies and ideas they they don't know about yet. These types are awesome to work with and it's impossible not to learn from them.

Evan on March 3, 2009 8:34 AM

What's really interesting is when you get a small team together for s startup. You start with a single Level 1, because they get stuff out fast. Since they're the first one there, there's the expectation that they will eventually become the leader, or management. As the company grows, and brings on higher level devs, really weird chemistries can develop as a result. Level 1 dev tries to grok the maxims and intuitions of the rest of team and often misinterprets, leading to lots of refactoring by everyone else.

@Evan Level 0 is hilarious...

Chris on May 30, 2009 3:28 AM

Maybe I don't understand to the point of this blog post, but it's rookies who {don't know, are not willing to learn and follow} any rules. As a result a software project is always misdesigned or does not go through the design phase at all. Then its security is zero and its performance is frustrating. Maintainability of such a project is also very bad, because it does not do what you'd expect when you know the standards. It does something completely wrong and pretends everything is fine by its User Interface. A customer does not know what's under the hood and it also may look, like nobody cares. But those pigs who disrespect rules and standards in software should have never write a single line of code. They are ruining ICT.

A truly experienced person follows the standards, the rules AND invents / designs completely new revolutionary concepts / methodologies / patents and does globally useful research over existing things / rules / standards in order to increase their effectivity. For example Dennis Ritchie vs. C and the new C0x C++ standard. Or the new ECMA to have JavaScript 3. The people who create these are for me the experts. But a douchebag who disrespects rules and standard is just a f***ing nobody, regardless of any commercial success.

_ on July 28, 2009 3:55 AM

I'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

Greg Wilson on February 6, 2010 9:30 PM

The comments to this entry are closed.