ArticleJanuary 26, 2022 · 2 min read time
Less is more, they say, but what does it really mean? Aiming for fewer systems can help us be more efficient and sustainable, and not just in terms of software.
Hi, my name is Markku Rontu, and I work as a Sustainability Engineer and Senior Software Architect at Nitor. Some people call me "Make," hence the name of this series. I have been working on Enterprison (pun intended) systems for over 20 years, and I wish to give you my 20/20 hindsight, or at least some tips and viewpoints to consider and have a laugh at.
My #1 tip is a goal for you for the coming year:
Have fewer systems.
We’ve all heard that “Less is more,” but what does it mean? How does it relate to my advice? I say we should not seek to grow. We should aim to have the same, but with less.
With a system, I don't mean just a process running on a server somewhere. We should consider components like an app on your device, a value stream, or even a business unit. Any team should also be asking whether they are achieving worthwhile results considering they also create complexity? The bottom line is that they all must earn their place. There isn't enough time or attention for everything.
The advice is not just about efficiency because you want to be sustainable and not at the efficient but fragile limit. It's not simply aiming for less, but if we always aim for a small number of systems, we’ll be reaping the benefits because we'll have free capacity. More systems always mean more complexity as they tend to talk to each other. We know that the probability of it all working out drops. And I'm not only talking about the nines of availability.
“Less is more" is good advice. We know that exponential growth, in general, is going to hit natural limits and make people suffer. Frankly speaking, we humans call unexpected exponential growth in our own systems cancer, which is life-threatening. Even slow accretion is terrible. We see how that ends up filling our closets. It’s such a waste, i.e., Muda. We are filling our homes, server racks, and calendars.
We know the progress or lack of it becomes painfully visible if we visualize ongoing work on a Kanban board. You may be familiar with setting a WIP or Work In Progress limit for it too. We can also limit ourselves at the function, class, system, or team level. Unless we do, we keep accreting systems. And saying serverless does not set us free. We must fight the entropy in our locales!
Thank me next year for following this advice or curse me. In both cases, I'd like to hear about it! Until next time!
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. - Antoine de Saint-Exupéry
Everything Should Be Made as Simple as Possible, But Not Simpler. - Albert Einstein