|
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.
3:59:06 PM
|
|
|
|
© 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 |
|