On April 4, 2002, I posted a lengthy entry to the Test-Driven Development mailing list. I had followed a discussion that touched on what software design really is, whether refactoring can be considered to be design, and whether "emergent" design is still design.
What I think I tried to say in my post was that

I mentioned two examples from the world of art. The first was a sculpture competition I had heard of, where the winning contestant had started by smashing her block of plaster of Paris with a hammer.
The second example was how photographer Helmut Newton used to meticulously prepare things, instructing his models, arranging props, setting up lighting, and then taking just one photograph (or at least very few).
The sculptor in the first example smashed the block to pieces because she couldn't see a direction it wanted to go. The perfectly square block didn't want to be anything particular.
Now, Helmut Newton might have gotten lots of cues from the set or from the model, much as the sculptor got cues from the smashed block. As I wrote this, though, I must have felt that Helmut Newton did all of his "design" up front, and then merely "executed" this design, whereas the sculptor designed as she went, guided by the cracks and dents in the material.
My point was that you can't not make design decisions. I wrote that this would be equivalent to "closing your eyes, whisking your brush on the palette ... and ... beating [it] on the canvas for a while, then opening your eyes to see what you've accomplished". Or in the example of the sculptor, it would have been to stop after pounding the block for a while. (But unless blindfolded, even that would be a design decision.)
As I remember it, the discussion explored the boundaries of design and implementation. And what I think I meant to say was that

Because you always have preconceptions. And following them is a design decision.
Because there are always cues in the context. And following them is a design decision.
I also think I meant to say that

Because implementing teaches you new things. And not following them is a bad design decision.
http://www.jacksonpollock.org/
Posted by: j | November 02, 2007 at 06:20 PM
j: Thanks!
Posted by: plindberg | November 06, 2007 at 08:21 PM