История про решения, которые достаточно хороши для своей цели.
This sparked and interesting memory for me. I was once working with a customer who was producing on-board software for a missile. In my analysis of the code, I pointed out that they had a number of problems with storage leaks. Imagine my surprise when the customers chief software engineer said “Of course it leaks”. He went on to point out that they had calculated the amount of memory the application would leak in the total possible flight time for the missile and then doubled that number. They added this much additional memory to the hardware to “support” the leaks. Since the missile will explode when it hits it’s target or at the end of it’s flight, the ultimate in garbage collection is performed without programmer intervention.
Если решение временное и достигает своей цели, то его неоптимальность или “костыльность” может быть допустимым.
И кстати часто хорошее и быстрое решение для 80% случаев лучше, чем идеальное и сложное для 100%.
Ну вот например нам надо адаптировать онбоардинг в зависимости от того, запустился у продавца магазин или нет. Простая проверка: магазин запустился если или все TO-DO шаги визарда отмечены как сделанные (их продавец отмечает как сам как сделанные) или же в магазине продаж больше чем на $200.
Не идеальная эвристика, будут cлучаи, когда она не сработает. Но она достаточна хороша и проста для большинства случаев, чтобы не изобретать что-то сильно сложнее.