Pragmatic Thinking and Learning

Home > Other > Pragmatic Thinking and Learning > Page 6
Pragmatic Thinking and Learning Page 6

by The Pragmatic Programmers


  required to play jazz, but you have to play it in order to

  get the “feel.” The famous trumpet player and vocalist Louis

  “Satchmo” Armstrong said of jazz, “Man, if ya gotta ask,

  you’ll never know.”

  There’s no expertise without experience, and there’s no

  substitute for experience—but we can work to make the

  experience you have more efficient and more effective.

  Trumpeter Clark Terry used to tell students the secret to learning

  music was to go through three phases:

  • Imitate

  • Assimilate

  • Innovate

  That is, first you imitate existing practice and then slowly assimi-

  late the tacit knowledge and experience over time. Finally you’ll be

  in a position to go beyond imitation and innovate. This echoes the

  cycle of training in the martial arts known as Shu Ha Ri.

  In the Shu phase, the student copies the techniques as taught—

  from a single instructor—without modifications. In the Ha stage,

  the student must reflect on the meaning and purpose and come to

  a deeper understanding. Ri means to go beyond or transcend; no

  longer a student, the practitioner now offers original thought.

  So, among other things, we need to look at ways to keep as much

  existing expertise as we can in the project itself; none of this pro-

  gression will help if practitioners don’t stay in the field.

  Keeping Expertise in Practice

  The nursing profession was losing expertise rapidly; because of the

  limits of pay scales and career development, nurses with high skill

  levels would reach a point in their careers where they were forced to

  move out of direct clinical practice and into areas of management

  or education or move out of the field entirely.

  Report erratum

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  this copy is (P2.0 printing, January 2009)

  USING THE DREYFUS MODEL EFFECTIVELY

  49

  This largely remains the case in software development as well. Pro-

  grammers (aka “coders”) are paid only so much; salespeople, con-

  sultants, upper management, and so on, might be compensated

  more than twice the amount of the best programmer on a team.

  Companies need to take a much closer, much more informed look

  at the value that these star developers bring to an organization.

  For instance, many project teams use

  a sports metaphor to describe positive Winners don’t carry

  aspects of teamwork, a common goal, and losers.

  so on. But in reality, our idealized view

  of teamwork doesn’t match what really happens on professional

  sports teams.

  Two men may both play the position of pitcher for a baseball team,

  yet one may earn $25 million a year, and the other may earn only

  $50,000. The question isn’t the position they play, or even their

  years of experience; the question is, what is the value they bring to

  the organization?

  An article by Geoffrey Colvin16 expands on this idea by noting that

  real teams have stars: not everyone on the team is a star; some are

  rookies (novices and advanced beginners), and some are merely

  competent. Rookies move up the ladder, but winners don’t carry

  losers—losers get cut from the team. Finally, he notes that the top

  2 percent isn’t considered world-class. The top 0.2 percent is.

  And it’s not just high-pressure sports teams; even churches recog-

  nize difference in talent and try to use it effectively. Recently I was

  shown a national church’s newsletter that offered advice on how

  to grow and maintain a music program. Their advice sounds very

  familiar:

  • A group is only as good as its weakest link. Put the best per-

  formers together to perform for the main service, and create

  “farm teams” for other services.

  • Keep a steady group with the same performers every week.

  You want the group to jell; rotating players in and out is

  counterproductive.

  16. Fortune Magazine, March 18, 2002, p.50.

  Report erratum

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  this copy is (P2.0 printing, January 2009)

  BEWARE THE TOOL TRAP

  50

  • Timing is everything: the drummer (for a band) or accompa-

  nist (for choral groups) has to be solid. Better to use a prere-

  corded accompaniment than a flaky drummer or organist.

  • Make your group a safe place for talented musicians, and

  watch what happens.

  That’s exactly the same thing you want on a software team.17 This

  idea of providing the right environment for skilled developers is

  critical.

  Given that the highest-skilled developers are orders of magnitude

  more productive than the least-skilled developers, the current com-

  mon salary structures for developers is simply inadequate. Like the

  nursing profession years ago, we continually face the risk of losing

  a critical mass of expertise to management, competitors, or other

  fields.

  This tendency is made worse by the recent increases in outsourcing

  and offshoring development to cheaper countries. It’s an unfortu-

  nate development in that it further cements the idea in people’s

  minds that coding is just a mechanical activity and can be sent

  away to the lowest bidder. It doesn’t quite work that way, of course.

  As in the nursing profession, experts at coding must continue to

  code and find a meaningful and rewarding career there. Setting a

  pay scale and a career ladder that reflects a top coder’s value to the

  organization is the first step toward making this a reality.

  TIP 5

  Keep practicing in order to remain expert.

  2.5 Beware the Tool Trap

  There has been much written on the role of tools, formal models,

  modeling, and so on, in software development. Many people claim

  that UML and model-driven architecture (MDA) are the future, just

  17. The drummer analogy is stretching it a bit, but I do talk more about the rhythm of development projects in Practices of an Agile Developer: Working in the Real World [SH06].

  Report erratum

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  this copy is (P2.0 printing, January 2009)

  BEWARE THE TOOL TRAP

  51

  as many people claimed that RUP and CMM process models were

  the salvation of the industry.

  But as with all silver-bullet scenarios, people soon found out that

  it just ain’t that easy. Although these tools and models have their

  place and can be useful in the right environments, none of them

  has become the hoped-for universal panacea. Worse yet, the misap-

  plication of these approaches has probably done far more damage

  than good.

  Interestingly enough, the nursing profes-

  sion had similar problems with regard to The model is a tool, not

  the use of tools and formal models. They a mirror.

  had fallen into the same trap that many

  architects and designers fall for: forgetting that the model is a tool,

  not a mirror.
