Take yourself lightly, take simplicity seriously
Whether we’re designing technology, a project, a team or an organisation, the discipline of simplicity is crucial to success. I’ve seen plenty of Self Harm in IT (nice acronym) and at least as much in organisation design.
Simplicity is hard. It takes honesty. It requires letting go of ego. It means getting genuinely involved with questions, with people and with the kind of detail that can’t be seen from a high-level.
If you do it right, when you zoom out you’ll have something that, even at a high-level, will still contain those make-or-break thoughtful details.
A simple Docker image
I gave a talk at DDD Wales in March 2017 about How to build a minimal Docker microservice with Golang. Using the “scratch” image, a multi-stage build and a non-privileged user, it’s able to make an https call to a simulated downstream service. The talk is based on a Github repository I put together that contains only four files. The result is a 7MB container image containing only three files.
A typical Docker image would be 700MB in size and contain thousands of files. Working out ways to simplify that, without losing the essential properties of a microservice, took some thought. Those four source files took time design and iterate. A 100-fold reduction in footprint and a 1000-fold reduction in file count aren’t trivial, but they make a point.
I built it because I had something to say
I believe good design is the embodiment of intention. It’s never abstract and always expresses an opinion. A purpose, a context, a message, a story or a mission. I built that image to talk about simplicity.
If you’d like to see the reasons I think it’s important to design simple, practical technology, here’s the section in the presentation where I talk about why simplicity matters. If you’ve suffered from complicatedness, it’ll make you smile. If you really want to cut to the bone, here is my number one reason.
But simplicity goes beyond the practical what, infusing the deeper why of how your organisation functions. Try taking a HIPPO out of the room. That one change makes it possible for a team to focus on the real question and get to a much better answer. Have you ever been in a healthy discussion, where everyone felt comfortable arguing openly about what was right, not who was right? Ever experienced the opposite?
Simplicity is about high performing teams, winning at customer and user experience and sustainability and talent attraction and security risk. All of that, directly or indirectly, goes to the bottom line. Simplicity enables work to work.
“I would have written a shorter letter, but I did not have the time”
The hardest discipline is to simplify ourselves. That’s transformation.
The full slides for the talk are open. The Github repository for the container image is public, as is the repository for the live coding demo. Thank you to DDD Wales and credit to Viv Richards and the team for not only putting on the event, but then hosting the Swansea Software Development Meetup only two days later.