On vacation I read “Kitchen Confidential” by Anthony Bourdain. Aside from being an incredibly entertaining book there were also some intriguing parallels between cooking and software development.
Cooking is a craft, I like to think, and a good cook is a craftsman – not an artist. There’s nothing wrong with that: the great cathedrals of Europe were built by crafstmen – though not designed by them.
“Design” becomes a tricky word when talking about software development. There is process to software design. Problem solving and planning. Putting together the pieces based on research and years of experience. The overarching vision of the end software product is not necessarily part of the “software design” process.
Some have a knack for the craft of software. Others a knack for the art of software. Some are capable of standing on both sides of the line effectively. Few are able to hold this stance for long. The focus at various times is on craft or art, but rarely both at once.
I’ll generally take a standup mercenary who takes pride in his professionalism over an artist any day. When I hear “artist”, I think of someone who doesn’t think it necessary to show up at work on time. More often than not their efforts, convinced as they are of their own genius, are geared more to giving themselves a hard-on than satisfying the great majority of dinner customers.
The art of software can get out of hand at times, losing focus due to the necessary and unnecessary experimentation on the path it follows. The ever-growing demand for software requires a great deal more craftsmen than artists. Great craftsmen are a valuable commodity. Those able to mentor the less experienced are indespensible.