Is Software Development an Art?

I am a passionate software developer, making it both my job and my hobby. I sometimes wonder what makes good software good, and how it is compared to other engineering fields like mechanical engineering, chemical engineering or electrical engineering (since I know people on these fields), and I have always felt that writing code was akin to an art, because while there are many way to solve common software development problems, there are sometime solutions that are “beautiful” or “elegant”, and some times only experienced developers seem to see the beauty in the solution.
But reading Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman the following quote (attributed to Richard Stallman) from made a “click” in my mind:

I would describe programming as a craft, which is a kind of art, but not a fine art. Craft means making useful objects with perhaps decorative touches. Fine art means making things purely for their beauty.

So programming is “kind of an art”, but it also has a purpose (maybe except the Shakespeare Programming Language or other so-called esoteric programming languages). That was really enlightening. Thanks guys.

One thought on “Is Software Development an Art?

  1. Well, considering old games like International Karate, when they had to use every bit of memory the computer can offer, and every trick they devised – which are used today- it can be considered as an art. At the least, our job is an art like that of architects.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.