>
  Rules cannot tell you the most relevant activities to perform in a

  given situation or the correct path to take. They are at best “train-

  ing wheels”—helpful to get started but limiting and actively detri-

  mental to performance later.

  Dr. Deborah Gordon contributed a chapter to Benner’s book, in

  which she outlines some of the dangers of overreliance on formal

  models for the nursing profession. I’ve reinterpreted her sentiments

  with the particulars of our profession, but even the original version

  will sound pretty familiar to you.

  Confusing the model with reality

  A model is not reality, but it’s easy to confuse the two.

  There’s the old story of the young project manager, where his

  senior programmer announced she was pregnant and going to

  deliver during the project, and he protested that this “wasn’t

  on the project plan.”

  Devaluing traits that cannot be formalized

  Good problem-solving skills are critical to our jobs, but prob-

  lem solving is a very hard thing to formalize. For instance,

  how long can you just sit and think about a problem? Ten

  minutes? A day? A week? You can’t put creativity and inven-

  tion on a time clock, and you can’t prescribe a particular tech-

  nique or set of techniques. Even though you want these traits

  Report erratum

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  this copy is (P2.0 printing, January 2009)

  BEWARE THE TOOL TRAP

  52

  on your team, you may find that management will stop valu-

  ing them simply because they cannot be formalized.

  Legislating behavior that contradicts individual autonomy

  You don’t want a bunch of monkeys banging on typewriters

  to churn out code. You want thinking, responsible develop-

  ers. Overreliance on formal models will tend to reward herd

  behavior and devalue individual creativity.18

  Alienating experienced practitioners in favor of novices

  This is a particularly dangerous side effect. By targeting your

  methodology to novices, you will create a poor working envi-

  ronment for the experienced team members, and they’ll sim-

  ply leave your team and/or organization.

  Spelling out too much detail

  Spelling out the particulars in too much detail can be over-

  whelming. This leads to a problem called infinite regress: as

  soon as you make one set of assumptions explicit, you’ve

  exposed the next level of assumptions that you must now

  address. And so on, and so on.

  Oversimplification of complex situations

  Early proponents of the Rational Unified Process (and some

  recent ones) cling to the notion that all you have to do is “just

  follow the process.” Some advocates of Extreme Programming

  insist all you need to do is “just follow these twelve—no wait,

  maybe thirteen—practices” and everything will work out. Nei-

  ther camp is correct. Every project, every situation, is more

  complex than that. Any time someone starts a sentence with

  “All you need to do is...” or “Just do this...,” the odds are they

  are wrong.

  Demand for excessive conformity

  The same standard may not always apply equally in all situ-

  ations. What worked great on your last project may be a dis-

  aster on this one. If Bob and Alice are hugely productive with

  Eclipse, it might wreck Carol and Ted. They prefer IntelliJ or

  TextMate or vi.19

  18. Of course, there’s a balance here—you do not want a “cowboy coder” who ignores the team and common sense to strike out on his own.

  19. OK, I have to confess that over the course of time, I wrote this book using vi, XEmacs in vi mode, and TextMate.

  Report erratum

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  this copy is (P2.0 printing, January 2009)

  CONSIDER THE CONTEXT, AGAIN

  53

  Insensitivity to contextual nuances

  Formal methods are geared to the typical, not the particu-

  lar. But when does the “typical” really ever happen? Context

  is critical to expert performance, and formal methods tend

  to lose any nuances of context in their formulations (they

  have to; otherwise, it would take thousands of pages just to

  describe how to get coffee in the morning).

  Confusion between following rules and exercising judgment

  When is it OK to break the rules? All the time? Never? Some-

  where in between? How do you know?

  Mystification

  Speech becomes so sloganized that it becomes trivial and

  eventually loses meaning entirely (for example, “We’re a

  customer-focused organization!”). Agile methods are fast los-

  ing effectiveness because of this very problem.

  Formal methods have other advantages and uses but are not help-

  ful in achieving these goals. Although it may be advantageous

  to establish baseline rules for the lower skill levels, even then

  rules are no substitute for judgment. As ability to judge increases,

  reliance on rules must be relaxed—along with any rigid institu-

  tional enforcement.

  TIP 6

  Avoid formal methods if you need creativity, intuition, or

  inventiveness.

  Don’t succumb to the false authority of a tool or a model. There is

  no substitute for thinking.

  2.6 Consider the Context, Again

  One of the most important lessons from the Dreyfus model is the

  realization that although the novice needs context-free rules, the

  expert uses context-dependent intuition.

  The man with his pickled fish has set down one truth and has

  recorded in his experience many lies. The fish is not that color, that

  texture, that dead, nor does he smell that way.

  John Steinbeck, The Sea of Cortez

  Report erratum

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  this copy is (P2.0 printing, January 2009)

  CONSIDER THE CONTEXT, AGAIN

  54

  In The Sea of Cortez, Steinbeck muses on the interplay of context

  and truth. You can describe a Mexican Sierra fish in the labora-

  tory. All you have to do is “open an evil smelling jar, remove a stiff

  colorless fish from formalin solution, count the spines, and write

  the truth ‘D. XVII-l5-IX.”’ That’s a scientific truth, but it’s devoid of

  context. It’s not the same as the living fish, “its colors pulsing and

  tail beating in the air.” The living fish, in the context of its habitat,

  is a fundamentally different reality from the preserved fish in the

  jar in the lab. Context matters.

  You may have noticed that the high-priced consultant’s favorite

  answer is “It depends.” They’re right, of course. Their analysis

  depends on a great many things—all those critical details that the

  expert knows to look for, while ignoring the irrelevant details. Con-

  text matters.

  You might ask the expert to open a locked door. Fair

  enough, but consider the difference context might

  make: opening the door to rescue the baby on the

  o
