Software and… Elvis? November 5, 2008Posted by Chuck Musciano in Leadership.
Tags: Project Management, Software
I once learned that some paintings are mass produced on assembly lines, with each person applying a single color in a single spot. At the end of the line, a complete painting has been “assembled.” Much of the art in hotel rooms is produced this way. The epitome of the genre is, perhaps, the Velvet Elvis: the perfect blend of kitsch, style, and subject that anyone would be proud to hang in their home. It may not be art, but it sure is a painting!
A lot of software is written in the same way. There is a common belief that you can completely control the development of software, planning each step of the process, deciding when the builds will be ready and the final product will roll off the line. We all work to such tight project deadlines that there is little choice but to manage the development process this way.
Unfortunately, writing software is not a process. Writing software is an art. Just like singing, dancing, painting, or sculpting, certain people are born to write beautiful pieces of code that other, lesser mortals simply cannot produce. For those who can dig in and appreciate a piece of code, there is true beauty inside the very best software.
Like any other art, beautiful software does not happen in predictable, scheduled ways. It happens in fits and starts, when the muse strikes. I can remember many times when the solution to some problem, the perfect algorithm or data structure, would suddenly pop into my head in the middle of the night. You can beat your head against a problem all day, but the elegant solution only arrives when it is ready to be revealed. Regrettably, it’s tough to put milestones like “Muse Strikes” into your project plans.
Now that I am on the management side of this process, I have true sympathy for the developers that struggle to deliver results when they know that the muse has not yet struck. Lesser programmers are content to produce a Velvet Elvis, a pedestrian piece of code that gets the job done in a brute force way. Programming artists seek to deliver art, something they and their peers will consider and appreciate.
As managers, we have to decide when we need art and when we need Elvis. All great artists can produce a Velvet Elvis with little effort, but their spirit will be sapped if they are not allowed to create true art every so often. Keep that in mind as you plan your projects and determine your schedules. Know who your true artists are, and make sure they get to produce that occasional masterpiece. And when you do, they will certainly come to you and say, “Thank you. Thank you very much!”