"Managing Complexity" is discussed a lot. There's complexity in user interfaces, engineering architecture, business process, organizational structure, business models, professional relationships, personal relationships etc. We get lost in the complexity if we don't manage it well.
In the last decade or so, there has been a definite trend toward simplicity. There has been a movement to manage complexity through simplicity. Take these examples
- One big button iPhone
- Simple subscription model for unlimited song downloads through the Zune pass.
- Google home page with one text box and a Search button
- Micro blogging through Twitter
Clearly these concepts are simple, easy to understand and use. But how simple is simple enough without being insufficient? (On a related note, this is an interesting article about Win7). There is a need is to be Managing SimplicityTM.What does managing simplicity mean?
Consider these questions for simplicity of user interfaces,
- What does simple mean? Is it number or clicks to a target (or) the time taken to accomplish something (or) is it a deeper concept?
- Which customer segment should your product be designed to be simple for? Will this segment pay for your product?
- Will a competitor be able to provide an enhanced service through a slightly more cluttered user interface and beat you? (Consider www.google.com vs. www.searchme.com)
- Is the right approach to break a product into sub products when they don't truly fit together? Drawing an analogy with a software best practice to break functions/methods into sub functions/methods whenever possible.
Consider these questions for simplicity of API interfaces,
- Do developers need simplicity in API? If so what does it mean?
- If the API is more powerful than in-house UI, will your satellite applications be more useful than your own product (think Twitter applications vs. Twitter itself). If so what is the platform business model?
- If you want products built on your API to also be usable/simple as your own user interface, how does this get built into your API? Or does it need to get built into the review process? Or will it simply be selection of the fittest.
Consider these questions for simplicity of hardware interfaces,
- How important is simplicity in hardware? (Consider the one button iPhone vs. the several buttons Blackberry)
- If you have an application ecosystem as well, how does hardware simplicity affect power of applications to be built on it (Consider that the one button iPhone doesn't work well with some applications)
- If the hardware interface is too simple, is there an overload of combinations to be remembered? (think XXY, XXXX, YYXY in Ninja Gaiden on the Xbox 360 controller)
OK, I've just got questions for this post. More thoughts on Managing SimplicityTM later. I'm trying to keep my posts small and build upon. Comment away!
PS: I took the liberty to add a trademark to Managing Simplicity because a web search on 3 major search engines returned nothing substantial. I'm beginning to doubt that's not how it works :)