« What Metadata? | Main | Availability Enlightenment »

Monday, March 24, 2008

Comments

Dave M.

Exactly. I could not agree more. The more complex the problem the more software become art. At one end of the spectrum, implementation of simple algorithms is mechanics. At the other end, large scale architecture is a great deal creative artistry.

Kenny Pate

Very interesting post, Dan. I've been coding a bit this year for the first time since my teens, and although I doubt I'll ever be great at it I have come to appreciate that coding is both art and science. It's easy to forget (or to never recognize) that fact as a product manager without visibility in the code or the process.

Bastian

Exactly. I also try to explain to people that writing software and designing software models / systems is a kind of art. Unfortunately for most people outside our domain writing software is some kind of nerdy maths. A friend tried to explain what she thinks I do: "you're putting formulas in the pc which it takes to compute the results you want." (...) The universities and other schools teaching IT should add some more creative and "thinking" topics to their courses. I was happy to study "International Media And Computing" where I got the chance to cover both the technical and the arty stuff.

Pete Kirkham

Is there a difference in the US as to UK? Engineering is more seen as 'the art of the possible' here, as opposed to science (at least by engineers and scientists). Most engineering is soft, certainly my experience coming as a software engineer from a family of structural and civil engineers is that it's the human factors which dominate engineering.

Gary Murphy

I also feel that there is a strong element of craft to software - more so in the object-oriented realm than in procedural programming because of the greater level of abstractions possible.

I am old enough to remember a time when computer science degrees were fairly rare, so we had people in the industry that had a variety of different backgrounds. Most of the best programmers weren't engineers or mathematicians, they were music majors. I was talking with one such music major/assembler programmer and his comment was, "Both music and programming is the abstract manipulation of symbols according to prescribed rules".

For me, when I listen to many of the old-school jazz artists, like Oscar Peterson, it feels like we are doing the same thing. Good OO design is dealing at a level of abstraction that hints at the possibility of some possible concrete instantiations. When Oscar plays the piano, he hints at a melody that we get to compose in our own minds.

Anders H

Oh, yes,! Software engineering is the beauty in conquering complexity by simplicity. An art tought by example.

Well, it is about all engineering really. Look into any IEEE magazine to find examples of either too involved algorithms (unnecessary compexity) for solving the problem at hand, or a mathematical language that is much more formal than needed (unnecessary complexity again).

Well, it is really about life. Why do I have a garage with junk? Why do I work so much? Why do I...

Scary!

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment