Chips Pack Complexly!

Complexity introduces uncertainty. The operational definition of complexity is the interaction of components in which the outcome is not perfectly predictable based on the known or measured inputs.  The question posed in this discussion of the difference between complication and complexity is why we should care about complexity.  In the software centric part of IT departments, the simple answer is that complexity changes the behaviors of everyone involved in three major ways.

Choices: Complexity influences the choices teams will consider to solve a business problem.  Teams are often graded (assessed or judged – you choose the word) based on their ability to predict the cost and delivery dates of solutions.  Complexity reduces predictability which increases the risk of not being able to deliver based on earlier predictions.  Choices that reduce complexity and risk are generally preferable, even in environments in which the value of innovation is espoused (innovation and uncertainty are directly linked).

Methods and Actions: Software frameworks and methods are a mechanism to make software development more consistent and repeatable.  Stated in other words, software methods are a tool to make the delivery of value through software less complex and uncertain. The more risk averse an organization is, the more the methods they will adopt will be more structured and more focused on risk mitigation.  Complexity combined with risk aversion leads to organizations adopting independent testing teams, stage gates, and review boards to reduce uncertainty.

Decision Making: Decisions in complex situations are often more difficult to make. Decision making is affected because the outcome is less predictable, and often there is too much data and too many choices.  Even when the primary outcome is what is expected, other, unintended, consequences occur.  Decision making is risky, leading organizations to change how they make decisions.  Complexity is one of the reasons for the epidemic of consensus decision making seen in organizations.  Consensus decisions defuse the risk of making a decision without having to address the lack of predictability.

Complexity matters because it changes how individuals and organizations act.  Complexity reduces innovation, it slows decisions and it creates an environment with more risk mitigation steps.  One issue is that almost no organization is good at scaling their processes.  Building processes for the complex even though some situations have to address simple or merely complicated scenarios increases the cost of all work!  Options . . . next!