Sun Mar 5 08:25:40 EST 2017
It seems that for most programming work, there is a very clear "leap
into chaos" once complexity rises. Complexity is combinatorial.
One one hand, it is easy to generate: add one element to a design that
is not decoupled properly, and the number of combinations multiplies
by this one element.
On the other hand, the brain somehow needs to keep track of the
enumeration of cases in case of a non-decoupled property. Once this
gets too large, it's no longer possible to track.
This is a very strong sentiment that I reach all of the time now. The
only mitigation is to squash the interaction: to ensure that either
the design element is removed, or that it is implemented in such a way
that it is orthogonal to other components, or at least has very
limited interaction as to not multiply the number of cases
(e.g. adding a case is not a problem).