When we build anew we seek to provide straight-forward solutions that obfuscate complexity. We round the edges, smooth the sharp angles, and offer intuitive interfaces. We give our customers everything they want and need, however, they will love our products and solutions if, and only if, they aren't frustrated with the controls or the interaction, and they easily grasp the purpose. We know our work can, at times, be complicated — yet we do not need to expose these details to the end user. We celebrate the mantra, "expose your data not your database". Since expectations evolve, our work is often iterative. Yet software tends to bloat and every line of code we add creates a potential risk, adds to our liabilities, and pushes us away from simplicity. Often, as with software, less can be more. Some of our most important work is in refactoring, reducing, and replacing rather than in the heroics of rushing out a feature or implementing a work-around. We need to design clear, minimal APIs with the fewest methods and arguments, and architect modularity so we can make changes in isolation. Our default release principle should be: simple solutions are generally better than complicated changes.
The Paradox Pairs series is an exploration of the contradictory forces that surround us. A deeper study finds that these forces often complement each other if we can learn to tap into the strength of each. See the entire series by using the Paradox Pairs Index.