Building Software - Engineering or Art?

Posted by on November 9, 2008

Chapter 10 of Dreaming in Code is titled: “Engineers and Artists”. This chapter discusses the age old debate about whether building software is an engineering discipline or whether it’s more like a creative process similar to producing art.

In my view it’s both an engineering discipline as well as a creative process. However, building software should primarily be an engineering discipline. I use the word “should” as in practice, this has not been true. This is both based on my personal experience as well as what is discussed in the book. The following quote from the book is a good way to put it.

“If builders built houses the way programmers build programs, the first woodpecker to come along would destroy civilization - Gerald Weinberg”

My argument that building software should primarily be treated as an engineering discipline is based on the comparison of impact of faulty software and not so good art. Although artistic creativity is important, if the software does not perform as intended, there could be serious consequences.

The impacts of 20 famous software disasters range from lives lost and endangered to millions of dollars lost. Although the impact of failure of all software would not be as catastrophic as this, all software failures would affect lives of people one way or the other. Therefore, it is paramount that building software is treated primarily as an engineering discipline.

The challenge is to perfect building software as an engineering discipline, which is not as mature as other engineering disciplines.

Images taken from en.wikipedia.org

Related Posts: Dreaming in Code, Don’t Worry be Crappy , In Search of an Ideal Personal Productivity Tool

No TweetBacks yet. (Be the first to Tweet this post)
Comments

Respond | Trackback

Comments

Comments: