Когда-то работал на одном немецком банке. Тогда была проблема, что пару недель не проходили рекуринг платежи, поэтому мне поручили найти людей, имевших в этот период запланированные платежи, и провести их (написать скрипт). Это было срочно, потому что, может, кто-то пропустил какой-то важный платеж. Это была пятница. Сделал я этот скрипт, низложил тимледцы своей, она говорит:
— Все гудит рань на проде.
Я говорю:
— Ну, это вечер пятницы, а мне еще через час на поезд идти, может, в понедельник утром, еще раз все пересмотрим.
— Нет-нет, это очень критично, давай.
Ну чувствуя, что там точно что-то не так (потому что это вечер пятницы), я заранил и пошел на поезд. В понедельник к моему удивлению все было ок. Прошло несколько недель, и возникла проблема, что у некоторых людей рекуринг платеж в одном месяце прошел дважды.
Оказалось, что мой скрипт не учитывал выходные и праздники.
Но там не очень много людей зааффектилось, потому что у большинства не было денег достаточно на счету, они им эти деньги вернули и сказали быть осторожнее мне на второй раз.
Еще однажды уже на другом проекте писали код, чтобы отправлять SMS-напоминания о визите к врачу. Мы тот код написали, поставили под фичу тогл и забыли за него на год. Потом пришлось включить его, перед тем QA что-то тестировали, крутили, там на самом деле была немного логика отсылок тех нотификейшенов и была проблема, что для этого нужно иметь номер в США и эти номера тяжело доставались.
Ну вроде бы все ок, включили и увидели, что все SMS на один номер идут, исключили. Оказалось, что класс, который отсылал SMS, сначала отсылал это для одного номера, а затем его переделали, чтобы он перебирал всех, кому нужно отправить, но мемоизация в извлекаемом номере телефона осталась, поэтому первый номер в списке кэшировался, и на него все SMS уходили.