What does it take to for a solution to simply work? It has to be
- reliable under all design conditions
- intuitive and easy to use
- only the features needed are exposed and rarely used features are hidden away from casual use
- easy to maintain
- easy to extend to meet needs not covered
We are surrounded by systems and solutions that simply work. They range from deceptively simple like the clothes we wear to incredibly complex like the automobiles we drive at. Even though we take these simply working systems for granted, the simplest of them is the product of thousands of hours of design, usage and trial and error.
It takes discipline to design a solution that simply works – the discipline to ignore the clamor to include features that are useful to only a small set of vocal users, the discipline to withstand the temptation to demonstrate one’s technical virtuosity by including bleeding edge technology, and the discipline to go through long testing cycles.
It takes a strange combination of perceived arrogance and real humility from a good designer to eventually have a simply works design. The Chief Designer often appears as arrogant because he/she often rejects ideas that would damage the sanctity of the vision they have for the solution. Shigeru Miyamoto of Nintendo and Steve Jobs of Apple are designers whose visions drive their companies.
And it takes humility to recognize that despite the effort and personal investment put in the solution, it might still fail in certain conditions and need improvement. It takes humility to realize that the key design idea one came up and is personally invested in will not work.
Mindlessly adding features trying to keep ALL users happy in all situations does not lead to an elegantly simple solution that works. At the heart of a solution that simply works are intelligent feature choices based on usage.
Unneeded exposed features create negative value for users making the system difficult to understand and use Extra features take design, development, testing and documentation time. The extra features may break often causing the entire solution to stop working and reducing reliability.
For solution to simply work it has to be reliable in all usage conditions. Reliability comes only after extensive usage and testing.
The original design of C programming language embodies this simplicity. The modern automobile is a marvel of engineering. It is an incredibly complex system with a relatively simple user interface that has remained unchanged for the last few decades. Similarly the simply works characteristic of the AK-47 assault rifle has led to it becoming the most widely used assault rifle.
Pingback: Alexander7