On being prolific


There’s a post over on Coding Horror with the title Quantity Always Trumps Quality that gives an example of a circumstance in which promoting output volume (quantity) resulted in better quality than promoting quality for itself after a set number of days.

That circumstance is an individual (or group) in a learning environment.

This seemed initially like a fairly tame and uncomplicated message for Jeff to put forward. Judging from some of the comments he’s received though, apparently it wasn’t, with a whole host of people taking exception to what he posted.

As I was reading those comments I had a few ideas running through my head ranging from Dewey to Feldenkrais, trying to think of how to word an argument for why it’s good advice. In the end though, I don’t think anything overly complicated is necessary. Only the following:

  • In order to learn a new skill, practise is essential. There are many ways to practise and often related activities, including thinking about practise, count.

  • The individual needs to be increasingly reflective as they practise. Not only because it helps improve the skill being practised but also because it helps improve the skill of improving.

  • It is conducive to improving overall output quality if the teacher encourages volume of practise. A beginner is not really in any position to be theorising about how to produce work of the highest quality when they have no experience of the activity they are theorising about. Firstly, the beginner is typically unaware of how much they don’t know, so their theorising can be misdirected. Secondly, even if the beginner manages to find some really good ideas about how to produce quality work, without sufficient practise they will typically be incapable of actually producing it.

The question is how to achieve quality, not about whether quality is important or whether that is what the student should move towards (surely those are not debated?) The question is simply about how to get the student there. The answer put forward, which I think is the correct one, is to encourage the individual to practise frequently, make mistakes, learn and improve.

As an aside - Steve Yegge has an old post entitled Practicing Programming which is worth a read.

As for calling software development an art, I am perfectly comfortable with that. It was good enough for Donald Knuth and there are many reasons why I think it’s still good enough today. I will, however, take the liberty of being elliptical and not detail any of them.



CoffeeScript in Action


CoffeeScript in Action book cover

I'm the author. Get it from Manning.