Welcome to Codefin!

Codefin is about applying the Cynefin sense making framework to specific practices of software development, to methodology, architecture and design, testing practices, and more. With this approach we bridge over a gap, for Cynefin is mostly used for strategic decisions, while software developers often choose habitually their favourite tools, irrespectively of the context. The resulting Codefin framework is a synergy, where the various methods and practices of software development each find their place in the Cynefin domain landscape, and it becomes clear why the multitude came about and how to approach a given situation.

Concerning Cynefin

The Cynefin Framework offers decision-makers a “sense of place” from which to view their perceptions. It was created by Dave Snowden around 2000 and is a Welsh word that stands for habitat. And indeed, once you have an eye for it, you can see it manifesting everywhere. On this site you’ll get to observe some of the ways it appears in software development.

The above image is that of Liminal Cynefin, with a more detailed view of the border regions of the Complex domain where a lot of the dynamics play out (also see further below).

And here are the best starting points to begin your journey at:

At last, before delving into Codefin, some more words to pique your interest:

Codefin: The Talk

Here are the most important slides from the talk.

The classic Cynefin diagram with a catastrophic failure due to complacency.

Cynefin with nautical beasts demonstrating the various levels of constraints.

A few topics that demonstrate a four-way correlation with the contexts.

The East-West dichotomy is a driver of dynamics and a cause of many conflicts.

The slide for the lols, not to be taken too seriously. Also, no, no more explanations.

And then, after the long introduction, the money shot with the summary of Codefin.


Please remember:

The Videos

At Craft Conference 2017 in Budapest, Hungary (alas, offline)

At Agile by Example 2017 in Warsaw, Poland


And here you can download the presentation as pdf. Enjoy!

Cynefin Overall

Liminal Cynefin

Liminal Cynefin by Dave Snowden

The motivation for the liminal version came from a desire to create a visual representation of the reality of complexity, namely that it is not one state. I also increasingly realised that many of the methods and tools that are valuable in this space (like SCRUM) actually don’t fit within domains but are shifts between domains.

Systems Thinking and the Cynefin Framework

Systems Thinking and the Cynefin Framework by H. William Dettmer

A particular system or organization may have components that operate (with varying degrees of success) in different domains simultaneously. For example, a production process may be considered almost exclusively complicated, but the marketing function that promotes the sales of what production delivers may be complex.

Sense Making in a Complex and Complicated World

The new dynamics of strategy by Adrian Colyer

When people use the Cynefin framework, the way they think about moving between domains is as important as the way they think about the domain they are in, because a move across boundaries requires a shift to a different model of understanding and interpretation as well as a different leadership style.

Software Development

Defining Complexity Better

Is Software Development Complex? by Joseph Pelrine

Software development is a rich domain, containing many aspects, a large percentage of which can be classified as complex. The interaction between these aspects is also complex. Software development can benefit by being treated as a complex domain (and not an ordered one), and taking advantage of the toolbox of social complexity, namely the Cynefin method.

Software Development = Knowledge Acquisition

The Five Orders of Ignorance (pdf) by Phillip G. Armour

Software is easy to produce if I’ve already produced this type of system before, because I have already obtained the necessary knowledge. So, the hard part of building systems is not building them, it’s knowing what to build – it’s in acquiring the necessary knowledge.

(Where 0th order of ignorance can be mapped to Obvious, …, the 4th to Chaotic and the 5th to Disorder.)

Requirements, Conversations, Knowns, Unknowns, Knowables

Cynefin for Developers: Striking the balance between analysis and feedback by Liz Keogh

The most interesting responses, however, are when the business stakeholders reply with, “Oh, I’m not sure! I hadn’t thought of that.” At that point, we can stop trying to do analysis – we’ve just found uncertainty; we’re in the complex domain, and we can focus on getting feedback rather than forcing the business to clarify the requirements.

TDD is for The Complex Domain

Shocking news: test-driven design is not helpful when the design is already done! by Eugene Wallingford referring to Avdi Grimm

As Grimm says, TDD helps the programmer think about how to start writing code and when to stop. For me, the most greatest value in doing TDD is that it helps me think about what I need to build, and why. That is design. If the problem is already defined to the point of implementation, most of the essential design thinking has been done.

Systems Thinking

Tools for System Thinkers

The 6 Fundamental Concepts of Systems Thinking by Leyla Acaroglu

In this series on systems thinking, I share the key insights and tools needed to develop and advance a systems mindset for dealing with complex problem solving and transitioning to the Circular Economy … *There are way more than six, but I picked the most important ones that you definitely need to know, and as we progress through this systems thinking toolkit series, I will expand on some of the other key terms that make up a systems mindset.

Systems Thinking as Synthetic Process

The influence of Systems Thinking on Agile practices by Arnaud Lamotte

