W programowaniu często mamy do wyboru: uwzględnij każdy możliwy przypadek użycia osobno lub rozwiąż ogólny problem:
Oczywiste jest, że rozwiązanie natychmiastowego problemu jest szybsze, jednak stworzenie ogólnego rozwiązania pozwoli zaoszczędzić czas w przyszłości.
Skąd mam wiedzieć, kiedy najlepiej spróbować objąć skończoną listę przypadków lub stworzyć ogólny system obejmujący wszystkie możliwości?