Making decisions is exhausting. It involves perception and analysis, and most of all: taking responsibility.
Mental load and the worry cache, Seth Godin, June 15, 2017

In most organizations, software development and maintenance is not a solitary activity.  Even a relatively simple enhancement require the involvement of multiple roles to identify, translate and implement an idea.  Teams are the tool used to effectively gather and coordinate all the needed roles in one place. While it is easy to perceive the team as a monolithic unit, every individual on a team is a decision-making machine.  Each person will have a different tolerance for uncertainty and ambiguity which will affect how they make decisions.

In 1983, Geert Hofstede published a paper titled National Cultures in Four Dimensions.  The paper introduced the idea of the Uncertainty Avoidance Index (UAI) to explain behavioral differences between nations. The theories espoused by Dr. Hofstede illustrate that different cultures react to uncertainty differently. Organizations and the teams inside those organizations also have different tolerances for uncertainty.  While the factors that influence how avoidant of uncertainty any organization or team are probably far more complex than national cultures, what is important is that we understand that some organizations and teams will avoid uncertainty more vociferously than others. In software development, how work is done is often a reflection of differing approaches and needs to reduce the anxiety generated by uncertainty.

Software development organizations that are highly avoidant of uncertainty exhibit many of the following attributes:

  1. Structure and rules focus. Development processes are spelled out at a high level of granularity and are often augmented by informal norms and rules.  Changing the process is formally evaluated and approved.
  2. Roles and individuals are conflated.  An individual plays a specific role and is expected to have a high degree of expertise in the role which makes them required participants for decisions that impact the role.
  3. Consensus decision making is used to increase the knowledge base for any specific decision while distributing responsibility.  Consensus decision making often increases the required energy to generate a specific decision. 
  4. Life is hectic.  Significant amounts of energy are required to continuously monitor the flow of work and the decisions being made that could possibly affect the work being performed. Excuse me while I check email and Slack on my iPhone during a meeting.  

Organizations and teams whose work and products impact health or safety often all into this category. The people that work in this environment must be comfortable with this form of structure. Organizations that have less tolerance for uncertainty will gravitate toward frameworks and methods that provide them a level of structure that reduces uncertainty.  DSDM, SAFe and other more structured approaches are often used in organizations in which uncertainty generates anxiety.

The reaction any team or organization has to uncertainty will be different, which is why there is no one perfect framework or method for delivering value. Highly structured approaches will appeal to some organizations while less structured approaches will appeal to others.  While these are just two poles on a continuum, my observations is that most organizations tend to live closer to one end than the center. That makes using the wrong approach in an organization tantamount two teams playing football together with one using the rules from the National Football League and the other playing by the rules of the Canadian Football League.  The result would be lots of tension.