Robert Fripp Speaking Engagements  
Comments on Robert Fripp's Speaking Engagements and Presentations
Contact for Robert Fripp Speaking Engagements
Robert Fripp Spoken Word CDs
Interviews, Articles, Links
Robert Fripp Images
Robert Fripp Videos
Frippicisms from Robert Fripp
Site Map for Robert Fripp Speaks
Home for Robert Fripp Speaking Engagements Website

The Software Artists: Pedagogy and Practic in Software and in Guitar

by Chris McMahon, Saturday, May 31, 2008

Very few people graduating with a college degree in Computer Science or Information Technology are prepared to write production code or to test production software. Companies that hire recent college graduates often have special training for such employees before they may work on actual projects. Joel Spolsky has written extensively about how his company Fog Creek trains young software workers. Publications of the IEEE mention the issue frequently. The well-regarded software consultancy Thoughtworks has "Thoughtworks University", a six-week "boot camp" style training event for new hires hosted in Bangalore. Even the journal CrossTalk: The Journal of Defense Software Engineering says:

It is our view that Computer Science (CS) education is neglecting basic skills, in particular in the areas of programming and formal methods.

The Craft of Software

Besides the mentorship approach Spolsky takes and the "boot camp" approach Thoughtworks takes, Robert C. (Uncle Bob) Martin, Pete McBreen, Dave Hoover, and others have for some time advocated a master/journeyman/apprentice system for teaching software, much like the ancient guild systems. Mr. Hoover in particular reports notable success with this approach. But using 15th century teaching techniques for a 21st century craft seems unlikely to succeed on any reasonable scale without considerable adjustment.

For one thing, both the in-house training systems and the guild systems of pedagogy tend to keep effective practices secret. Knowledge is passed from person to person directly, without involvement from the community.

For another thing, craft alone is not sufficient to produce excellent software or excellent software creators.

Brian Marick has a remarkable weblog post from May 2007 called "Six years later: What the Agile Manifesto left out". In it he cites four values in which software creators should invest: skill; discipline; ease; and joy. Of this list, Marick seems to equate "skill" with Martin's idea of "craft."Ease" and "joy" follow from the practice of skill and discipline. The most remarkable aspect of this essay is that "discipline" is a new idea in the public discourse of software practice.

Martin's idea of "craft" and Marick's idea of "discipline" exactly echo the language of the teaching philosophy of the well-known guitarist Robert Fripp.

Robert Fripp: Craft and Discipline

Those who do not know Robert Fripp's musical work may know him as the creator of the new sounds for Windows Vista. He has been at the forefront of technology in music since the late 1960s. Since 1985 he has been teaching an approach to music and guitar called Guitar Craft. Many of his students, for instance the California Guitar Trio, are quite successful in their own right.

There are sanctioned Guitar Craft programs in Italy, Japan, Mexico, North America, South America, Spain, and the UK.

The two axes of Fripp's teaching methods are Craft and Discipline. Fripp uses these terms in a way very similar to the way that Martin and Marick use them. But unlike Fripp's notable success at teaching music over the last two decades, software has no single successful long-running education project with a consistent philosophy.

While a mature discussion of software craft exists, that discussion has yet to demonstrate any repeatable successes. Martin discusses software craft in conjunction with professionalism, but the milieu in which "professionalism" is exercised is somewhat limited: professionalism for Martin is "...about behavior, attitude, and professional ethics", and that "Writing clean code is a matter of both skill and character."

These are fine and noble sentiments, but ethics and character have little to do with actually creating great software.

Brian Marick, in the same essay where he identifies the four values, explicitly says that "...new Agile teams... are floundering." While his essay identifies the problem, it fails to explain how to exercise skill, discipline, ease, and joy in the service of creating software, except to pronounce that these qualities are necessary.

By contrast, Guitar Craft has thousands of words from Robert Fripp and others on how the interaction of Craft and Discipline are necessary for performing this music on guitar:

The invisible side of craftsmanship is how we conduct ourselves within the process of acquiring craft, and how we act on behalf of the creative impulse expressing itself through music. In time, this becomes a personal discipline. With discipline, we are able to make choices and act upon them. That is, we become effectual in music.

It is notable that when Fripp re-formed the band King Crimson in 1981, they chose to name their new album "Discipline".

Like Martin, Fripp uses the apprentice/journeyman/master metaphor, but adds an additional role of "genius". Each role is delineated in a number of ways:

The apprentice acquires skill.
The craftsman acquires sensitivity.
The master acquires vision.
The genius attains freedom.

The apprentice is noisy.
The craftsman shapes sound.
The master shapes silence.
The genius is silent.
The apprentice practices the craft of craft.
The craftsman practices the art of craft.
The master practices the craft of art.
The genius is artless.

Beyond the four roles, Guitar Craft also recognizes seven levels of accomplishment. The details of the seven levels are not relevant to this discussion, except to point out that the well- delineated roles combined with levels of achievement that correspond to the student's commitment to practicing Guitar Craft provide a well-designed structure for communicating the principles of Guitar Craft not only to the community itself, but also to those outside the community who may be interested in examining the practice of Guitar Craft. Software craft has no such well-defined hierarchies of learning or commitment.

There are of course technical details of Guitar Craft, having to do with posture, tuning, left- and right-hand techniques, etc. etc. Such details are beyond the scope of this paper. Such details, while important when playing the guitar, are not relevant to the discussion of whether software craft can learn from Guitar Craft.

While it is not actually possible (or desirable) to separate the philosophy of Guitar Craft from the actual practice of playing the guitar, there is so much in the written history of Guitar Craft that is provocative for "Software Craft" that mining the Guitar Craft canon for software methodology could be a valuable exercise:

If an apprentice does not hear what a master hears, is then that quality not present in the music? Yes and no. In the world in which the apprentice lives: no.

...if I cannot manage to persuade the members (of the group) of what I see to be the next course of action, how do you expect the group to deal with the expectations of thousands of people. It is not possible.

These are ten important principles for the practice of craft:
Act from principle.
Begin where you are.
Define your aim simply, clearly, briefly.
Establish the possible and move gradually towards the impossible.
Exercise commitment, and all the rules change.
Honor necessity. Honor sufficiency.
Offer no violence.
Suffer cheerfully.
Take our work seriously, but not solemnly.
You have to find a way of recognizing and describing the quality inherent in the music. If you fail to do that, then the piece itself is compromised.

The history of Guitar Craft demonstrates that the ideas of Craft and Discipline together can create a successful international, self- perpetuating teaching and performing regime. And the language today's most skilled and prolific software creators that it seems worthwhile to find out if ideas from Fripp's way of teaching music might translate to the similarly creative process of teaching software.

Posted by Chris McMahon at 1:28 PM

Excerpted from Chris McMahon's Blog - Software testing, scripting, agile development, things in general...

© 2008 Chris McMahon

 

 

A Speaker for All Reasons
527 Hugo Street
San Francisco, CA 94122
US: 800-634-3035
Phone: 415-753-6556
Fax: 415-753-0914
Email: PFripp@ix.netcom.com
 


       © 1996 - 2008 A Speaker For All Reasons. All Rights Reserved.