Disciplined Agile

Dealing with Complexity by Creating a Bias For Simplicity

Table of Contents

It is difficult to make predictions, especially about the future. – Mark Twain
For every complex human problem, there is a solution that is neat, simple and wrong. – H. L. Mencken

Executive Overview

We live in a VUCA world (volatility, uncertainty, complexity, ambiguity). It is important to understand that organizations are not simple, nor even just a collection of components that can be understood and managed. Even when the laws of flow, lean, theory of constraints, organizational development and more are understood, the number of interactions in a company are over-whelming. The key is not to take complexity head on but to understand that systems are really systems within systems. Some of these systems are fairly predictable but are wrapped in an informal structure that makes perceiving what is happening difficult if not impossible.

The first step to improving our methods requires attending to the laws of flow, lean, and theory of constraints that are present in our work. Here is an example of a law: putting people on too many projects increases multi-tasking, injects wasted work into the system, and delays the delivery of value.

This page discusses how to look at an organization – a complex system – to see what we need to improve. Having clarity on what will work and why enables us to be more able to overcome the natural resistance to change that is ever-present. This page describes:

  • Inherent simplicity – the belief that inherent in complex systems is a simple model to attend to that will enable effective action. We prefer the term, “a bias for simplicity.”
  • Factors for simplicity – what to look when your company is doing product or service development
  • Using simplicity factors to achieve good results predictably – how a bias for simplicity helps to improve your organization’s effectiveness.

It concludes with a discussion about navigating complexity.


Inherent Simplicity

It is not possible to fully discern case and effect in complex systems. This means it is not possible to fully plan and predict how to change a complex system. In complex systems, most efforts approach change by relying on methods of emergence such as inspect and adapt, PDSA, or probes.

An additional approach is to attend to what we call “natural laws”, the laws of flow, lean, and theory of constraints. In particular, the theory of constraints puts forward a concept called “inherent simplicity” – the presumption that inherent in complex systems are rules that, when understood, enormously simplify how to look at the system. These rules already exist. We must find them and take advantage of them. Doing so enables us to increase performance and reduce or eliminate the challenges we are facing. Violating them leads to difficulties.

Inherent simplicity helps us look at a complex system in a different light. Rather than focus on the complexity in the problem domain (and getting overwhelmed by that), rather than trying to apply the general principles of flow and lean (which is still too broad), we want to focus in on a few dimensions that, when we explore them, expose most of the significant issues.

Of course, it is not always easy to discern these issues, even with the additional perspective of natural laws. We are still confronted by by volatility, uncertainty, complexity, and ambiguity (VUCA). Disciplined Agile helps provide guidance.

One trick to discern issues is to take the tack of trying to make things worse rather than better. It is surprising how much this reveals. For example, noticing that doubling workload for busy people causes significant delays identifies the relationship between workload and productivity. In particular, look for delays you are causing. Delays in feedback from customers, delays in information access, isolation of teams and individuals. Delays are red flags to spot cause and effect.

It is also very important to measure how well we are doing. Use the value stream impedance scorecard to assist you.

Note: Dr. Goldratt and the Theory of Constrains identified the term “inherent simplicity.” His six-minute video is excellent.

We prefer to use the phrase, “a bias for simplicity.” We are not looking for simple solutions. As much as possible, we are looking for a way to look at our problem so that the problem becomes simple and our solutions become effective. It is a pragmatic approach that is focused on continuous improvement of the system over time rather than trying to understand everything. 


Factors for Simplicity

If we dive deep enough we’ll find that there are very few elements at the base – the root causes – which through cause-and-effect connections are governing the whole system. The Choice, Dr. Eli Goldratt.

We can learn how to guide the actions we want to take by understanding useful lean and flow principles that will get us there. Here are principles we have found especially useful for developing products and services.

Probably, there are others, and you should continue exploring the inherent simplicity in your system.

The following table illustrates the guidances and improvements that relate to each of these factors for simplicity. 

It is important to understand the true nature of the system we are in and how we can see to change its behavior. We risk waste or ineffectiveness if we don’t understand what we are actually dealing with. The following table lists several dimensions of inherent simplicity and what actions can be guided by them.

While we can start with these examples, it is important to not fall into the trap of using these as mantras to follow and not continuing the exploration of the inherent simplicity in your system.

While giving acknowledgement to theory of constrains for the term “inherent simplicity”, we prefer to call what we’re trying to do a bias for simplicity. Instead of looking at our problem as intrinsically complex, we want to look for a way to view the system in a way that we shed light on its behavior by looking at the problem in a simpler manner. This also has us not interpret Dr. Goldratt’s work in a manner he hadn’t intended.

Factors for Effective Value Streams

Figure 1. Factors for Effective Value Streams



Using Simplicity Factors to Predictably Achieve Good Results

Attempting to change a complex system is a complex, multi-dimensioned task. It can feel overwhelming. It helps to break the task into some smaller dimensions to help get a handle on what is involved. The Disciplined Agile transformation process blade offers some good help.

Here are some dimensions to consider.

  • The proposed change itself
  • The theoretical benefit we expect
  • The actual results we are seeing and how we will see it
  • The anticipated cost of doing the change
  • What is involved in getting people to do the change or to go along with it

As we prepare for a change, we will have benefits that we are hoping for, at least theoretically. But given the amount of uncertainty in the system, we should be looking for the unanticipated effects that come from implementing the change. The way people work is often highly related to how work is done in other parts of the organization. In fact, that is a common characteristic of complex systems – they are defined more by the relationships between the components in the system than by the components themselves. These relationships are hard to see or understand. Therefore, it is important to have a way to be watching for these effects. We must attend to the actual results we are seeing. That is a function of the transition monitoring team.

The greatest uncertainty is often getting people to actually do it. The longer it takes and the greater the resistance to doing it, the greater the cost will be. By using the factors for simplicity, we can demonstrate the why for the suggested improvement. This can improve alignment across the organization and create a greater focus on achieving a global improvement and not just local optimization.

As we plan for the change, the goal should not simply be to try to jump to a good solution; rather the aim is to follow a path that will get us closer to a good solution. The simplicity factors provide mechanisms to help us.

  1. By looking at our system by attending to the simplicity factors we’ve identified – workload, efficiency, batch size, collaboration, management’s role, planning and quality – we can readily see what our greatest impediments are
  2. How we are violating the natural laws of flow and lean should now be apparent.
  3. We can now decide what solutions to try. It is likely that several impediments will have been discovered so we don’t want to try all of them. Doing so will not only cause cognitive overload but will make it if you’re really working on the most important things. Keep in mind that solutions further up the value stream have a greater impact on things later in the value stream than the other way.
  4. Implement what looks like a good solution and see what happens

By having clarity on what we want to do, we can great alignment in actually achieving it.


Navigating Complexity

As we attempt to change an organization (or any complex system), we are faced with a dilemma. We know that doing certain things would really help. At the same time, we know that nothing is really certain. There are unexpected roadblocks at every turn.

It requires that we have to adopt a holistic view of the system. The system is defined in part by the relationship between its components and that is where uncertainty crops up. While some relationships are clear, others are often misunderstood or not even visible. Add in small errors having big costs and misunderstandings and misinformation, and certainty goes out the door.

To navigate this complexity, act based on the relationships that are known and work to discover more relationships. Attending to the results of changes will help to surface these relationships. We learn as we go through a combination of theory and practice and validation. We don’t view backtracking as failure, but as learning something about how our system work. Learning fast. 

Attending to the relationships in systems

 Figure 2. Types of relationships

Related Resources