For some time now, I’ve been working on getting a better grasp of the Cynefin framework and the related topic of Complexity Theory.
This is mostly because I kept hearing something to the effect of: “We’re working in a complex adaptive/emergent system …” as well as, “Complexity: it’s the science of the 21st Century!”
So I am trying my best to figure out what the heck folks are talking about.
In this post, I share what I’ve discovered so far.
Meaning of “Cynefin” (and How to Pronounce It :P)
The word “Cynefin” is Welsh, it is pronounced kin-ev-in and it has no direct translation into English. Some of the best explanations I’ve found are: “a place to stand,” “usual abode” and “habitat.”
Dave Snowden, a Welshman and scholar, came up with the Cynefin framework circa 1999 as a way of providing a typology for exploration and decision-making. In the simplest sense, the framework is a tool to help you know where you are (the “habitat”), so you know what you might do or how you might behave (no sense trying to swim if you’re on top of a tree …).
Five Places to Stand
Snowden’s Cynefin framework (updated 2020 March) has five habitats or domains:
DisorderedAC (Aporetic or Confused)
In common usage, the words “complicated” and “complex” are often used synonymously, and that can create a bit of confusion. Take a trip with me through all of the domains and let’s see if I can tease the differences apart.
Obvious = Easily Knowable
In this abode, the relationships between cause and effect are, well, obvious. This domain was once referred to as simple. Think of a table lamp. If you turn the switch and it doesn’t work, I’m pretty sure you know all the things you need to know to troubleshoot. Check if the lamp is plugged in. Check if there’s power at the plug. Change the light bulb, etc.
In Snowden’s framework, the best approach when you know you are in an obvious place is: sense, categorize, respond.
- Sense the light doesn’t work
- Categorize the problem (power supply or bulb?)
- Respond appropriately (plug lamp in, turn on breaker, change the bulb.)
In this domain, you can observe directly (look at the plug, the circuit breaker, and then apply best practices (plug something else that you know works into the socket, swap bulbs). Your results will be quite predictable.
2. Complicated = Not Simple, But Still Knowable
In the complicated domain, the relationship between cause and effect requires analysis and investigation combined with the application of expert knowledge. And the results, while possibly incomprehensible for the novice, will be predictable for the expert.
For example, take my computer (please do, it’s really old …). There’s quite a bit that I know I don’t know about its inner workings and why it might not perform the way it should. But there are fortunately plenty of experts who do know.
In fact, they could take my aging Mac apart into its many constituent pieces, figure out what’s wrong and put it back together (adding whatever new gizmo it needs) and it will work as it should.
And these experts could do this an endless number of times (provided, of course, I have the budget for their services). Rocket surgery lives in this domain, too. The approach will be: sense, analyze, respond. Good practices (the right people, the right process and sufficient time) will work every time.
3. Complex = Not Fully Knowable, Not Fully Predictable
When the relationship between cause and effect can only be perceived in retrospect, but not in advance, we are in the complex domain. This is the haunt of unknown unknowns–a phrase that became popular for a few minutes during the George W. presidency.
Expertise in a particular subject matter may be helpful, but unlike in the complicated domain, it is not necessary or sufficient to control the outcomes.
I came across what I think is a great illustration of the complex domain when I watched a 4-minute video describing the reintroduction of wolves into Yellowstone National Park.
The presence of a small number of wolf packs, absent from the park for over 70 years, literally changed the course of rivers in less than a handful of years. Did anyone expect that? Unlikely. Sure, humans influenced it, but we could determine only in hindsight what would happen and why.
When traveling in complexity, the approach is probe, sense, respond.
Using the wolf example, you’d introduce an apex predator and measure things like wolf population, deer/elk/moose population, small rodent population, stream clarity, raptor count, tree density.
And then respond based on the what you’ve learned from the feedback loops. For example, add more wolves or reduce them. It is a safe-to-fail experiment. (Thanks to Ralph van Roosmalen for the metrics ideas!)
4. Chaotic = Neither Knowable Nor Predictable
In the domain of chaos, there is no relationship between cause and effect at a systematic level. Any moment is one that can have both unforeseen as well as incredible consequences. Decisive steps are called for all the time, yet what will happen is unknowable.
The approach in the habitat of unknowable unknowns is: act, sense, respond. Smash the glass, grab the fire extinguisher, aim at the base of the flame and pull the release. And then maybe run …
When in the domain of chaos, our behaviors tend to be reflexive and rightfully so. We don’t have the time to experiment. While we may learn something, it is often through serendipity.
5. AC (Aporetic or Confused)
The fifth domain is AC
disorder, which is the state of not knowing what type of causality exists. I don’t like to travel there. And when I’m there, I try to get the hell out as quickly as possible.
Cynefin and and Software DevelopmentNo sense trying to swim if you’re on top of a tree … Click To Tweet
You might be wondering, “So what does this have to do with software development?” Me, too!
Circling back to my introduction: it’s important to know where you are operating, so you know how you should prepare, how you should behave and what approach you should take regarding measurement and feedback loops. Otherwise you may end up making decisions based on biased or simply inaccurate information.
The Ordered Realms
Back to the Cynefin domains themselves and the context of agile development. The obvious and complicated domains both lie within the boundaries of “ordered” systems. With ordered systems, we can relate cause and effect with confidence. If we take a certain action, we know what the effect will be; given an effect, we can determine what caused it.
A linear notion of decision-making works well. Got a display bug in a browser? Fix the underlying CSS. Lots of error messages in your RAID logs? Find the bad drive and swap it out.
In ordered domains, building new software tends to be pretty straightforward. Fixed processes generally work fine: Identify what you believe are the most valuable things. Do them first. Take measurements (which will be pretty straightforward) and then build more valuable things.
If you find yourself in one of the two ordered habitats, obvious or complicated, on a regular basis, you are safe following recipes and protocols. Also, please send me a postcard. Remind me how the weather is there.
The Unordered Realms
On the other hand, if you’re like me, much of your time will be spent in one or two of the three domains that are unordered: complex, chaotic or disorder.
If you don’t know where you are, you’re in “Disorder.” Your first priority will be gather enough information to know what you know or what you don’t know so you can move out. Are you under a DDOS attack or is a router down? Anywhere will be better than disorder.
In chaos, like complex, no amount of analysis will allow us to predict the full behavior of things. We can not determine in advance what will cause a particular outcome. While planning might be useful, the plan itself will not be.
If you find yourself in the realm of chaos, speed of response is vital. Triage. Stanch the bleeding. Stabilize the network. Get the servers back up and running. Figure out the root causes later. The only advance planning that makes sense is to have a known crisis management crew. If stuck on what to do, perhaps explore an oblique strategy to break the creative block. Novel solutions will likely be sufficient to help you stabilitze and move to another domain.
Last, and not least, we come to complexity, which got me started on this adventure. In complex systems, even though the relationship between cause and effect is often fuzzy, things tend toward being somewhat stable. So we can run experiments and see what happens.
In fact, we ought to run a series of experiments or a number in parallel to maximize our potential for learning. More planning won’t help. The best thing to do is just get started, launch many probes, measure many things, and set up lots of feedback loops. Then we can get a holistic perspective of what is happening. We can begin to see patterns and respond with amplification or dampening.
Our solutions and processes will continually adapt. This is the playground of complex emergence.
The Terrain of Complexity
The domain of complexity covers varied and expansive terrain. The Stacey Matrix helped me navigate by using the lenses of agreement and certainty. (Shout out to @scrummando for pointing me to Ralph Stacey’s work.)
In its simplest form, we can draw the matrix in two dimensions as below and overlay four of the five Cynefin domains. I acknowledge this is not a perfect representation of the world around us, as the borders and transition from one domain to another are not so neat and tidy, and with any particular situation, there may be islands of one domain floating in another.
(And maybe we could use a third dimension like entropy, or algorithmic information content …)
Nevertheless, the 2-D view provides a useful perspective, a way towards greater awareness:
- As we get further along the x-axis, the linkages between cause and effect become less clear, and we have less certainty. The y-axis indicates the level of disagreement about what we should (or should not) do about an issue or a decision.
If we pause to find out our general X-Y coordinates, we can design experiments to probe, poke and prod appropriately.
For example, would more or less certainty be helpful (maybe a shared mission/vision) or is it perhaps agreement we should be exploring through coalition building, negotiation, or compromise? How close to chaos are we? Is that an area to be avoided, lest like Wile E. Coyote we end up at the bottom of a canyon, or is it a place where some great innovation may be found? How safe would it be to fail?
I want to circle back to the complicated and complex domains, which as I mentioned earlier are easily conflated. I found two things that help grok the differences. First, an article by Will Allen explored the art of leadership and management within complicated and complex systems. Notice the contrasting brushes, palettes, and approaches that Allen highlighted for each domain:
Roles, Tools, and Approaches for Complicated
- Role defining – setting job and task descriptions
- Decision-making – find the “best” choice
- Tight structuring – use chain of command and prioritize or limit simple actions
- Knowing – decide and tell others what to do
- Staying the course – align and maintain focus
Roles, Tools, and Approaches for Complex
- Relationship building – working with patterns of interaction
- Sensemaking – collective interpretation
- Loose coupling – support communities of practice and add more degrees of freedom
- Learning – act/learn/plan at the same time
- Notice emergent directions – building on what works
The second thing I found that helped me tease apart complicated from complex was a LEGO Serious Play exercise posted by Andrea Tomasini. I’m a big fan of play time, so I was very excited when I came across Tomasini’s game.
In under an hour, it provides an introduction to four of the five Cynefin domains and helps participants explore the effectiveness of different communication and leadership styles along with the impact of planning in each domain. Check out the Cynefin Lego Game on Agile42.com.