Complicate Late

Complexity should be delayed as long as possible. If a User Interface Component is intended to receive an array, and should render a drop down for multiple values, a checkbox for one value, or nothing for no values, those [[Novel Scenarios]] should be handled as late as possible. Consider that the rest of the application does not need to know about this Novelty to handle either the array or the events from the user. A section of the code base which changes when the user selects a particular value should not need to know that the user selected the value as a checkbox, due to there only being a single option, as opposed to selecting the item in a drop down list, due to there being many options.

This tactic is a compliment to [[SimplifyEarly]][Simplify Early](/SimplifyEarly.html).

#software #complexity