June 16, 2004

Test Driven

One of the biggest factors in making Tinderbox possible, and practical, has been the development of test driven development.

Professionals don't like to talk much about the practice of programming. It used to be fashionable to say that you were an analyst or an architect or whatnot, not just a programmer; I remember with Ian Ritchie won the Turing Award and started his acceptance speech by saying, "I am a programmer", and this triggered a sudden outburst of surprised applause.

Times change. Tim Bray has a nice discussion of test-driven development and its potential to change programming from a craft to a discipline. He's right: test-driven development a simple change, it's not intellectually or mathematically complicated, and it's transformed the way I build software and -- more importantly -- the sorts of things we can make software do. In the past, new systems were malleable and exciting but, as they matured and stabilized, they became progressively harder to change and improve. Eventually, they were what they were; you could make small fixes but you couldn't do anything radical without courting disaster. It looks like test-driven development may change that.

Bray thinks this may move software development from an artisan craft to an engineering profession. I'm skeptical:

Arts and Crafts is a growth meme for the new decade.

Test Driven