20200324112049.md

Stateful values are simpler if they're independent of one another. For example, a Date Range might have a start and end date with a restriction that the end date be equal to or later than the start date. Any user event that would update the start date would then need to account for the end date, and vice versa. All computation would need to account for both values, or else would receive invalid results. These restrictions create new vectors for bugs, and add combinatorial complexity to the software.

The complexity of two independent values is (generally) the sum of their individual complexity. Whereas the complexity of two dependent values is the product of their individual complexity.

This also creates the opportunity for the user to cause unexpected side-effects, breaking one of the tenants of UX. [TODO]

#software