“It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away” – Antoine de Saint Exupéry
Complexity and the System
There is no organization in the world that does not have complexity issues. Organizations start small and adaptive, and then they grow, becoming more interconnected and the next thing you know - you are running a complex, matrix-based organization.
People are still looking for the ways to keep or introduce simplicity with increasing need for business agility. Best practices are strongly connected with managing complexity out of the environment so that businesses can see quick benefits and value from any IT related investment. Sometimes you look for the inward solutions, sometimes you are bound to look somewhere else, but there is an everlasting quest for making things better: the moment we solve one problem, there is another one to work on.
Enterprise is complex, consumer is straightforward?
When we talk about complexity of business environments, we usually think about large enterprises. Technology and business architectures, governance, distributed environments, security, data explosion, and expectations of the end user all contribute to the complex environments. Then, there is also a time factor – instead of replacing the complex systems with more streamlined ones, we are adding additional layers of complexity by keeping legacy systems and integrating them with the new ones. On top of that, we are keeping or introducing business processes, that make consolidation almost impossible.
For most companies, trying to move forward comes with a painful set of activities that are required to discover, understand, and work with a myriad of ideas and technologies that are part of the system.
In the last ten years, we saw an emerging force that is changing dramatically. And it did not start with reducing the complexity of existing systems, instead it created a new playground – the consumer environment. There is no room for complex systems there. Everything must be clean, quick, and understandable at first glance. Solutions and systems must be lean and configurable so that we can connect with the majority of customers, but still keep that configurability out of the complex zone. That approach taught us a lesson or two about how to look at the solutions and how we should keep them or move them out of the complexity zone.
Business complexity first, software second
Most of the time the quest itself becomes a complex adventure: we think that all our problems can be solved with some form of an application (“there is an app for that”). Finding the right solution for the right problem is an interesting task not only from the perspective of software developers (multiple libraries, frameworks, integration points, tools and products) but also from the business perspective (features and functionalities). Even if we can hide the complex development from the end customer, it is very hard to remove business complexity from the end product. Let’s admit that one thing: we are very complex by our nature. Systems that we create are an ever-tangled web of strategies, plans, processes, activities, and executions that are trying to achieve the predicted success of the company.
To make it even worse, from time to time we introduce fundamental changes in an enterprise organization. By trying to keep an organization agile and amenable to disruptive changes and innovation, we are ready to dramatically alter the existing environment.
Complexity kills productivity
One of the most obvious examples of complexity that kills productivity is email (which was introduced as a solution to a number of our problems). If you go back to the early 90s, we all saw the advent of the Internet and related services as a great tool to move faster and increase productivity. Instead of numerous phone calls and fax letter exchanged between two or more parties in a business relationship, we could use email as a new way to track progress, start activities, or exchange information. And at the beginning that was a great move forward: instead of one or two sales activities per day, we quickly started to be much more productive, running at least two dozen opportunities at the same time.
This leads to more complexity, of course: we are driving multiple issues concurrently. So, we feel that we are very productive and that we are driving all the important activities in our organization. But from the outside, people are waiting for your answers, they are stuck because you are not responding to their requests and so on. This is universally true for any type of organization: every single work process expands in a complex environment, and you need to think differently to manage those issues.
What are the next steps in this journey?
There are multiple ways to solve the complexity issue, enough to merit a sepate discussion, but feel free to leave comments with your thoughts. For now, let’s just finish with the general idea that we should remove complexity in management decisions - no policy will do that automatically. We are on our own devices to think of a solution.