I believe there is a law of conservation of complexity (similar to the law of conservation of energy), which states, that the total amount of complexity in a system remains constant.
A corollary is: simplicity is displaced complexity for the benefit of a given perspective, person, or viewpoint.
You must move the complexity to where it does the least harm, and benefit most an important stakeholder. Apple, and Steve Job's approach to design, are the quintessential examples. Everything Apple does is to to make the complex appear easy - to the end user of Apple products.
Another corollary is that you cannot get rid of complexity (that's simple mindedness, and a naive approach to simplicity).
To achieve simplicity is very hard. A study of how Google develops software and user interfaces, compared with how Microsoft develops anything, clearly illustrates this. You will see the differences jump out at you. Simplicity is also closely associated with minimalism. But that is a topic for another post.
In particular, simplicity in designing user experience (user interface and navigation) is supremely hard. Consider the counter-intuitive user interfaces of Facebook - one of the most successful and widely used web applications. Compare that with the any of Google's user interfaces for any of their products, and again, the differences speak for themselves. Facebook miserably fails at "complexity displacement", while Google spectacularly succeeds in achieving it. Of course, Apple also, is another stellar success in that regard. We bow again to the genius of Steve Jobs.
This clearly illustrates how hard achieving simplicity is. There are deep value judgements in seeking simplicity. There are a thousand and one points at which the same question must be asked, "where should this complexity go. Who is the beneficiary, and who bears the brunt of the displacement".
Naive software developers labor under the notion that simplicity (displacing complexity) is for them. Of course conquering complexity internal to the development process benefits them, but that is not what we are talking about here. They follow practices to make things simple for themselves, they end up displacing the complexity to the user. This is the most naive understanding of simplicity, and a clear attempt at circumventing the law of conservation of complexity, which will end up in serious design flaws. Their users pay the price.
The quintessential example of the clear applicability of this law is the horror called "Windows Regitry". A spectacular demonstration of the law of conservation of complexity. Of course we are constantly told how simple and easy Windows is. Then we discover the existence of the Registry. A great example of how not to design software.
An entire multibillion dollar industry has been spawned that specializes in fixing registry errors, and "cleaning" the registry. The user is never told that the $29.95, and higher, is paying for flaws in the design of Windows. She is never told that she is paying to fix registry design malfunctions- she is told that this is about, "making your computer faster", to "speed up my pc (an actual product name)". It is instructive to study the product names of this one particular industry. These are sorry examples of deception built on fixing Microsoft's poor designs.
Comments