Good products have a simplicity of design that can be clearly seen. Often there is a single design innovation that carries the whole product.
When starting a project, the risk adverse, less skilled members of the team always add to the design, rather than to aim for design elegance. In fact "design elegance" are dirty words in some circles yet customers are expected many millions for products.
Up front design, huge lists of requirements and endless project management documents cover the design with a veil of techno babble and bullshit. The products that this style of project make are normally low quality and require constant tinkering and adjustment to function. Very often the huge armies of people who thought up the lists of requirements have moved on to the next disaster by the time that the problems in the overly complex design become evident.
The solution is to put the responsibility for design into the hands of those that can execute it.
Code is the least ambiguous way to express design.
Instead of expressing the desired outcome as a list of ambiguous written requirements or documents express it as a list of coded tests.If the tests execute successfully then the requirements are met. This way only those members of the team capable of understanding the code are responsible for the design.
Test driven development allows practices such as refactoring, story card driven user interface design and continuous integration to be used. These practices create an environment where you are able to try stuff out and therefore have a better chance of making a good design.
The difference between a professional and an amateur is that a professional should be able to consistently deliver design elegance. I would hope that the professional would understand the relationship between good products and good design technique and tools.
Elliott - a little more
- Simon Elliott
- London, United Kingdom
- I am an architect with shed loads of familiarity in providing high profile consumer media, products and services. I conceive ideas, design and lead projects to create new consumer products. I love brainstorming ideas with marketing counterparts and creating future facing and innovative solutions. I have been responsible for high volume mass consumer market features where scale, reliability and the ability to quickly respond are of crucial importance.