Subscribe via RSS

Software Engineer vs. Code Artist

Filed Under Thought Stuff

Is software development engineering or artistry?

This long running debate received new life when Steve McConnell gave a fiery reply to an IEEE Computer article titled “Software Development : What is the problem?“. Eric Wise has now stirred the pot with his post Rejecting Software Engineering.

Personally I wonder why everyone thinks they are an artist. I don’t care if you are a software developer, carpenter, or plumber; every profession thinks they are so clever that they deserve the title ‘artist’. This is a load of crap. True pencil and paint artists can create subjective works without any repercussions.

Expectations to create readable, maintainable, scalable, testable, documented, and flexible code are everywhere. We can not even commit to open source projects without being censored for quality. Developers get no bonus points for clever solutions, only for quality and useful solutions.

The number of ways we can solve problems through software is amazing. Of these solutions comes many unique and clever permutations; all representations of their creator – the developer. But acts of creation does not imply the right to declare ourselves artists. Musicians are artists that can have free spirited impromptu ‘jam sessions’. When was the last time you saw a developer express themselves in a free spirited impromptu ‘code session’? It just sounds stupid saying it.

Mathematics is considered a science, yet solutions can be cleverly constructed. So why is it a science and not art? Mathematicians (like developers) need to be confined to solving a problem in order to start creating.

Solving a problem is not art. Creation is not art. Being held to standards and expectations is not artistic. We are not artists.

RSS Icon

  Don't miss a drop! Subscribe now via RSS or email.

Comments

