without running into a Clinton-esque “It depends upon what the
meaning of the word is is.” This phenomenon is known as infinite
regression. At some point, you have to stop defining explicitly.
Rules can get you started, but they won’t carry you further.
Stage 2: Advanced Beginners
Once past the hurdles of the novice, one begins to
see the problems from the viewpoint of the advanced
beginner. Advanced beginners can start to break
away from the fixed rule set a little bit. They can try tasks on their
own, but they still have difficulty troubleshooting.
They want information fast. For instance, you may feel like this
when you’re learning a new language or API and you find yourself
scanning the documentation quickly looking for that one method
signature or set of arguments. You don’t want to be bogged down
with lengthy theory at this point or spoon-fed the basics yet again.
3.
I forward it with my compliments and a large check to my accountant, who is expert in these matters. I hope.
Report erratum
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
this copy is (P2.0 printing, January 2009)
THE FIVE DREYFUS MODEL STAGES
33
Advanced
beginners
can
start
using
advice in the correct context, based on Advanced beginners
similar situations they’ve experienced in don’t want the big
the recent past but just barely. And picture.
although they can start formulating some
overall principles, there is no “big picture.” They have no holistic
understanding and really don’t want it yet. If you tried to force the
larger context on an advanced beginner, they would probably dis-
miss it as irrelevant.
You might see this sort of reaction when the CEO calls an all-hands
meeting and presents charts and figures showing sales projections
and such. Many of the less experienced staff will tend to dismiss it
as not being relevant to their individual job.
Of course, it is very relevant and can help determine whether you’ll
still have a job with this company next year. But you won’t see the
connection while you’re at the lower skill levels.
Stage 3: Competent
At the third stage, practitioners can now develop con-
ceptual models of the problem domain and work with
those models effectively. They can troubleshoot prob-
lems on their own and begin to figure out how to solve novel
problems—ones they haven’t faced before. They can begin to seek
out and apply advice from experts and use it effectively.
Instead of following the sort of knee-jerk
response of the previous levels, the com- Competents can
petent practitioner will seek out and solve
troubleshoot.
problems; their work is based more on
deliberate planning and past experience. Without more experience,
they’ll still have trouble trying to determine which details to focus
on when problem solving.
You might see folks at this level typically described as “having ini-
tiative” and being “resourceful.” They tend to be in a leadership role
in the team (whether it’s formal or not).4 These are great folks to
have on your team. They can mentor the novices and don’t annoy
the experts overly much.
4.
See Teaching and Learning Generic Skills for the Workplace [SMLR90].
Report erratum
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
this copy is (P2.0 printing, January 2009)
THE FIVE DREYFUS MODEL STAGES
34
In the field of software development, we’re getting there, but even
at this level, practitioners can’t apply agile methods the way we
would like—there isn’t yet enough ability for reflection and self-
correction. For that, we need to make a breakthrough to the next
level: proficient.
Stage 4: Proficient
Proficient practitioners need the big picture. They will
seek out and want to understand the larger concep-
tual framework around this skill. They will be very
frustrated by oversimplified information.
For instance, someone at the proficient stage will not react well
when they call the tech support hotline and are asked whether it’s
plugged in. (Personally, I want to reach through the phone and
remove the first vital organ that presents itself in these situations.)
Proficient practitioners make a major
Proficient practitioners
breakthrough on the Dreyfus model: they
can self-correct.
can correct previous poor task perfor-
mance. They can reflect on how they’ve
done and revise their approach to perform better the next time.
Up until this stage, that sort of self-improvement is simply not
available.
Also, they can learn from the experience of others.
As a proficient practitioner, you can read case stud-
ies, listen to water-cooler gossip of failed projects, see
what others have done, and learn effectively from the story, even
though you didn’t participate in it firsthand.
Along with the capacity to learn from others comes the ability to
understand and apply maxims, which are proverbial, fundamental
truths that can be applied to the situation at hand.5 Maxims are
not recipes; they have to be applied within a certain context.
For instance, a well-known maxim from the extreme programming
methodology tells you to “test everything that can possibly break.”
5.
See Personal Knowledge [Pol58].
Report erratum
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
this copy is (P2.0 printing, January 2009)
THE FIVE DREYFUS MODEL STAGES
35
Pragmatic Tips
When Dave Thomas and I wrote the original The Pragmatic
Programmer, we were trying to convey some of the advice
we thought was most relevant to our profession.
These tips—these maxims—were a reflection of our col-
lective years of expertise. From the mind-expanding prac-
tice of learning a new language every year to the hard-
won principles of Don’t Repeat Yourself (DRY) and No Bro-
ken Windows, maxims such as these are key to transferring
expertise.
To the novice, this is a recipe. What do I test? All the setter and
getter methods? Simple print statements? They’ll end up testing
irrelevant things.
But the proficient practitioner knows what can possibly break—or
more correctly, what is likely to break. They have the experience
and the judgment to understand what this maxim means in con-
text. And context, as it turns out, is key to becoming an expert.
Proficient practitioners have enough experience that they know—
from experience—what’s likely to happen next; and when it doesn’t
work out that way, they know what needs to change. It becomes
apparent to them which plans need to be discarded and
what needs
to be done instead.
Similarly, software Patterns (as espoused in Design Patterns: Ele-
ments of Reusable Object-Oriented Software [GHJV95], also known
as the Gang of Four book) can be effectively applied by proficient-
level practitioners (but not necessarily at lower skill levels; see the
sidebar on the next page).
Now we’re getting somewhere. Proficient practitioners can take full
advantage of the reflection and feedback that is core to agile meth-
ods. This is a big leap from the earlier stages; someone at the profi-
cient stage is much more like a junior expert than a really advanced
competent.
Report erratum
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
this copy is (P2.0 printing, January 2009)
THE FIVE DREYFUS MODEL STAGES
36
Misapplied Patterns and Fragile Methods
As you may realize by now, some of the most exciting new
movements in the software development community are
targeted at proficient and expert developers.
Agile development relies on feedback; in fact, my defini-
tion of agile development from Practices of an Agile Devel-
oper: Working in the Real World [SH06] says this: “Agile
development uses feedback to make constant adjust-
ments in a highly collaborative environment.” But being
able to self-correct based on previous performance is pos-
sible only at the higher skill levels.
Advanced beginners and competent practitioners often
confuse software design patterns with recipes, sometimes
with disastrous results. For instance, I once knew a devel-
oper on a project who had just been exposed to the Gang
of Four (GoF) book. In his enthusiasm, he wanted to start
using design patterns. All of them. At once. In a small piece
of report-writing code.
He managed to jam in about seventeen of the twenty-
three GoF patterns into this hapless piece of code before
someone noticed.
Stage 5: Expert
Finally, at the fifth stage, we come to the end of the line: the expert.
Experts are the primary sources of knowledge and
information in any field. They are the ones who con-
tinually look for better methods and better ways of
doing things. They have a vast body of experience that they can tap
into and apply in just the right context. These are the folks who
write the books, write the articles, and do the lecture circuit. These
are the modern wizards.
Statistically, there aren’t very many experts—probably something
on the order of 1 to 5 percent of the population.6
6.
See Standards for Online Communication [HS97].
Report erratum
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
this copy is (P2.0 printing, January 2009)
DREYFUS AT WORK: HERDING RACEHORSES AND RACING SHEEP
37
Experts work from intuition, not from rea-
son. This has some very interesting rami- Experts work from
fications and raises some key questions— intuition.
what is intuition, anyway? (We’ll delve
more into the details of intuition throughout the book.)
Although experts can be amazingly intuitive—to the point that it
looks like magic to the rest of us—they may be completely inartic-
ulate as to how they arrived at a conclusion. They genuinely don’t
know; it just “felt right.”
For instance, suppose a physician looks in at a patient. At a glance,
the doctor says, “I think this patient has Blosen-Platt syndrome;
better run these tests.” The staff runs the tests, and indeed, the
doctor is correct. How did she know? Well, you could ask, but the
doctor may well reply with “He didn’t look right.”
Indeed, the patient just didn’t look “right.” Somehow, in the vast
array of experiences, distilled judgment, memories, and all the rest
of the mental effluvia in the doctor’s brain, a particular combina-
tion of subtle clues in the patient came together and suggested a
diagnosis. Maybe it was the skin pallor or the way the patient was
slumped over—who knows?
The expert does. The expert knows the difference between irrele-
vant details and the very important details, perhaps not on a con-
scious level, but the expert knows which details to focus on and
which details can be safely ignored. The expert is very good at tar-
geted, focused pattern matching.
2.3 Dreyfus at Work: Herding Racehorses and Racing Sheep
Now that we’ve looked at the Dreyfus model in detail, let’s see how
to apply the Dreyfus lessons at work. In software development at
least, it turns out that we tend to apply them pretty poorly.
Experts aren’t perfect. They can make mistakes just like anyone
else, they are subject to the same cognitive and other biases that
we’ll look at later (in Chapter 5, Debug Your Mind, on page 124),
and they will also likely disagree with one another on topics within
their field.
But worse than that, by misunderstanding the Dreyfus model, we
can rob them of their expertise. It’s actually easy to derail an expert
Report erratum
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
this copy is (P2.0 printing, January 2009)
DREYFUS AT WORK: HERDING RACEHORSES AND RACING SHEEP
38
Unskilled and Unaware of It
When you are not very skilled in some area, you are more
likely to think you’re actually pretty expert at it.
In the paper “Unskilled and Unaware of It: How Difficulties
in Recognizing One’s Own Incompetence Lead to Inflated
Self-Assessments” [KD99], psychologists Kruger and Dun-
ning relate the unfortunate story of a would-be thief who
robbed a bank in broad daylight. He was incredulous at
his prompt arrest, because he was under the impression
that wearing lemon juice on your face would make you
invisible to security cameras.
The “lemon juice man” never suspected that his hypoth-
esis was, er, suspect. This lack of accurate self-assessment
is referred to as second-order incompetence, that is, the
condition of being unskilled and unaware of it.
This condition is a huge problem in software development,
because many programmers and managers aren’t aware
that better methods and practices even exist. I’ve met
many younger programmers (one to five years of expe-
rience) who never have been on a successful project.
They have already succumbed to the notion that a normal
project should be painful and should fail.
Charles Darwin pegged it when he said, “Ignorance more
frequently begets confidence than does knowledge.”
The converse seems to be true as well; once you truly
become an expert, you become painfully aware of just
how little you really know.
Report erratum
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
this copy is (P2.0 printing, January 2009)
<
br /> DREYFUS AT WORK: HERDING RACEHORSES AND RACING SHEEP
39
and ruin their performance. All you have to do is force them to
follow the rules.
In one of the Dreyfus studies, the
researchers did exactly that. They took Rules ruin experts.
seasoned airline pilots and had them draw
up a set of rules for the novices, representing their best practices.
They did, and the novices were able to improve their performance
based on those rules.
But then they made the experts follow their own rules.
It degraded their measured performance significantly.7
This has ramifications for teamwork as well. Consider any devel-
opment methodology or corporate culture that dictates iron-clad
rules. What impact will that have on the experts in the team? It
will drag their performance down to the level of the novice. You
lose all competitive advantage of their expertise.
But the software industry as a whole tries to “ruin” experts in this
fashion all the time. You might say that we’re trying to herd race-
horses. That’s not how you get a good return on investment in a
racehorse; you need to let them run.8
Intuition is the tool of the expert in all fields, but organizations
tend to discount it because they mistakenly feel that intuition “isn’t
scientific” or “isn’t repeatable.” So, we tend to throw out the baby
with the bathwater and don’t listen to the experts to whom we pay
so much.
Conversely, we also tend to take novices and throw
them in the deep end of the development pool—far
over their heads. You might say we’re trying to race
sheep, in this case. Again, it’s not an effective way to use novices.
They need to be “herded,” that is, given unambiguous direction,
quick successes, and so on. Agile development is a very effective
tool, but it won’t work on a team composed solely of novices and
advanced beginners.
But forces in the industry conspire against us in both directions.
A misguided sense of political correctness dictates that we treat
7.
Cited in The Scope, Limits, and Training Implications of Three Models of Aircraft Pilot Emergency Response Behavior [DD79].
8.
Like thoroughbreds, not mustangs.
Report erratum
Prepared exclusively for Jose Luis Loya
gggggggggggggggg
this copy is (P2.0 printing, January 2009)
DREYFUS AT WORK: HERDING RACEHORSES AND RACING SHEEP
Pragmatic Thinking and Learning Page 4