Skip to content
Home » Brittle Systems

Brittle Systems

As entrepreneurs we are spoiled for systems and ways of connecting them. It’s never been easier to run a online business and through webhooks or automations like Zapier we can connect them easily. But is this always a good idea? What are the downsides of automation and integrating our systems and how should we approach using them?

In my career as a software developer, I’ve built many IT and software systems for global businesses. I have often had a need to automate a process or implement a change that connect systems, but through experience found myself starting to urge caution. Instead I find myself increasingly talking a lot about brittle systems.

Brittle: hardened to the point that something actually becomes weakened. A peanut brittle is a great example, something that is hard to the point it can shatter. Systems can also become brittle when you decide to connect them and automate business flows… but how?

So I’ve worked on a bunch of projects in corporate landscapes. In these projects it was always important to provide a very clear path to change. As a project manager or a techie running a migration, I would need to ensure that the nature and timing of change is agreed with stakeholders well in advance. You must have contingency in case a migration failed, usually this was a way of rolling back or “fixing forward”.

Why was this so important?

When working with a software system that handles payment systems for a bank, you’d better make sure your change process works or there could be some serious reputational damage. That might have a direct effect on customer experience and trust. But when working on an internal systems change, you must also exercise care and caution. Knocking out a key piece of development infrastructure for a few hours could cost tens of thousands of productivity dollars and even lead to impairing your ability as an organization to fix your customer-facing systems. In both scenarios you need to think about the wider context.

When we implement a system or an automation we tend to only think about the one thing we’re trying to improve. Many of these one-off improvements layered on top of each other is the cause of this brittleness. It’s often forgotten business value (or process) buried in a single simple change.

Automations are increasingly used to make our lives easier. However layering integrations and automations on top of each other creates invisible paths, ways of working that we forget, buried in the system. Important business logic can get hidden there, only for it to bite us when we make a change like adding or removing another automations, or migrating systems.

So while automation is increasingly popular and increasingly available to all of us entrepreneurs, is it always a good idea? Automation stops us puny humans from pressing the wrong button – that’s good. Automation means that when something goes wrong or acts differently to what the automation expects – then it either breaks, or worse, do something unexpected.

On the excellent Business of Authority podcast, Jonathan and Rochelle talk about the Gravitational Pull of Systems. This is something that I directly relate to the brittleness that automation can introduce. On the podcast they talk about the important distinction between the systems you use in your business (things which will improve your efficiency and ability to handle customers) as opposed to the systems you provide for your customers (such as Slack, or a video sharing platform for a membership).

Choosing a system can be very confusing for entrepreneurs and businesses of all scales. Often companies will run multiple Proof of Concept projects with competing tools. This is to help make a decision on which will provide the biggest benefit, usually at the right cost. Global firms will often try and negotiate a global price with a vendor.

As entrepreneurs, we don’t often have quite so much leverage, time or energy to devote to a tools selection. However we can still apply the same guiding principles both to the tools we use and to the integrations or automations we layer on top. Be aware that any system you pick and implement will be with you for some time. It takes effort to learn it and to make it work for you, that effort should surely provide benefit to your business but also be aware that it affects how you work in the future. Your processes become hardened into that way of working. Enough of this hardening through automation can lead to brittleness, and then one day – snap – something could break.

Some other great tips from the discussion between Jonathan and Rochelle include:

  • Don’t implement a new system too early. Stick with manual for as long as it’s efficient.
  • Scale matters. Don’t implement a system to serve five people.
  • Buy rather than build (if you’re a developer perhaps you could develop your own solution but why would you?)
  • Choose a platform and commit to it (migration between systems is usually hard)
  • If you have to change a system then communicate early and communicate often.

To this excellent list I would add one thing. Don’t forget that every automation or integration with another system with another will cause brittleness to build up. Try to limit the automations you do. Tend to buy out-of-the-box and use out-of-the-box wherever possible and this will reduce your risk. This also cuts down the risk that something breaks whenever a vendor silently upgrades their systems.

The temptation to always automate is strong, but remember the balance of brittleness and perhaps start to question if a change is really adding value to your business.

Any tips of your own?

I’d love to hear from you on this subject! Feel free to drop me a line or if you’d like more tips and tricks from me then you can subscribe below.