It is often preferable to settle for a satisfactory solution, rather than pursue an optimal solution.
The best design decision is not always the optimal design decision. In certain circumstances, the success of a design is better served by design decisions that roughly satisfy (i.e., satisfice), rather than optimally satisfy, design requirements. For example, in seeking for the proverbial needle in a haystack, a satisficer would stop looking as soon as a needle is found; an optimizer would continue to look for all possible needles so that the sharpest needle could be determined. There are three kinds of problems for which satisficing should be considered: very complex problems, time-limited problems, and problems for which anything beyond a satisfactory solution yields diminishing returns.
Complex design problems are characterized by a large number of interacting variables and a large number of unknowns. In working with such problems, a satisficer recognizes that the combination of complexity and unknowns makes an optimal solution unlikely (if not impossible). The satisficer, therefore, seeks a satisfactory solution that is just better than existing alternatives; the satisficer seeks only to incrementally improve upon the current design, rather than to achieve an optimal design.
Time-limited problems are characterized by time frames that do not permit adequate analysis or development of an optimal solution. In cases where optimality is secondary to urgency, a satisficer selects the first solution that satisfactorily meets a given design requirement. Note that satisficing should be cautiously applied in time-limited contexts, especially when the consequences of a suboptimal solution can have serious consequences.
There are cases in which a satisfactory solution is better than an optimal solution—i.e., solutions beyond the satisfactory yield diminishing returns. Determining when satisfactory is best requires accurate knowledge of the design requirements, and accurate knowledge of the value perceptions of the users. A satisficer weighs this value perception in the development of the design specification, ensuring that optimal specifications will not consume design resources unless they are both critical to success, and accorded value by users.
Consider satisficing as a means of making design decision when problems are complex with many unknowns, when problems need to be solved within a narrow time frame, and when developing design requirements and specifications. Generally, do not accept satisficed solutions that are inferior to previous or existing solutions. In time-limited contexts, consider satisficing only when the limited timelines are truly fixed, and the consequences of low-quality design and increased risk of failure are acceptable.
See also 80/20 Rule, Chunking, Cost-Benefit, Iteration, and Not Invented Here.