Tuesday, March 17, 2009

Classical Music Is Like Customizing Off the Shelf Software

Stella has a confession to make: she is a bad programmer. I understand the basic ideas (if then else, loop until, blah blah blah) and I can get stuff done, but I don't think it's my default setting. My strength has always been in two key areas:

- Understanding what it is that people are actually trying to do with computers; and

- Making systems get as close to that outcome as is possible.

Sometimes I get to make the system from scratch, and the outcome is pretty darn close to what my customers probably wanted to do. Sometimes I have to jolly other developers along and persuade them that the thing that customer wants to do is actually significant and worthy of their time and attention. But mostly lately I figure out how to get what we want out of third party products. And it occurred to me today that this is a lot like playing classical music.

When you play classical music, you can complain about how unplayable it is, but it won't do you any good. The composer is dead (usually), so it's not going to change. For all your complaining the music is what it is. Your job is simple: make it as close to the composer's vision as you possibly can. You need to play it well so the audience can make sense of it and enjoy it. You need to master the intricacies of the piece so you can perform it fluidly and make it sound easy. Easy!

That's your job when you're working with third party products: master the stuff you need to make your use of the product effortless. Understand the underlying structures and philosophies and make a mental model that bridges that view of the world with your customers' view of the world. Because most of the time you're dealing with a vendor who doesn't care that much about your perspective. Unless you're their only customer, they aren't going to respond to your every whinge and whine. You have one simple task: Make it work!

No comments: