In a previous post Why Johnny Can't Do The Math, the suggestion that estimates are non-ergodic is a Category error. It's the underlying processes that are ergodic or non-ergodic, not the estimates of that process. In this case, the project is the underlying process.
When I encounter errors, in fact, principle, definitions, it's a very good source of ideas for further blogs. That original quote estimates are non-ergodic is a nice example. Those types of errors, motivate me to dig into the underlying principles. In this case to go down to the basement and dig out my Statistical Mechanics, Thermodynamics, and Probability and Statistics for Physicists graduate texts from the late '70s and reread them, to refresh my memory.
That erroneous quote brings out a very interesting topic of statistical behaviors of projects.
The distinction between aleatory and epistemic uncertainties is determined by modeling choices. The distinction is useful for identifying sources of uncertainty that can be reduced in near-term, i.e., without waiting for changes in the technical or programmatic processes, when developing sound risk and reliability models.
This distinction is important from the viewpoint of transparency in decision-making since it becomes clear as to which reducible uncertainties (from epistemic uncertainty) have been left unreduced by decisions. Neglecting the dependence between successive events due to the non-ergodic uncertainties results in an overestimation of the failure probability.
Due to the presence of non-ergodic uncertainties, probabilistic events in time are not statistically independent and, therefore, cannot constitute Poisson events.
In probability theory, an ergodic dynamical system is one that, broadly speaking, has the same behavior averaged over time as averaged over the space of all the system's states in its phase space. In physics, the term implies that a system satisfies the ergodic hypothesis of thermodynamics.
A random process is ergodic if its time average is the same as its average over the probability space, known in the field of thermodynamics as its ensemble average. The state of an ergodic process after a long time is nearly independent of its initial state.
Software development is NOT that same as a Thermodynamics system. Software development systems are Non-Ergodic. Such systems can be considered non-Ergodic if they are also considered Complex Adaptive Systems (CAS).
A CAS is …
- Non-linear: as a whole, are unable to be determined or represented through the sum of their components and subsystems
- Non-ergodic: interacting with its environment by receiving inputs and providing outputs, but with limited control over the outcomes; and
- Emergent: dynamic in that it changes and evolves its behavior in response to its inputs. Order emerges through the interaction among the system’s parts as they evolve (within the larger systems) in response to the changing environment.
Care is always needed when labeling software development a Complex Adaptive System. There is inherent complexity in projects, especially software-intensive system of systems projects.
- Non-linear: why is this? Does the project have a plan? The uncertainties encountered on the project may be non-linear. Unless those uncertainties are Ontological they can be identified and handled. For reducible uncertainties (Epistemic), buy down plans can be made. For irreducible uncertainties (Aleatory), a margin can be provided.
- Non-ergodic: the software does interact with its environment. But the inputs and outputs of these interactions are knowable in advance. And for the most part, can be controlled. Design Structure Matrix and the Risk Propagation Modeling can be applied to model these interactions and their impact on the project.
- Emergent: this is a buzzword of agile development. But that emergence is not the same type of emergence as an evolutionary biology system. The emergence in software is constrained by the structure of the system itself. This emergence may be a surprise to the developers. But that surprise is not unknowable if they are applying active risk management
A system (project) that exhibits non-ergodicity is one in which a subsequent stage (in the project) depends only on the current stage (of the project), and over time, a system that continuously evolves could inevitably forget its initial state, as described by Markov Processes.
At this point, a project manager is forced to deal with a newly defined problem without the ability to return to prior stages for reasons such as limited time or resources, or for reasons that regression of a functionally emergent system is either too arduous or an impossibility.
Markov Chain modeling is found in non‒ergodic systems. I’ve worked that problem in the triple-redundant fault-tolerant computing world of fail-safe process control systems
Resources
- A Simple Introduction to Ergodic Theory
- Ergodicity of Project Management System
- Probability, Random Processes, and Ergodic Properties
- The Root Cause of Failure in Complex IT Projects: Complexity Itself
- Why Do Information Technology Projects Fail?
- Behavioral Modeling of Software Intensive System Architectures
- Asymptotic behavior of time averages for non-ergodic Gaussian processes