Summary
Uncertainty is addressed through provision of a buffer. The buffer is generally provided in the same form as the constraint, for example, people are buffered with more people.
The provision of buffers on constraints is easier to negotiate under conditions of trust between the supplier and the customer. Trust is built over time with delivery of agreed functionality. Trust is maintained through transparency of process and mutual understanding.
There are four types of uncertaintyvariation, foreseen, unforeseen, and chaos. The types of uncertainty encountered in a given software project will affect the size of the required buffers.
Buffers should not be estimated on small tasks. Small tasks suffer from the local safety problem. Aggregating small tasks before estimating the buffer size reduces the total buffer required.
Aggregation of buffers from sequential tasks results in a total buffer that is defined as the square root of the sum of the squares of the local safety buffers.