|
Red Squirrel Reflections
Dave Hoover explores the psychology of software development
|
|
Thu, 05 May 2005Apprenticeship Pattern: Accurate Self-Assessment "For everyone who exalts himself will be humbled, and he who humbles himself will be exalted." --Luke 14:11If the metaphor of software craftsmanship is to leak out into the consciousness of the software development industry, individuals need a means of assessing where they are on the path from apprentice to journeyman to master craftsman. I can't imagine an objective way to handle this assessment. For me, and for many other aspiring craftsmen, it is a gut feeling, an evolving self-perception that grows more distinct as we walk The Long Road to mastery. For the few fortunate developers that work under the formal supervision of master craftsmen, maintaining an Accurate Self-Assessment is as simple as sitting down periodically with their mentor and reviewing their progress. The rest of us must pull our mentoring out of books, blogs, online communities, local user groups, peers, and from project-to-project. Maintaining an Accurate Self-Assessment becomes a much more proactive and rigorous activity. Some of the patterns that facilitate this activity include Be the Worst, Expose your Ignorance, Find your Master, and Kindred Spirits. Many apprentices find that as they walk the path toward journeyman they begin surpassing their more experienced cohorts. For some, they will eventually find themselves in leadership positions with impressive words in their titles such as architect, senior, and engineer. This phenomenon is a threat an Accurate Self-Assessment. Software craftsmen, particularly apprentices, must be careful who they compare themselves to: a craftsman's progress should be assessed relative to master craftsmen, not the industry average. The implications of this is that there are team leads, architects, and senior developers who still consider themselves apprentices. Maintaining an Accurate Self-Assessment allows apprentices to Ignore their Title and continue on The Long Road. Humility is at the heart of apprenticeship, specifically this pattern. The early successes that many software developers experience can destroy the humble attitude that a successful apprenticeship requires. Jerry Weinberg describes the road to mastery as plateaus, ravines, and steep inclines. As the apprentice reaches new plateaus she must maintain her humility, it is far too easy to become impressed with our ever-growing abilities. From Becoming a Technical Leader... "I can still remember how splendid it felt to be the best IBM 650 programmer in San Francisco, more than a quarter-century ago. This is the typical feeling in the middle of the plateau stage -- smug satisfaction." p. 42 [/craftsmanship] permanent link Buried in Apprentice Stories and Laughter I have been encouraged and enriched by the many people who have collaborated with me thus far on the apprenticeship pattern language. I've had an excellent response from several people within ThoughtWorks as well as other craftsmen across North America and Europe (I'd really love to hear from craftsmen on other continents). People like Marten Gustafson, Dave Astels, Ken Auer, and Adewale Oshineye. Much thanks to everyone. It's starting to hit me how much work lies ahead.I'm up to my eyeballs in stories to harvest, but I thought I'd share one snippet from Matt Savage: "I sometimes wonder if I'll ever stop laughing at code I produced 6 months ago."I've had this experience more times than I can remember. Apprentices should experience this laughter regularly. What I've noticed since joining ThoughtWorks is that the laughter cycles have shortened. I was laughing at the code I wrote 3 months ago within 4 months of joining ThoughtWorks. This laughter metric is an excellent indicator of learning, of progress on the path from apprentice to journeyman. |