|
Red Squirrel Reflections
Dave Hoover explores the psychology of software development
|
|
Wed, 15 Jun 2005Liz Keogh on Resisting the Promotion Liz weighed in with her thoughts on Resist the Promotion, suggesting a new pattern Step On Up. I like the idea, and while it could be described as a pattern of software craftsmanship, it's not a pattern for apprentices. But let me defer that issue for now. My assertion might make more sense after I address the concept of apprenticeship. (see below)Liz: "Dave says that he's aiming his patterns at new programmers, but I've found that a great deal of them are applicable to where I am in my career."When I started writing the apprenticeship patterns, I was explicit with myself about the target audience: novice programmers interested in software craftsmanship. I received feedback early on from my brother (a user experience designer at Microsoft) that some of the patterns could be made more abstract because they were applicable outside of the domain of software craftsmanship. Since then, I've had programmers with more than 15 years of experience tell me that they found the patterns relevant. While this feedback is encouraging, we are going to continue to keep our context grounded in novice programmers. Liz: "I don't feel as though I've finished my apprenticeship yet, despite having over seven years of industry experience.According to Pete McBreen, "An apprenticeship will last at least five years" (Software Craftsmanship, p. 102). The context of Pete's statement implied that the apprenticeship followed the ideals set out in his book. In other words, apprentices work on a small team of craftsmen, consisting of other apprentices, a few journeymen, and a master. It's safe to say that most of us didn't have the benefit of such an environment during the first five years of our careers, nor for any 5 year stretches of our careers. So it's not surprising that Liz's apprenticeship continues, as does mine. Liz: "I accept that it's important to understand the technical aspects of the job in depth, and therefore resisting a promotion is important, but I feel it's equally important to recognise the point at which you as a developer can move on to help facilitate the process which turns ideas into reality."True, but one must wait until your apprenticeship is over. Resist the Promotion is written for apprentices because it is during apprenticeship that a craftsman's knowledge is most transient. A journeyman or a master might be able to maintain their craftsmanship for a season when they've found it appropriate to Step On Up, but an apprentice will lose his expertise much more quickly. Liz: "Apprenticeship has to be a life-long pursuit; a journey towards an unreachable destination, but an important journey nontheless."Liz is confusing apprenticeship with mastery. For the purposes of the apprenticeship patterns, I am basing my understanding of these concepts on Software Craftsmanship by Pete McBreen and Mastery by George Leonard. While an apprenticeship does, in fact, have an ending, the path to mastery does not. Although we haven't yet come up with a clear distinction between apprentice and journeyman, we are operating under the assumption that they are two distinct stages of the software craftsman. In my opinion, what Liz is describing is mastery, not apprenticeship. Liz: "Dave and Pat, if you read this; I'd be interested to know if this makes any sense to you. From my point of view, you're masters. Do you consider yourselves to have finished your apprenticeships yet?"I don't understand how you could think either Pat or I are masters. You've never worked with us. And no, I have not yet finished my apprenticeship. I've been programming for less than five years. Update: Liz, I definitely was not annoyed with you, no apology necessary. I appreciate you and Pat posting on this topic because it's forcing me to clarify the pattern. It's exactly what I needed and I hope that you'll continue to comment, critique, and suggest alternatives. Pardon the tone of the blog entry, it's probably the outcome of me trying to do too many things at once. |