What does it mean: "complex adaptive problem"?
From the scrum guide: "Scrum (n): A framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value."
My understanding is that complex problems are those from complex domain in the Cynefin model: https://en.wikipedia.org/wiki/Cynefin_framework
And adaptive doesn't refer to the problems but to the solution.
from my understanding "complex´" means that the problem's domain makes it difficult to take all factors into account. This includes not knowing all variables (e.g. how to build the product, what kind of technology is needed, what will be the use cases) and even if you do know all factors, you don't know all possible values of those variables.
"Adaptive" means that there is also a dynamic component, because if it were only complex, at least the general conditions stay the same, but in an adaptive scenario both variables and values also change over time (e.g. technology is outdated, users get accustomed to certain types of UI/UX, competitors "raise the bar" concerning performance or pricing etc.).
Adaptive also refers to the fact that the further you are into the development of a solution to the problem, you learn more and more, uncover more variables and scenarios (that's were Scrum/Agile is excellent, because it embraces changes).
Especially with software development most problems are both complex (unless it is a VERY simple software that one person builds alone in a few days) and adaptive (new software versions, new operating systems, changes in user behavior, etc.).
This is how I explain it in software development terms:
Simple: A system is very well understood and consists of only a few elements. Risk is low and the development process can be managed in your head.
Complicated: There are lots of bits and pieces to the system. Again they are well understood and risk is low, but the development process cannot be managed in your head. A waterfall process may be appropriate as the outputs will be quite predictive.
Complex: There are lots of bits and pieces to the system but they are not well understood, and risk is correspondingly high. An emergent process is needed to identify the best bits and pieces to use as the desired system behavior clarifies. Uncertainty is thus brought under empirical control. This is the sweet-spot of Scrum.
Chaotic: There are probably lots of bits and pieces to the system. If so, not only are they poorly understood, but the uncertainty cannot be brought under control through emergence. A significant hypothesis (such as an MVP or Sprint Goal) cannot be formulated and validated. It may be possible to make very small changes to the system and observe certain effects, but there is no ability to mitigate the high risks that are present.
I understand what complex is but not complex adaptive.
So - what is the difference between complex and complex adaptive?
At the beginning of the scrum guide is only complex: "Scrum is a framework for developing and sustaining complex products.". In the definition of scrum is complex adaptive problems: "A framework within which people can address complex adaptive problems"
A complex adaptive problem is one which is not well understood, and must be brought into focus through transparency, inspection, and adaptation. Hence in Scrum the problem and its solution can be expected to co-evolve sprint by sprint. The inspection of a Sprint Increment may lead to the adaptation of the Product Backlog, which essentially captures the scope of the problem at hand.
Adding on to @Ian Mitchell, this is how I explained "..complex, adaptive.." to myself.
In a complex domain, the requirements and solution are fuzzy and an iterative process helps to clarify both.
The context of "adaptive" comes from the dictionary meaning of adaptation "a change or the process of change by which an organism or species becomes better suited to its environment."
By this, I think the definition is trying to say: "Scrum is a good fit for those problems where the Requirements and Solutions have to fit into a "Situation" which is itself changing". An example would be: What framework should a startup use to build a mobile app to help end users select "right" clothes in a store from among 10,000 SKU in the store ? The requirements and solutions which help build an MVP with 100 users would be very different from the requirements and solutions when the target user base of 1 Million users in 18 months are to be handled. SCRUM, with its iterative and discovery focus, will enable a team to develop the solution in this complex domain.
A complex adaptive problem is one that changes by the merit of you trying to solve it before you are able to complete the solution.
This may be because of time, but also because of the complex nature of the parts, the actions that you take to solve it change the dynamics of the situation, or simply because it contains human elements that cannot be predicted.
Also see Wicked Problems: https://en.wikipedia.org/wiki/Wicked_problem
The adaptive refers to the nature of the problem adapting as you try to solve, creating in a non-predictive result.
The solution is short, rapid, experiments with pre-defined outcomes that involve everyone who is effected by the experiments. Rapidity is required otherwise the problem statement changes too much for the current work to remain relevant.
Agile methods are an attempt to solve these types of problems however due to a lack or people skills and understanding of the problem domain, most implementations fail miserably because the agile mindset for solving these problems is not held.
I've heard from an Agile coach that Scrum was not good for complex problems but for complicated ones. Due to the same Agile coach Kanban is more suitable for complex problems.
Have you ever heard something similar and is it backed up by any literature, fact, or empiricism?
I've heard from an Agile coach that Scrum was not good for complex problems but for complicated ones.
Did you ask them to clarify their understanding of the word "complex"?
In Scrum, a complex challenge is one where more is unknown than is known. The whole point of a Sprint is to meet a Sprint Goal, which presents an opportunity to mitigate a significant risk or uncertainty. Scrum is all about establishing empiricism under conditions of high uncertainty.