Practice Practice Practice
From Apprentice to Journeyman : Dave Hoover : Home
Comments


Context: You want to get better at the things you do and you want to develop Concrete Skills in new areas. The performance of your daily programming activities does not give you room to learn by making mistakes. It's as if you're always on-stage.

Solution: Take the time to practice your craft. Time without interruptions when you can be comfortable making mistakes.

"Pragmatic" Dave Thomas borrowed the concept of code katas from martial arts. A kata is a coreographed sequence of movements provided by a master to help his students internalize the fundamentals of the art. Katas are performed without opponents, emphasizing fluidity, power, speed, and control. Dave Thomas posts kata in his blog, encouraging craftsmen to use the kata to practice:

"In software we do our practicing on the job, and that’s why we make mistakes on the job. We need to find ways of splitting the practice from the profession. We need practice sessions."

Laurent Bossavit and a group of software developers in Paris took the martial arts metaphor a step further and created a coder's dojo, a place where people could meet regularly to publicly perform code katas. "Uncle" Bob Martin, inspired by the Paris dojo, now posts katas to his blog, espousing the merits of practicing the craft:

"Beginners learn by doing, not through lecture. They practice and practice, and practice. ... By repeating and repeating these same exercises, we sharpen our skills, we train our bodies and our minds to respond to the disciplines of TDD and simple design. We wire, and rewire, and rewire, and rewire our neurons to react in the right way."

Obviously code kata are just one of the ways to Practice Practice Practice (see Breakable Toys). The key to this pattern is to carve out time to develop software in a stress-free and playful environment: no release dates, no production issues, no interruptions. As Dave Thomas says of practicing, "It has to be acceptable to relax, because if you aren’t relaxed you’re not going to learn from the practice."

Short feedback loops need to be incorporated into your practice sessions. While practice is good in theory, if you're not getting periodic feedback you're probably developing bad habits. This is the beauty of the coder's dojo: public performance within the context of a tight-knit community of craftsmen. This need for constant feedback lessens as you grow as a craftsman and is gradually replaced by your duty to take on the role of SeniorApprentice, modelling good habits by periodically practicing with less experienced developers.

"The people we know as masters don't devote themselves to their particular skill just to get better at it. The truth is, they love to practice -- and because of this they do get better. And then to complete the circle, the better they get the more they enjoy performing the basic moves over and over again." Mastery, George Leonard, p. 75


Comments
Name
Email
(Kept private)
URL
Comment
(No HTML)


Home : Dave Hoover : From Apprentice to Journeyman Copyright © 2001-2012 Red Squirrel Design, Inc. All Rights Reserved.