Unnecessary complexity in IT systems can and should be avoided. In IT, almost with no exception, the best solution is the simplest solution. A solution that gets you where you want to go. A solution that can be launched quickly. A solution that helps you get feedback from real users when they actually use it. A solution that defers decision making. A solution that is not going to block you or your organisation in the future to make alternative, better decisions to deliver a resilient digital service.
A GRADUALLY INCREASING COMPLEXITY
There are many reasons why organisations gain complexity, why they add unnecessary complexity into their ecosystem. It could be because important technology or product decisions are made under pressure or uncertainty with regards to the bigger picture. Maybe a decision for a certain technology platform was based on a pitch full of features by a vendor. Maybe requirements have not been validated with real users. Or, maybe technical sophistication or ‘resume driven development’ has been a driving factor.
HOW TO DEFINE UNNECESSARY COMPLEXITY?
You will know your IT systems are unnecessarily complex when:
They are hard to change. Everytime you change something, something else breaks
When instead of enabling, your systems are blocking you
When they haunt you in your dreams :)
Our experience is that when you find yourself blocked by legacy IT architecture or systems that are overly complex: you’ll know. We speak with a lot of leaders who want to get rid of these impediments. Often it seems possible to make a change, since you cannot change this with a big-bang action. The systems are all in use, and the complexity itself prevents you from changing things around. The solution is to actively reduce complexity at every step in your IT programmes. It could be beneficial if your IT architects have this focus in their evaluation criteria: did we reduce complexity this year, and by how much?
THE REWARDS ARE HUGE. WHY SHOULD YOU CONSIDER GIVING PRIORITY TO REDUCING COMPLEXITY IN YOUR IT SYSTEMS?
1. Complex systems are harder to change and improve At the risk of stating the obvious, complex systems are more difficult to understand than simple systems. It is harder to bring new engineers on board to maintain them. Complex systems are harder to troubleshoot. They are not flexible, because they are challenging to test and to be sure everything still works after a change or before a release.
2. Complex systems are more expensive When systems are difficult to understand it will consequently become painful to maintain or change them. In addition, it is more costly to add new features or change features in these complex ecosystems.
3. Complex systems are less robust When a system is complex, it is harder to test and validate whether everything is working well. We also see a lot of places where, because of the complexity, it is hard to keep test and production environments synchronised. “Huh? This was working in test? Why did it break production? ”. Say no more.
Keeping all the moving parts up to date sometimes hijacks a large part of the IT capacity. When you need to upgrade that big monolithic platform, it will be a challenge to make sure your systems survive the upgrade.
4. Complex systems are more vulnerable to security risks The more complex your system, the less easy it is to construct a threat model. It has more moving parts, more different technologies, more versions to maintain, more possible weaknesses in its security. With regards to security - your ecosystem is as secure as the weakest link. And if your system is complex and contains a plethora of links, it is harder to keep them all secure.
5. Complex systems are less user friendly What makes a system user friendly? Iteration, user testing and small adjustments. Suppose you have to deal with a system that no one can grasp completely or understand, it is surely a hassle to make those small tweaks that keep the users happy. Before you know it, users need to call the service desk to help them operate. Faced with this situation, the complexity of our ecosystem is restraining everybody to be efficient and effective.
SHAVE THAT YAK! TAKE AWAY THE UNNECESSARY DISTRACTIONS.
Imagine you have the determination to reduce complexity in every step of the process. At that point you’ll see speed of delivery increase, agility increase and you’ll get more bang for your IT buck. It is actually a satisfying feeling, comparable to when you’ve just lost a lot of weight. Cast off the chains of complexity that are holding you back. You are lighter on your feet, ready to make the next move.
Helpful questions in your battle with complexity:
Do we really need this platform or feature?
Did we validate that with the users?
If we are adding this, what are we switching off?
If we want to alter this decision in the future, what will be the impact?
Can we defer making this decision to a later moment?
How long is the time it takes to go from idea to launch in our ecosystem? - How can we reduce this time?
At Worth, we’re helping people to liberate their organisation from legacy, unnecessary complexity and vendor lock-in. We draft plans with them to change how decisions are made, and together create roadmaps to advance and get to a place where they are free to move and improve again.