Extra bonus: Complexity, Cynefin, and Agile
One of the questions I often hear as an Agile Transformation coach is “When to Apply Agile?”, this is usually closely followed by “Agile doesn’t fit everywhere right?”. I used to feel that Agile practices can fit almost every situation and that Agile applies everywhere, however, my thinking shifted after I discovered the Cynefin Framework. If you’re not familiar with the Cynefin framework it’s described as a Decision Domain framework that can be used to determine the best way to approach a problem. The framework is relatively straightforward to grasp but has a fair amount of nuance that takes some time to learn. At it’s core, it’s about looking at the problem you’re dealing with and understanding what approach would work best in that ‘decision domain’.
There are four domains within the Cynefin framework: Chaos, Complex, Complicated and Obvious or Simple. Each domain is characterized by certain attributes and has different approaches that work most effectively. Initially, most problems start in what is called the Disorder domain which is where you should gather information to determine which of the other domains your problem resides.
The Obvious domain is characterized by “known knowns”, this is a domain that is well understood with well defined constraints and clear ’cause and effect’. In this domain, best practices and standard operating procedures provide predictable and delivery. This is a good place for most businesses to operate as it’s where operating margins can be optimized and work can be easily managed. The challenge is that this domain is buffeted by the winds of change and it doesn’t take long before well accepted best practices become dangerous constraints that can be prevent organizations from adapting and adjusting. History is littered with the reminders of companies that had operated confidently in this domain only to have it swept away from them, Kodak, GE, JC Penny, Sears to name but a few.
The Complicated domain is the place of “known unknowns” which require analysis and expertise to determine the best answer. In this domain we need specialists and experts to help assess the facts, determine the best solution and apply it appropriately. I often think of this as a space with some constraints, but latitude in how these are applied. For example, integrating two large ERP systems has well defined constraints in terms of the systems and infrastructure used but a lot of latitude in how these are configured and integrated.
The Complex domain is represented as the place of “unknown unknowns”. The relationship between cause and effect isn’t clear and the best approach is to run small, safe to fail experiments to determine how to approach a problem. This is an area typically found in new technology domains like the application of machine learning and artificial intelligence but it can also exist when organizations are struggling to adapt to changes in the workforce like accommodating the needs of Gen Z employees in an organization established by Boomers.
Finally, the Chaos domain is where things are changing so quickly that there is no time to collect and analyze information, rapid decisions need to be made and some action to move out of Chaos into a place of some stability to apply techniques that fit the Complex domain. This is the place of disruption and when it happens to an industry the only survivors will be the ones that start making bold moves to shift out of the domain. Walmart was affected by the same industry disruption of online commerce as Sears and JC Penny, however, it chose to decisively change its organization to address this disruption. Walmart now has a very competitive online and brick and mortar solution that is competitive with Amazon while Sears and JC Penny are mere shells of their former past.
There’s a lot more to the Cynefin framework and considerable nuance to the areas around the boundaries of each domain. If you’re interested in learning more I’ll place some links at the bottom of the article. However, the real question is how does this relate to “When to Apply Agile?“. The answer is that it depends on which decision domain you are operating within.
If you happen to be developing a point-of-sale (POS) terminal to process retail transactions in store fronts you’re probably operating in the Obvious domain. This is extremely well defined and all transactions and device standards are tightly constrained. In this space applying Waterfall techniques with well defined requirements analysis, design, development and testing will be the most effective approach to delivering your new POS terminal. However, let’s say your new POS solution needs to interface with an existing SAP ERP system to process transactions. This would be a place where more analysis is required on how transactions should be associated to different journals of account and how these should be represented in reports and dashboards. Here it would be valuable to leverage Agile practices like timeboxed iterations to get feedback on potential ideas. Finally, let’s assume you were also developing a new mobile app that would take advantage of advances in cryptocurrency that weren’t available yet in the market. This area would benefit from more Lean Startup and Design Thinking and a heavy emphasis on prototyping and running small, safe to fail experiments to better understand how this app would work.
I find the Cynefin framework helpful in answering questions project managers often bring up when trying to determine how to apply Agile. They often, rightly, struggle with applying Agile practices during phases of a project like the training and deployment phase of a large global system. In this setting, projects would transition to an Obvious domain where setting up training for new users, deploying the system into production environments and communicating the status of change activities should be planned and managed prescriptively in a linear fashion. In fact, for most large projects work will need to be performed in several of these different domains.
Now to be clear, its also important to differentiate between Agile practices like Scrum and XP and Agile concepts like a growth mindset and the Agile values. Agile concepts can, and should, be applied in all of the different domains, however, Agile practices represent the tools that are dependent on the needs of each decision domain. Generally, I see Agile practices working effectively across the Complex and Complicated domains but with more emphasis on Lean Startup/Design Thinking techniques in the Complex domain.
So the next time you’re asked When Does Agile Apply, try using the Cynefin framework to answer when Agile is most effective.