A principled decision simultaneously considers multiple temporal factors, weighted by their respective probabilities and expected impacts. Generally make implementation choices that are more likely to minimize comprehension time and implementation "effort" compounded across all future features.
Given implementation choices
Where the total expected time
Where:
-
$t_0(C)$ = immediate upfront development time associated with$C$ -
$F_i$ = possible future features -
$P(F_i)$ = probability of feature$i$ occurring -
$t_{\text{comp}}(F_i \mid C)$ = comprehension time needed for$F_i$ given we choose$C$ -
$t_{\text{impl}}(F_i \mid C)$ = implementation time for$F_i$ given we choose$C$
From previous theorems such as [[T-07]] [[T-08]] [[T-09]], we have proportional relationships for
$t_{\text{comp}}(F_i \mid C) = \alpha \cdot \frac{h(\text{disc}(F_i \mid C))}{\text{alignment}(C)}$ $t_{\text{impl}}(F_i \mid C) = \beta \cdot |\text{cs}(F_i \mid C)| \cdot g(\text{prox}(F_i \mid C))$
Where
Assuming
This optimization requires knowing:
- The probability distribution of all future features
- The exact impact of current decisions on future change-sets
- The precise relationships between proximity and time (among other factors)
We never have perfect information for all these variables.
Given imperfect information, principled decisions can use:
-
Dominant factor analysis: When one factor clearly dominates. For example, with high turnover,
$t_{\text{comp}}$ (time-to-comprehension) compounds across every future feature; - Sensitivity analysis: Test how robust a decision is to different assumptions about unknown parameters;
- Historical calibration: Use past data to estimate the parameters for similar decisions;
- Risk-adjusted optimization: Weight worst-case scenarios more heavily when uncertainty is high;
- Sampling: Sample aspects of known or high-probability features and how the current options affect time to comprehension, change-set magnitude and proximity, discontinuity counts, and so forth.
Even without perfect information, considering all factors simultaneously reveals trade-offs:
- A decision that slightly increases current time but dramatically improves future comprehension
- An architecture that increases some change-set sizes but improves their proximity
- A refactoring that hurts short-term velocity but accumulates longer-term savings
The framework doesn't give a single answer but structures the decision space, making trade-offs explicit and measurable where possible.