2 Fundamental ↑

No. 2 — Acknowledge Uncertainty

We humans often feel a tendency to portray ourselves as knowledgable, competent and masterful, especially when our work is being observed and judged by others.

However, there are situations in which we are none of these, and feigning certainty in these situations is not likely to lead to positive outcomes.

Dan Snowden’s Cynefin framework offers a useful guide to differing approaches that are appropriate for situations with varying degrees of certainty.

Cynefin Model

The Cynefin framework suggests four different approaches, starting with situations of high certainty, and proceeding to situations with progressively lower degrees of certainty.

Another way to think about these four categories would be to use the following terms:

From a Knowledge Management perspective, it is useful to think about gradually moving particular situations down this scale, towards greater degrees of certainty. Once past an immediate crisis, then experimentation may be used, and once the results of experiments are known, then expert knowledge may be built, and once all possibilities have been categorized, then procedures may be written, or perhaps even automated, to deal with similar situations in the future.

On software development projects, it is critically important for everyone, but especially leaders, to acknowledge a legitimate spectrum of uncertainty, and to be able to draw from a palette of differing approaches to deal with these varying situations.

When considering the application of the Cynefin framework to software development, it is important to remember a few salient points:

This idea of acknowledging uncertainty has far-reaching implications, and should be kept in mind when considering the following big ideas as well:


Next: The Inconvenient Nature of Software Development