I was flipping through Spolsky’s Joel on Software today and, perhaps because I spent the morning working with our college-wide curriculum and some of our documentation of its outcomes, this passage jumped out at me:
So why don’t people write specs? It’s not to save time, because it doesn’t, and I think most coders recognize this. […] I think it’s because so many people don’t like to write. Staring at a blank screen is horribly frustrating. Personally, I overcame my fear of writing by taking a class in college that required a 3-5 page essay once a week. Writing is a muscle. The more you write, the more you’ll be able to write. If you need to write specs and you can’t, start a journal, create a weblog, take a creative writing class, or just write a nice letter to every relative and college roommate you’ve blown off for the last 4 years. Anything that involves putting words down on paper will improve your spec writing skills. [from Painless Functional Specifications Part 1]
Yes, yes, yes! There’s no indication of the content of the class Spolsky is referring to, but it wouldn’t be surprising if it were a humanities course that he took to meet a gen ed requirement. This isn’t the only value of technical students taking courses outside their major, but the likely increase in practice writing is a great one. And I love this example of someone reflecting back on the benefits of a course that probably wasn’t the motivation for signing up for the course, and perhaps wasn’t even recognized at the time.
It also got me thinking about a related question: why don’t people read specs? I distribute programming assignments that resemble specs, and my lab tutors have learned that one of the first steps to helping a struggling student is to get them to go back and actually read what is in the specification. If you don’t like to read, digesting a written description of what you’re being asked to do will be painful. But you can similarly say that reading (particularly reading carefully) is a muscle that requires exercise. So, if reading well requires practicing reading well, perhaps we should be cautious of trends towards assigning less reading and more short excerpts, web links, and videos. In addition to conveying the content within the text, it might well help students do better on assignments that on the surface don’t have anything to do with reading.