Walking to campus yesterday for my second day of classes, I was struck by an analogy that I decided to share with my students. I started the class by asking, "Who here plays an instrument?" A little less than half the class raised their hands. Then I asked, "Who is a musician?" Fewer raised their hands. "So, what's the difference?"
I received a great range of answers, which I acknowledged without judging. These included:
- Musicians can compose.
- Musicians can interpret compositions.
- Musicians perform for other people.
- Musicians are part of a culture of musicians.
- Musicians have more skill.
- Musicians spend more time on music.
Then, I posed this rhetorical response, "OK, so what is the difference between a programmer and software craftsman?"
The point was made, I think. We did not dwell on it, but I could see that it planted a potentially useful seed in the students' minds as we begin fifteen weeks of developing new attitudes and practices around software development.
(At the beginning of every semester, I explain to my students what it means to be on time: it means you are seated, attentive, with your laptop and notebook ready. More specifically, if you come in right before the "bell," you're late, because we start on the hour. I often contextualize this policy by explaining that I am a musician, and musicians know that if you're not early, you're late. This always gets some smiles and nods from students who know how this goes. I'm sure this was an inspiration for my coming up with the analogy.)