Moving from cowboy coding to agile development

Friday, June 01, 2007

Iterative Art

After watching a movie or listening to a song, I have sometimes heard people say how they could improve the existing work of art we have just enjoyed. And I believe they could be right, when the definition of quality is theirs to decide. This is the case especially if they could have the talent of the original artist at their disposal.

However, if they faced an empty canvas or had a reel of empty frames, I think very few of them would be able to create (or ask for) the same result. So, the best way to achieve the most pleasing result (at least from the viewpoint of the customer - artistic visions aside) would probably be to let the parties take turns to do their part: the customer would first describe what she wants, then the artist would make a first sketch, after which the customer could ask for modifications or just let the artist continue in the current direction, etc. And I have no doubt that this was the way that even well-recognized artists worked when they were paid for making portraits of wealthy people.

I have often compared programming to painting or other (visual) art skills. Even though some artists might find the comparison quite offending, I believe we face the same challenge in filling an empty canvas, although the result of programmers' work may be a little more functional in nature. Thinking about the process described above, I guess we can have something else in common, too...