From the Mailbox: Software Development: Art or Science?

Here’s a question that I didn’t realize I had much to say about until I read my own response.
 
The Question:
Software Development: Is it an art or a science? An age old question I know, but what do you think and why?

 
My Response:
 
I refer to new software development as a scientific art. I've seen some maintenance work, platform porting, etc. that has been almost entirely mechanical -- I'm not sure what that counts as, but I certainly didn't witness anything "artistic".
 
I came to this distinction watching my brother's career. He is a scientific-glass-blower to earn a living. He has a degree, he makes high precision, custom order, scientific instruments out of glass. It's amazing to watch. It's hands on. Most people would call it a trade, but the degree to which he has to understand composition of materials, thermodynamics, stress points, and on, and on, and on, is nothing short of scientific. During the day, there isn't much art there, but the items he creates are absolutely artistic to my eye.
 
In the evenings, he does artistic glass blowing in the glass lab he (with the help of my father, the retired shop teacher) built in the garage. There the art comes first, but to make the art, again, he has to use scientific knowledge, such as exploiting 10 degree differences in melting points between colors of glass to create his art (or something to that effect, I admit that I don't have all the details and that I may be messing that up, but I think the point is clear though).
 
I think the closed commonly used term for something like that is a "craft", but (my best guess anyway) is that software folks reject the idea of being labeled "craftsmen" because software folks want to be seen as "white collar" and most folks seem to associate "craftsmen" with "blue collar".
 
I'm sure there are plenty of other careers/industries that have the same trouble classifying what they do. The challenge with software development is that because it is (relatively speaking) so young and poorly understood that the titles and classifications that get stapled to it impact the practices that are expected.
 
Purely artistic practices are not useful for commercially driven software. Purely scientific/engineering practices are not useful for software containing virtually any degree of innovation. I believe that most (and if not most, certainly a *whole lot* of) software is both commercially driven AND innovative.
 
Thus, until someone comes up with something better, I'm gonna stick with "Scientific Art".
 
--
Scott Barber
President & Chief Technologist, PerfTestPlus, Inc.
Vice President & Executive Director, Association for Software Testing
www.perftestplus.com
www.associationforsoftwaretesting.org
 
"If you can see it in your mind...
     you will find it in your life."

Comments

We are a CMMi ML 5 firm, I lead a 50 member SQA group, our SQA members are responsible for testing of the project and ensure the team is following the QA Process defined in the organization.
As, we don't have a separate QA Group, we formed a Audit group out of the SQA members from the project .

Is this activity a extra responsibility or its their day to day affair.

I have no idea what this has to do with the "Art and/or Science" discussion. I also don't know how someone from outside your organization could possibly answer this question. I think this has everything to do with how well it's working for you.

--

Scott Barber
CTO, PerfTestPlus
Executive Director, AST
Co-Author,