“Simplicity is not the point, the point is not to reduce complexity. Goodness is the point. Goodness and value.”
Last week we were lucky enough to have Dan Ward come to the #EMCDojo to discuss the principles of his new book The Simplicity Cycle: A Field Guide to Making Things Better Without Making Them Worse. Watch the meetup below! If you don’t have time to watch right this second, read the Q&A for a teaser.
Q: How do you sort through customers’ different definitions of simplicity? Isn’t on customer’s complexity another customer’s value?
A: Different customers are going to have different definitions of goodness. Different customers will also have different levels of tolerance for complexity. For some customers, a certain level of complexity makes it less good and hard to use. for a super user, that same level of complexity is still okay. So part of the challenge is to understand with a large user community what goodness means. How do we mitigate that when you have users that want a lot of complexity and users that tolerate complexity less well? When you optimize a tool for the least capable user you improve its performance for all the users, including the most capable users. Simple tools tend to outperform their specs. Simple tools satisfy a broader range of interests and user sets than the designers and engineers might have anticipated. Simpler approaches tend to satisfy a broader range of users and customers. Which isn’t to say we shouldn’t provide a more complicated alternative for those users who want it – for whom goodness and complexity are directly proportional. And you only find that out if you’re engaged with your customers to get a sense of how they value complexity/simplicity. You have to talk to your customers to figure out what goodness means for them.
Q: What about modularity?
A: Modularity is a great strategy for mitigating and managing complexity. A modular design is one where you can plug and play, and let the users plug and play simpler or more complex modules. A modular design approach gives your users that optionality, the chance to engage and customize without complexifying things for those simpler users. Modularity is a simplifier and a goodifier. It improves the quality and flexibility of your design, but makes it robustly flexible. Complexity tends to increase fragility, and modularity is a way to combat that.
Q: What about machine learning and AI? Does it change the vector position on the goodness and complexity graph?
A: Automation and machine learning take some of the burden of processing complexity from that user, and puts it below the screen/surface. Theres a man that coined the term the law of conservation of complexity: Complexity is neither created nor destroyed, we either move it above or below the surface, we let the automation or the users take care of it. I don’t know if I agree with that, but he has a point. There are ways to hide complexity and not expose the users to it, and automation and machine learning are a great way to simplify the user’s experience while still allowing the architecture to have some level of complexity. But all that being said, we still want to look for opportunities or instances where below the skin we’ve complexified things to the point where it becomes heavy and hard to debug/maintian. The back end matters too, its not just about the UX or UI.