We can recognize in Systems thinking many Agile key concepts such as iteration, continuous planning, importance of people, non-controlling leader and importance of interactions, to name a few. … Also I am not sure if approaching problems backward is directly related to systems thinking although encouraged by Russel Ackoff but it seems somehow related to TDD.

Product and Project Management

The Product Lifecyle & Cynefin

The Product Lifecycle & Cynefin by Craig Strong

By spending a small amount of time to understand your domain, you can apply best practices and become more efficient at a systems level. … Can Scaling Frameworks for instance truly Probe-Sense-Respond or Sense-Analyse-Respond? How can you have delivery roadmaps of Unknown Unknowns. It’s key to understand your domain against the Age and Stage of your product lifecycle to ensure that you are setup for success.

Dual Track Agile

Adapting Usability Investigations for Agile User-centered Design by Desirée Sy

To allow the User Experience Team to iterate on designs, we usability tested prototypes at least one cycle ahead of developers, and then passed on the validated designs to be implemented. We would also conduct contextual inquiry for workflows at least two cycles ahead, and usability test the implemented working version to check for design drift.

Also, see Dual Track Development is not Duel Track by Jeff Patton and Dual Track Agile by Marty Cagan.

The Evolution Curve

On mapping and the evolution axis by Simon Wardley

By overlaying the types onto the ubiquity and certainty curve and extrapolating the ends (i.e. when something is novel we have very little information on it), I was able to finally produce in 2007 the evolution curve (see figure 7 below) which demonstrated the pattern which I had used in mapping (see figure 1 at the top). It was shortly after this, I was able to demonstrate the reason why the pattern occurred was simply the interplay between supply and demand competition.

Coherence, Convergence and Coalescence

Exploring “A work in progress” by Jabe Bloom

Until seeing this model, Coherence has been, for me, the main measure of “valid” structure in narrative. Here the model yields it’s first insight for me, “full” coherence by itself is not only not “enough”, it is outside of the “valid range”. We need to have an additional measure of validity on our pursuit of actionable knowledge, Convergence.

Stages of Growth

Stages of Growth by Paul Strassmann

The idea that organizations, nations or cultures evolve through predeterminable stages of growth has attracted historians and scientists alike. Understanding the “stages of growth” is only second best to possessing the magnificent gift of prophecy, because it endows the individual who has such an insight with ability to anticipate what comes next.

People, Learning and Planning

Storming, Forming, Norming, Performing

Storming, forming, norming and performing – developmental sequence in groups by Bruce Tuckman (in 1965!)

I began to look for a developmental sequence that would fit the findings of a majority of the studies. I hit on four stages going from (1) orientation/testing/dependence, to (2) conflict, to (3) group cohesion, to (4) functional role-relatedness. For these I coined the terms: forming, storming, norming, and performing.

How to Enable Organisational Fluidity

8 guidelines to enable organisational fluidity by Sonja Blignaut

My hypothesis is that in complexity, in addition to flow of work, resource and information, systems need FLUIDITY, i.e. the ability to adapt our flow processes while in the flow. In the complex domain, the context is not stable: this is the so-called VUCA world. It is therefore critical for the system to be able to morph it’s structure.

Also, see Volatility, uncertainty, complexity and ambiguity (aka VUCA) by Warren Bennis and Burton Nanus.

Organisational Learning: From Intuition to Institution

An Organizational Learning Framework: From Intuition to Institution by Mary M. Crossan, Henry W. Lane and Roderick E. White

The 4I framework of organizational learning contains four related (sub)processes – intuiting, interpreting, integrating, and institutionalizing – that occur over three levels: individual, group, and organization. The three learning levels define the structure through which organizational learning takes place. The processes form the glue that binds the structure together; they are, therefore, a key facet of the framework.

Cynefin in Evaluation Planning

Using the Cynefin framework in evaluation planning: A Case Example by Heather Britt

For the aspects of the situation that could be pre-determined (simple and complicated), logic modeling tools were helpful. For those aspects of the situation where the dynamics of the situation were entwined and emergent, the first step was to recognize this as an accurate description of that aspect of the situation, rather than a failure to accurately predict.

From Exploration to Settlements

On Pioneers, Settlers, Town Planners and Theft by Simon Wardley

What you want is brilliant people in each of these roles. … Determine … an activity that is currently expressed as a product but is ready for industrialisation to a commodity and even better a utility service. It needs to be suitable, widespread and well defined enough, the underlying technology should exist and there should be a frustration in the market with the current provision.

Concerning Non-Decisions

Oath of Non-Allegiance

Oath of Non-Allegiance by Alistair Cockburn

I promise not to exclude from consideration any idea based on its source, but to consider ideas across schools and heritages in order to find the ones that best suit the current situation.


Thanks for your interest, keep on connecting the dots, and enjoy making sense!

Yours, infinitary.