Stupid Human Programming
Talk on software development.








Subscribe to "Stupid Human Programming" in Radio UserLand.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.


Sunday, March 12, 2006
 

Is programming an abstract expressive art form?

This is much shorter version of a long argument I have been having with myself about the role of software development as an abstract expressive art form. We developers are often seen as just little code robots. But software can be a lot more than that and if it was allowed to more I think we could create a lot more truly great software instead of heaping more dumptrucks full of uninspired trash in the bitbin.

There's an interesting parallel between the western musical tradition and the agile tradition.

If you would have asked Bach the purpose of music he would have said music serves to glorify god. His perspective was a carry over from the middle ages when music was primarily spiritual in purpose.

With the enlightenment a more secular view of music developed. We see, for example, in Mozart the classical emphasis on the individual which lead to clean, tuneful, and entertaining music.

The classical ideal soon evolved into the romantic ideal which valued individual self expression. In Beethoven and Liszt and in 20th century composers we see self expression as the primary driver behind their music.

Bach was undeniable creative, but his music was not intended as a vehicle of self expression. The polyphony of the fugue in many ways resembles a software project. The complex and intricate dance of the many fugue voices is held together by a strong underlying structure. Bach perfected "counterpoint", the "combination of independent melodies to form a harmonically and rhythmically vital union."

In fact, the word "baroque", Bach's musical style, originally means "irregularly shaped pearl", which I take to be in spirit with Wabi Sabi, an idea that has inspired many in the agile world.

The parallel I see is that agile puts software developers in the service of the customer with the driving value being business value. The purpose of the developer's work is not self expression. Developers serve the customer and every action is tasked with providing the customer value.

Though the Agile Manifesto values people over process, the end result is still largely dehumanizing because individual developer self expression is sublimated to the customer. The individual developer is left to bargain with the customer for each degree of freedom they are granted, but in the end the customer always wins.

You can say he who has the gold rules or this organization is necessary to ensure repeated successful outcomes, but it shouldn't be surprising that many people see software as something more than an end for a customer. Development is also an end for an individual's life, their creative world, and as a central means of self expression.

We've seen in music the evolution towards musical structures and an ideal for the composer that values self expression. We have seen some of the greatest world the music has produced come from a careful balance of structured musical form with individual inspiration. It wouldn't be surprising to see a similar evolution in agile as well.

comment[]

3:59:06 PM    



Click here to visit the Radio UserLand website. © Copyright 2006 todd hoff.
Last update: 4/19/2006; 4:24:35 PM.
March 2006
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Feb   Apr