ther side in a burning house is quite a different

  exercise than picking the lock and leaving no traces

  at the Watergate Hotel, for instance. Context matters.20

  There is an inherent danger in decontext-

  Beware decontext-

  ualized objectivity, that is, in trying to be

  ualized objectivity.

  objective about something after taking it

  out of its context. For instance, in the pre-

  vious Steinbeck quote, a preserved fish—perhaps dissected for

  study—is quite a different thing from the silvery flashing beast glid-

  ing though a cresting wave.

  For the breaking-and-entering example, “I want to open this locked

  door” really isn’t sufficient. What’s the context? Why does the door

  need to be opened? Is it appropriate to use an axe, a chainsaw, or

  lock-picking tools, or can we just go around back and use the other

  door?

  In systems thinking, as in object-oriented programming, it’s often

  the relationships between things that are interesting, not the things

  themselves. These relationships help form the context that makes

  all the difference.

  20. For more on expertise in lock picking, see How to Open Locks with Improvised Tools [Con01].

  Report erratum

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  this copy is (P2.0 printing, January 2009)

  DAY-TO-DAY DREYFUS

  55

  Context matters, but the lower several stages on the Dreyfus model

  aren’t skilled enough to know it. So once again, we have to look at

  ways of climbing the Dreyfus ladder.

  2.7 Day-to-Day Dreyfus

  Well, this has been all fun and fascinating, but what good is the

  Dreyfus model really? Armed with knowledge of it, what can you

  do with it? How can you use this to your advantage?

  First, remember that one size does not fit

  all, either for yourself or for others. As you One size does not fit all.

  can see from the model, your needs will

  be different depending on what level you are on. What you need for

  your own learning and personal growth will change over time. And

  of course, how you listen and react to others on the team needs to

  take into account their own skill levels as well.

  Novices need quick successes and context-free rules. You can’t

  expect them to be able to handle novel situations on their own.

  Given a problem space, they’ll stop to consider everything, whether

  it’s relevant or not. They don’t see themselves as part of the sys-

 

‹ Prev