March 09, 2008
For the past three days Sibylle has had the good fortune to attend a piano master class at a nearby university. The presenter, head of the Yale Piano department, spent an hour with each student, listening to their piece and then helping them to mold it, or improve it in some way. Some of the suggestions are subtle, mere nuances in the sound. Others are more profound reinterpretations of the music. With three students each afternoon, anyone who attended got to partake in nine hours of world class piano theory, practice, and technique.
What is interesting to me is the utter lack of a parallel to the music master class in the programming world. It wouldn't be hard to accomplish; rent a room with a large screen, bring a laptop or three loaded with virtualization software, and one at a time have participants load up their development environment and walk the group through their project. The moderator would then ask questions about the choices, obvious or hidden, in the code base. The group could chime in with thoughts and ideas of their own. Not a code review as conducted by some shops, but a code sharing among interested parties.
A code review, in my mind, while a valuable exercises that all programming shops should employ, is at best a group check that the code nearing completion isn't egregiously out of line with the local standards and expectations. The feedback is internal to the shop, and may have folded into it politics, business constraints, or other artificial factors. A code master class would have some theme (optimization, or refactoring, or human factors, et cetera) and the presenters would be asked to bring examples that fit the theme. The feedback from the master presenter wouldn't be limited to the needs of an individual shop or group. Without the constraints of the local shop arbitrarily limiting the discussion, I think a master class setting would help all participants to increase their knowledge in a more collegial manner.
Unfortunately there is an air of ego that swirls around programming; it is hard to offer up your code for critique by another, much less in front of a group. However, watching Professor Berman coax, coach, and enlighten already accomplished, indeed virtuoso, pianists to find new layers in their music has me convinced that all of us in the technical realm could benefit from the same kind of master class approach to learning.