20 Responses to “Software Engineer vs. Code Artist”

  1. seth on June 27th, 2007 12:57 pm

    I do agree – I think software development is more of a science than an art. However, code can be beautiful in that porche-precision-engineering sort of way. While is not necessarily art, I think many people call it art when they mean its beautiful.

  2. Max Pool on June 27th, 2007 1:29 pm

    I agree that people generalize the word ‘art’ to be synonymous with beauty. Beauty is only in the eye of the beholder, thus it is subjective.

  3. Justin Deltener on June 28th, 2007 8:44 pm

    I disagree I’m pretty sure the Sandwich artists at Subway are the real deal..

  4. Mark on June 29th, 2007 8:00 am

    I once knew a guy that could code an entire subsystem using just constructors. Being able to construct your code using just a small subset of your toolset and still pull off a solution is definitely art. Also, if you print out the source in a fixed-width font you will see some pretty pictures.

  5. Jason Gibb on July 13th, 2007 1:47 pm

    Max, you seem to be saying that being an artist is an ideal that developers should aspire to. I think most people are coming at it from a different perspective: software development strives to achieve an engineering or scientific level of exactness and repeatability but often (usually?) fails. Ergo, software development is lowly art, not lofty science or engineering. In this sense, calling software development an art is a way of explaining its failures. Would you want to be called an artist under these circumstances?

  6. Max Pool on July 13th, 2007 3:16 pm

    That is interesting Jason. I guess the thought of looking at either persona from a negative angle never occurred to me.

    No, I would not want to be associated with being a lowly subjective developer. Likewise, I would not want to be typecast as a rigid objective scientist.

    I explored this thought more in today’s post Why Linguists Are The True Code Artists

  7. Colin Morris on July 17th, 2007 12:48 am

    “When was the last time you saw a developer express themselves in a free spirited impromptu ‘code session’? It just sounds stupid saying it.”

    - How about http://hackday.org/ ?

    “True pencil and paint artists can create subjective works without any repercussions.”

    - Except starvation if nobody buys them, and it’s their sole income. Harking back to the days of artists having patrons. Surely painting over is the art version of redoing code sections.

    Why does one library get chosen over another library, if both do the ‘same thing’? JS libraries for example. Is implementation-style another version of “I don’t know art but I know what I like”?

    I agree with the commenter about the Subway artists, though.

  8. chris on July 17th, 2007 7:38 am

    In my opinion
    Mathematics isn’t a science in that there is no case for the emperical method as in chemistry and physics – however computer science has a emperical side which goes beyond modeling only i.e. investigating the same algorithm and adaptations for it on different hardware/compiler/os/platforms – this is why for instance a hash algorithm mathematically speaking may have O(1) time in theory (via math), yet in hardware it may have bad locality of reference so that a binary search or tree search may sometimes outperform a hashtable for lookups in emperical tests (i.e JUDY) for some persistent cases a hash lookup may even be eclipsed by linear searches!

    The confusion comes in that many programmers and scientists are doing math (no reason why they shouldnt), to support the science or programming they do. But this math is Never perfectly applied or conceived since this is humanly impossible – i.e. the code of the shuttle space craft still has +-4 known bugs in it – after 30 years of testing and fixing 40000 lines of code.

    The biggest problem lies in the hardware itself.
    which is based entirely on set theoretical mathematics (there are other branches of mathematics you know) – this implies that no physical situation can be perfectly modelled in a computer since the universe isn’t entirely set theoretic – (via basic topology and the violation of the distributive And operator on sets, by, for instance quantum mechanical phenomena).

    It follows that computer programming can never be considered a closed practise in which all aspects to all problems are clearly and quantatively defined or definable. In my work as a computer scientist and programmer (yes Ive worked on many real systems) I’m repeatedly thrown against the age old dilemma of failure – a good system isnt defined by the richness of its functionality ,the quality of its code or the simplicity of its logic , its judged by the Grace of its failure – which is Art !

  9. Eric Rank on September 13th, 2007 10:10 pm

    Software Development is Engineering. Good Software Development is Art.

    Zen and the Art of Motorcycle Maintenance comes to mind as a book that applies to this topic. Quality is an attribute that goes beyond a sound design. Good Engineering will provide you with a sound design.

    The Art in code happens when the *way* in which it works is elegant beyond that which a set of specs could determine.

    Does your API adhere to the criteria in the spec sheet? Then it’s engineered well. Is your API designed in such a way that people using it can do some creative things with it — things which you haven’t imagined? Then it’s a work of art.

  10. Max Pool on September 14th, 2007 10:59 am

    Ahhh…very good reference Eric.

    The other book that comes to mind is Software Creativity 2.0

  11. ScubZero on February 20th, 2008 2:58 pm

    I feel you are making a fundamental oversimplification of art. Case in point, the assertion that ‘artists can create subjective works without any repercussions’ and that in particular ‘Musicians are artists that can have free spirited impromptu ‘jam sessions’’.

    Musicians in a jam session are under EXTREME constraints as to what they can and cannot do musically. Everything from the time and meter, the rhythm which keeps the various instruments in sync, the harmonic structures they play over, the melodic scales that are used are all inheritently mathematical structures which strictly confine what a musician can and cannot do. In fact the difference between music and noise, is exactly that fact that the members of a band are not all individually creating ‘subjective works without any repercussions’. The whole ‘art’ of music is in the expression/communication of emotion with sound while being held constrained to a very strict guidelines…

    That all being said, I dont believe software developers are artists so much as craftsmen.

  12. Adron on April 30th, 2008 3:24 pm

    “I disagree I’m pretty sure the Sandwich artists at Subway are the real deal..”

    I agree to disagree also.

  13. Angus McDonald on July 16th, 2008 6:40 pm

    Piffle … software development is more craft than either art or engineering.

    Craftsmen (craftfolk for the PCers) solve problems with beautiful pieces of functional design, but they do not engineer nor design (in the traditional sense) but rather do both.

    Software development is its own thing, but for most people* it is much more craft than anything else.

    * Designing certain types of systems requires a far more engineering approach (e.g. Google’s load balancing software, game engines), whilst others are more art than anything else (e.g. actual games).

  14. Software Engineering Is NOT Dead! | Software Artist on July 22nd, 2009 6:48 am

    [...] has been a lot of controversy about that, some people arguing it’s more of an art, others saying it’s science, yet others that it’s more like craftsmanship. At the end of the day, the only fact that [...]

  15. Music, Musicians and Software Development | on October 25th, 2009 9:59 am

    [...] would like to think that we should not be so pragmatic as to look at software development as being”solving a problem in order to start [...]

  16. robdanet on September 2nd, 2010 7:35 am

    I agree with the fact that nowadays the word art has assumed a very vague signification and that not every thing hanging in today galleries deserve to be called an art piece. At the same time I believe that wherever there is creativity involved you can end up finding same art, especially if an artistic product it’s what you want to achieve . Also with the versatility and the simplicity that many platforms, libraries and tool-kits today came with (e.g. Processing, OpenFramework,…) , it is not hard for an artist to express himself using code like any other medium.
    I don’t think coders are rewarded only for quality and usefulness. De facto out there is plenty of those earning a living creating not-useful code with same kind of aesthetic. And people is calling it just (Computational) ART.

  17. Father Linux on January 27th, 2011 3:22 pm

    The thoughts of Sandwich Artist provoked by this post drove me insane and I had to write a blog post:

    I do not think Programmers are Artists and I think that the analogy is horrible for productivity.

    http://educatedconfusion.com/2011/01/code-craftsman-sandwich-artist/

  18. Code Craftsman, Code Warrior, or Just Sandwich Artist on February 1st, 2011 9:53 am

    [...] programming is an art, a science, or both. Recently, I have heard the word Code Craftsman and even Code Artist used by folks in the blogosphere. On the one hand, there is little argument that written code can [...]

  19. David on April 11th, 2011 2:23 pm

    Sorry, but this guy is a code artist
    http://jtnimoy.net/workviewer.php?q=178

  20. mattrix on March 3rd, 2012 7:26 am

    Thank you for your article. I humbly disagree. Your definition of art is highly generalized, simple, and incorrect according to professionals in the art studies field. Could you please post your professional qualifications in the field of art studies?

    As a rebuttal I would like to offer the following statements if you don’t mind.

    First your statement of “Creation is not art” is the complete opposite definition of Art which is:

    1. The expression or application of human creative skill and imagination, typically in a visual form such as painting or sculpture,…: “the art of the Renaissance”
    2. Works produced by such skill and imagination.

    So by definition, creation is the act of being creative which is expressed in a production art.

    So writing software/code is not an expression or application of creative skill and imagination? And you produce nothing from these skills and imaginations?

    Your statement of “artists can create subjective works without any repercussions” is also flawed. Literature(“using pencil” as you stated) is art. Writing a bad novel has no repercussions on the book’s sales? Tell that to the starving author. Producing a bad TV commercial or magazine ad due to its visuals (which is art) has no repercussions in terms of selling its product? Tell that to the producer or graphic artist without a home. All of these career’s have artistic aspects and thus are partially considered artists. These artists create works of art that carry an objective (not subjective) quantifiable value, known as quality, that do carry repercussions for them, known as sales.

    Food for thought, perhaps everything these days is art (considered by many) because the simple definition of art can apply to anything produced from creativity or imagination. Art does not carry any other requirements other than a creative act by definition. It does not have to be subjective, objective, pretty, ugly, logical, illogical, provide a solution, not provide a solution, etc. These qualities are not by definition part of art. These qualities are your own “opinion” of art.

    Many careers use both the left and right brain hemispheres and thus are a mix of science/math and creativity/art. Thus wouldn’t they have a right to consider themselves a mix of their skills which include artistry? Personally, I draw, wood carve, stone carve, paint, write literature. I’m an artist. Oh and I’m a programmer too. Oh and an Astrophysicist too. I have been for nearly 15 years and I’ve personally written millions of lines of code, albeit most of which with code that generates code. I consider myself to be a pretty good scientist, programmer, artist in my humble opinion because I use creativity and imagination to an advantage that some professions apparently deny, choose not to use, frown upon. I also use logic, math, test, etc of course. Every time I research and develop a new project, I’m as you state “expressing myself in a free spirited impromptu ‘code session”. My science and programming is made better by my artistic skills, just as a novelist, graphic artist, or media producer. So, in my subjective opinion, and also believe I am arguing objectively by my examples, and my mere existence. Science is art, software development is art, and vice versa. I am not only a “code/programmer artist” but am a “programmer artist scientist”.

    My suggestion, try being tolerant of new fields of study and combination of those fields of study. It’s amazing what can be accomplished in this world when new ideas, creativity, and imagination are allowed to prosper.

Max Pool - © 2014 - {codesqueeze}. Wordpress Theme by Sycorr