Diane’s comment on my previous post is bang on (groan…). With the exception of a couple of sign changes, “Guns don’t…” is an excellent analogy for what I’m talking about.
While I was ruminating on how to flesh out the analogy, Larry stepped in and got to the point. There’s a growing “user-centric” movement in software development, and for those in the loop, Hugh’s “…it’s what the user does” cartoon is all about the subtext: Software doesn’t exist in a vacuum.
It’s too easy for people who spend all their time building software to think that the software has some sort of intrinsic value. Now to some extent, it can; a well crafted algorithm is beautiful to those who can read it. However, just as with some modern art and music, the audience that can appreciate the beauty is pretty small. For the majority of us who toil in ones and zeros our intended audience isn’t trained in the theory of computation, and there’s no reason they should be.
I’ll stretch the music analogy a little farther, and hope it doesn’t break. Most music isn’t written to be appreciated by professors of musicology, it’s written to be danced to, or to enhance the drama of a movie, or some other relatively mundane goal. Similarly, almost all software is created to be used: To entertain, to educate, or to enable.
And this is where the “Guns don’t…” analogy fits (with those sign changes I mentioned). Of course it’s people who do the killing. However, a firearm is a very effective enabling tool. If we have a goal to reduce people-killing-people, taking away that enabling tool may be a very effective approach. With software, of course it’s about the user. However, software is typically a very poor enabling tool. If we have a goal to improve people-being-entertained-or-educated-or-enabled, we need to make good tools to support said people.