Software Engineering, Project Management, and Effectiveness
“Everything should be made as simple as possible, but not simpler.” – Albert Einstein
Simplicity is among the ultimate of pursuits. It’s one of your most efficient and effective tools in your toolbox. I used simplicity as the basis for my personal results system, Agile Results, and it’s served me well for more than a decade.
And yet, simplicity still isn’t treated as a first-class citizen.
It’s almost always considered as an afterthought. And, by then, it’s too little, too late.
In the book, Simple Architectures for Complex Enterprises (Developer Best Practices), Roger Sessions shares his insights on how simplicity is the ultimate enabler to solving the myriad of problems that complexity creates.
Simplicity is the only thing that actually works.
Via Simple Architectures for Complex Enterprises (Developer Best Practices):
“So yes, the problems are complex. But complex problems do not ipso facto require complex solutions. Au contraire! The basic premise of this book is that simple solutions are the only solutions to complex problems that work. The complex solutions are simply too complex.”
It sounds obvious but it’s true. You can’t solve a problem with the same complexity that got you there in the first place.
“The antidote to complexity is simplicity. Replace complexity with simplicity and the battle is three-quarters over. Of course, replacing complexity with simplicity is not necessarily simple.”
If you want to achieve simplicity, you first have to explicitly focus on it as a core value.
“The first thing you need to do to achieve simplicity is focus on simplicity as a core value. We all discuss the importance of agility, security, performance, and reliability of IT systems as if they are the most important of all requirements. We need to hold simplicity to as high a standard as we hold these other features. We need to understand what makes architectures simple with as much critical reasoning as we use to understand what makes architectures secure, fast, or reliable. In fact, I argue that simplicity is not merely the equal of these other characteristics; it is superior to all of them. It is, in many ways, the ultimate enabler.”
Complex systems work against security.
“Take security for example. Simple systems that lack security can be made secure. Complex systems that appear to be secure usually aren't. And complex systems that aren't secure are virtually impossible to make either simple or secure.”
Complexity works against agility, and agility is the key to lasting solutions.
“Consider agility. Simple systems, with their well-defined and minimal interactions, can be put together in new ways that were never considered when these systems were first created. Complex systems can never used in an agile way. They are simply too complex. And, of course, retrospectively making them simple is almost impossible.”
And that’s the problem.
“Yet, despite the importance of simplicity as a core system requirement, simplicity is almost never considered in architectural planning, development, or reviews. I recently finished a number of speaking engagements. I spoke to more than 100 enterprise architects, CIOs, and CTOs spanning many organizations and countries. In each presentation, I asked if anybody in the audience had ever considered simplicity as a critical architectural feature for any projects on which they had participated. Not one person had. Ever.”
Simplicity is a quest. And the quest is never over. Simplicity is a ongoing pursuit and it’s a dynamic one. It’s not a one time event, and it’s not static.
“The quest for simplicity is never over. Even systems that are designed from the beginning with simplicity in mind (rare systems, indeed!) will find themselves under a never-ending attack. A quick tweak for performance here, a quick tweak for interoperability there, and before you know it, a system that was beautifully simple two years ago has deteriorated into a mass of incomprehensibility.”
Simplicity is your ultimate sword for hacking your way through complexity … in work … in life … in systems … and ecosystems.
Wield it wisely.
10 Ways to Make Information More Useful
Reduce Complexity, Cost, and Time
Simple Enterprise Strategy