metaphors of software development

A lot of OOPSLA this year focused on metaphors of software development. Peter Turchi spoke of the creative process in terms of cartography, Mark Bernstein offered an idealized vision of software development as craft, and Frederick P. Brooks revisited the age-old comparison of software development and physical engineering disciplines.

Mark Bernstein's talk on NeoVictorian Computing frames software development as craft: customized, individually crafted software in the face of the massively distributed packages of the same software that everyone uses. Bernstein advocates that software developers should sign their work, just as a painter signs his/her paintings. It's an idea that really resonated with me: if software is a personal expression of its creator, which I believe it is, "signing" it is the creator's timeless mark on the craft. It's lovely to think of software this way, but I have trouble thinking of pieces of my own work that might have this quality of personal expression. More often, my work is just some code that I cranked out in a somewhat robotic fashion in order to solve a particular problem that doesn't really interest me personally. I suppose we all seek to find work that allows for creativity and personal expression while still being able to pay the bills.

Frederick P. Brooks talked about the limits of comparison between software development and physical engineering disciplines: the design of a bridge cannot realistically be changed after construction has begun, but software is inherently more malleable. So, when we talk about "building software," the physical construction metaphor really doesn't go very far. There are clear advantages to exploiting software's malleability in the construction phase. This is something that Greg brought up a few weeks ago.

Share:
  • Twitter
  • del.icio.us
  • Digg
  • Google Bookmarks
  • FriendFeed
  • Facebook

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*