Food for thought #6

December 29th, 2011

Craig Villamor in Design is never “Done”:

It is foolish to think that you will get the design right the first time. It is also foolish to think that there won’t be changes to a design once development begins. And on a larger scale, software products are never done unless they are dead. Life is better when you stop kidding yourself and your team and admit that there is no “done”.

As a design manager, I use this concept of approaching done to evaluate the health of a project and the effectiveness of its designer. A designer is on the right path when his or her solution is approaching done. In the early stages of a project, there is typically a high level of variability. Designs may appear to be approaching done only to get completely reset once a new requirement or constraint is encountered. This is completely normal. But over time, this variability should become smaller and smaller. That is when you know a design is on the right path. There is a steady progression toward done.

The graph is a little awkward, conveying an incorrect illusion of the ideal target design that never changes. In reality the design is a living breathing thing that is reevaluated based on the current knowledge and understanding of the domain, and where you want to be. And the implementation is more of a staggered spiral, peeling away chunks of cruft, progressively iterating, refining and polishing.