Dealing with uncertainty, unknowns, risks and change


More traditional approaches to projects management, products development and software development life cycle management focus on what is

known & knowable

Everyone have different innate abilities and preferences among

reflection and planning Vs reaction and adaptation 

and different levels of tolerance to

 uncertainties, risk and change
 
while what matter is a balance and a tolerance that is good for the specific project/product and context.
 
What practices and skills are useful to deal with unknowns, how much risk and uncertainty is convenient for each specific product/project, what is a good balance between planning and reaction/adaptation in each specific context ?

Dealing with uncertainty, unknowns, risks and change: Contextual fitness for purpose


Contextual fitness for purpose

Traditional tools (intended as skills, practices, organization of work) used to deal with software products and projects originate from the industrial-age where communication was very limited.

The new tools Lean & Agile add to the toolbox originates from the information-age where a large communication bandwidth and a short response-time create the dynamic environment we are living in, where unpredictability, uncertainty, interdependency reach a new level.

The good set of practices and a proper organization of the work for each product/project is determined by the characteristic of each specific product/project. This is why it's important to know and understand both the tools from the industrial-age and the tools from the information-age, to know understand experience and master practices from different methodologies and then being able to identify a good mix of tools that work well for each context.

This approach is called contextual fitness for purpose as  opposed to the  one-size-fits-all approaches.

Dealing with uncertainty, unknowns, risks and change: Practices


Practices

During the last year I had the chance to highlight that Lean & Agile Software Development provide new tools to add to the toolbox that are useful to deal with
  1. uncertainty, unknowns, opportunities, risks
  2. change and unexpected events that are outside our control or influence


Previous posts detailed the sources of the former [1] and the sources of the latter [2].
Lean & Agile Software Development deal with the former with Just-In-Time, Iterative, Adaptive, Good Enough planning [3] [4] and deal with the latter with practices that help to achieve Agility [5], both are traits that belong to the key dimensions of Agile [6].

 

Two key practices among others are
  • just-in-time, good-enough, iterative-incremental, adaptive continuous planning
  • early, frequent releases in production to (alpha or beta or early adopter or ...) users of a steady continuous flow of new features and improvements

 

[1] Requirements' principles
[2] Contexts where Agility lead to better performances
[3] Iterative Vs Incremental
[4] Don’t know what I want, but I know how to get it
[5] Agility: characteristics
[6] The dimensions of Agile

Dealing with uncertainty, unknowns, risks and change: Structure & Organization


Structure & Organization

From the work organization point of view there are 2 approaches with many differences between them: the Hierarchical organization of work (like i.e. the old military organizations) and the Edged organization of work (like i.e. the one of spontaneous online communities).

It is common to have a mix of the 2, a Hierarchical organization optimized for the collaboration. That usually is more flat then deep and more cross-functional then specialized in silos.

The idea again is to find a good mix that have the contextual fitness for purpose for the specific product/project and context.

Let's compare the Hierarchical organization of work and the Edged organization of work:

Here follow the results of experiments [1] that try to measure the performance of different organization in different conditions:

  • With a complex endeavor challenge
    • the hierarchical teams were not able to deal with the workload and failed the challenge
    • the edge teams succeeded and were able, when there were changes in the circumstances, to exploit opportunities and deal with risks
  • With a complicated endeavor challenge (an industrial-age challenge)
    • the pure hierarchical teams were able to succeed and were the quickest in solving the challenge
    • the other 2 partially distributed hierarchical teams (coordination oriented and cooperation oriented) also succeeded
    • the edge teams succeeded too but took considerably longer
  • With a complicated endeavor challenge focused on coordination
    • the pure hierarchical teams failed the challenge
    • all the other teams, the coordination oriented hierarchical, the  cooperation oriented hierarchical and the edge teams scored like in the previous case
  • With a complicated endeavor challenge focused on cooperation
    • only the edge and the cooperation oriented hierarchical teams succeeded, and the edge improved their time
    • the pure hierarchical and the coordination oriented hierarchical  instead failed
In general every team performed better with the challenge that matched his organization while the edge team was the more versatile in succeeding with all the different challenges.

In other experiments situation of high level of noise (errors in the available information) the collaboration oriented hierarchical team succeed with very high level of noise, where the other teams fails.
Teams that were capable to adopt both edge topology and collaboration oriented hierarchy topology perform well in complex situations where a shared understanding is required, cognitive complexity is high and also with high levels of noise.


Command and control is the traditional approach for Hierarchical organization of work, while Edged organization of work come with other approaches [2][3][4][5][6]. Again a good mix needs to be found for each specific context and product/project.


[1] The Agility Advantage: A Survival Guide For Complex Enterprises and Endeavors; David S. Alberts; 2011
[2] Monitoring and supporting the emergence of team dynamics toward positive directions
[3] ABIDE model, an exercise
[4] Cynefin exercise about Agile software development
[5] Is your organization's culture compatible with Lean and Agile?
[6] Respect, one of the core XP values, from a practical point of view