Будучи разработчиком нескольких высоконагруженных систем, ощущаешь на своих плечах груз ответственности за своих пользователей. Вот небольшой пример из жизни.
Предпосылки
Велись обычные плановые работы в программе. Можно сказать рутинные. Система большая, сложная и экономит прилично времени пользователям. Но в ходе очередных работ одним из разработчиков была допущена еле уловимая ошибка.
В хранилище данных один из участков быстрого доступа к памяти содержал дату, с которой надо эти данные держать в быстром доступе. Но программист написал дату не 20 число, а 22.
Это привело к тому, что чтение этих данных теперь стало занимать у программы не 1 секунду, а 4. Но выполняется чтение раз в 5 секунд, а на обработку уходит чуть больше секунды.
Каждый раз при чтении и обработке образовывался долг меньше секунды. Но этот долг копился.
Вся проблема в том, что шансов заметить проблему сразу не было. В начале долга то не было и данные успевали обрабатываться. Но чем больше был долг, тем больше данных копилось в очереди и тем больше времени уходило на чтение.
И к середине ночи модуль встал
Он не успевал обработать информацию, оперативную информацию. Теперь этот модуль стал пользователям бесполезен. А их две группы, одна из которых в количестве 5 человек ежечасно должна формировать отчеты для контроля производства(примерно 15 минут), а другая отчитываться о ходе работы. Вторая группа насчитывает более 800 человек, каждый из которых должен теперь каждый час тратить 30 секунд на доклад.
Итого имеем потери времени 460 минут в час. Тоесть более 7.2 человек в час, если перевести время в людей. При зредней зарплате по России в 30000 р, это примерно 7200 р в сутки, или 300р в час.
Выходит, что абонентская плата за ту самую двойку в программе, вместо нуля, фирма заплатила примерно 3000р., так как до устранения ошибки прошло примерно 10 часов.
Вот такая жизненная математика программиста. Подписывайтесь, ставьте лайки. До скорых встреч!