A very interesting talk titled “Developing Expertise: Herding Racehorses, Racing Sheep” that discusses managing people on software teams. Most of the information is general enough to be useful to anybody who works in or manages a team.
The speaker – Dave Thomas - uses the Dreyfus model of skill acquisition, to help explain the different types of people that make up a team. The first 30 minutes is an introduction to the Dreyfus model and explains the 5 levels of people on teams. The 2nd part of talk – talks about how to use the 5 different levels to help manage not just the people on your teams, but also how you interact with them and others outside your team.
Watch the video of the presentation on InfoQ: Developing Expertise: Herding Racehorses, Racing Sheep
Some of the interesting slides:
What hasn't changed over the years in software engineering: bug rates – because software, hardware, etc have improved, but we are the same humans developing the code.
Know what stage your team members are at. Don't try and use a novice to do the job of an expert and dont make an expert do the job of a novice.
The above slide shows the distribution of people amongst the various Dreyfus levels. The interesting point that Dave makes about this slide is that there is a high number of people that seem to get stuck in level 2. The surprising thing is that this is true for almost all industries. And the reason that Dave believes this is, that at level 3 and above, the person needs to become more independent and begins taking fewer instructions on how to get the job done. This independence brings with it risk. Most people treat their work as a job and not as a passion. People who do not treat their work as a passion will rarely want to take on risk as all they want to do is to do their job and go home; and for this they want to be told what to do. Another reason that Dave points out is that as this chart applies to all fields of work, even many managers fall into this Dreyfus levels. And it follows from the chart that many managers will also be in level 2, which would mean that they would prefer that people who work under them just fall their orders – which would mean that they would encourage people to stay in level 2.
Personally, I think software development is such an enjoyable experience that its sad that more people do not treat it as a passion and treat it simply as a job.
Understand the level at which the person you are working with falls into. Understand what you need for the level you are at for that subject. Use it to force people to treat you as novice when you are a novice and as an expert when you are an expert.
Which jobs will get lost (sent off-shore). Jobs that need people that are at level 1 or level 2 – as they need instruction, not expertise.
What can we do to move up Dreyfus scale?
Certifications are irrelevant (measures knowledge, not how well you understand it or how you apply it to solve problems). Experience in the traditional sense too does not matter – as that just measures years at work (20 years of experience can mean “1 year of experience, repeated 20 times”).
What matters is the “Experience Portfolio”, which is all the knowledge, experience, skills and understanding that you have gathered into your toolbox as you have worked through various problems and situations. This is what moves you from stage 1 novice to a stage 5 expert.
This is what you can do:
Remember: its not your company’s job to train you – IT’S YOURS! (In every other profession – doctors, engineers, etc – have to do keep abreast with the latest changes in their fields and need to know how and when to use the latest advances to do their work)
Remember – the real question here is “how do you improve”.
Remember to “Measure your progress” against the Dreyfus scale.
Blog post by Dave on the “Herding horses, racing sheep” presentation - http://pragdave.pragprog.com/pragdave/2004/04/end_of_the_know.html
Experience Counts! (Wrong!) - http://bit.ly/8dawy
The Dreyfus model