Wednesday, March 11, 2009

When finished isn't done

The product of some processes of creation can be called "finished". A book, a painting, an automobile, for example, generally at some point reach the stage where they're done. The book goes to press, the painting goes to the gallery, the automobile goes to the dealer. There are many kinds of designs for a piece of software, from data to architecture to user interface, and most of them can be aimed at this kind of result. The specification is finished, and ready to be handed over to the developers, who implement it.

I think we should rethink this. Software developed in an agile approach is not really done as much as done for now. You reach a point at which you step back and take a look, or do some testing, or get some more experience with the product, and then you jump right back in and iterate it again. I think this works better for design too. It's the way design really works, but the corporate superstructure suppresses that in the interest of schedules, deadlines, time to market, promotions, testing plans, and the like.

The truth is that later iterations of the same design will almost always be better because there are things you just can't think of in the first iteration -- or even the first few iterations -- because you need the previous ideas in order to derive the later ones. Any piece of software or hardware product that's gone through a few generations of versioning is a good example of this. The new iPod shuffle takes all the controls off the player itself and locates them on the headphone wires. This was just as technically possible in the first iPod shuffle as it is today. Why didn't they do it? I think it's because it just wasn't possible to think of it before having experience with previous iPod shuffles.

Iteration is pretty central to design, and a pretty natural way for designers to think and work. It's really corporate processes we need to fight. A big ally is Agile; it produces results in software development and it seems to be leading to more iterative thinking at the corporate level. Designers should pay attention, and get on board.

0 comments: