8 дорогостоящих проблем с программированием или программным обеспечением, которые привели к потерям в миллионы долларов

Ошибки программирования могут стать одной из самых разрушительных проблем в современном мире. Поскольку наша жизнь настолько тесно связана с технологиями, простая неуместная строка кода может обернуться катастрофой, которая обойдется компаниям в миллионы ущерба или потерянного времени. Эти восемь ошибок являются одними из худших в истории.

1. Неработающее обновление CrowdStrike

Экран с сообщением об ошибке и значком отключения с эффектом сбоя.
Лукас Гувейя / Компьютерщик с практическими рекомендациями | Александр56891 / Shutterstock

Всемирный сбой в работе CrowdStrike напоминает угрозу 2000 года для пожилых пользователей компьютеров. Сбой был вызван тем, что при автоматическом обновлении был удален какой-то неработающий код. Ошибка в архитектуре облачного тестирования означала, что сломанное обновление можно использовать, и система просто отправила его пользователям.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Этот сбой стоил миллионы долларов. По оценкам некоторых новостных агентств, это обошлось Microsoft примерно в 44 миллиона долларов на каждую компанию из списка Fortune 500, потерпевшую неудобства. Эта конкретная программная ошибка почти полностью остановила мир. Это также демонстрирует, насколько мы зависим от технологий в 21 веке.

2. Ошибка сердечного кровотечения

Heartbleed Bug, критическая программная ошибка, обнаруженная в 2014 году, подвергла миллионы веб-сайтов и устройств потенциальной краже данных. Эта уязвимость в широко используемой библиотеке криптографического программного обеспечения OpenSSL позволяла злоумышленникам получить доступ к конфиденциальной информации из памяти затронутых систем, включая пароли и ключи шифрования. Последствия этой ошибки были разрушительными: потери и усилия по исправлению ситуации обошлись предприятиям примерно в 500 миллионов долларов.

Программная ошибка, лежащая в основе Heartbleed, заключалась в простом перечтении буфера в расширении Heartbeat TLS. Этот недосмотр в реализации кода оставался незамеченным в течение двух лет, подчеркивая катастрофические последствия даже незначительных ошибок в кодировании критического программного обеспечения. Это также показывает, что вам следует быть осторожными при использовании программного обеспечения с открытым исходным кодом, поскольку неизвестно, какие ошибки существуют в коде.

3. Авария рейса 501 Ариан-5

Авария рейса 501 Ariane 5 в 1996 году стала ярким напоминанием о том, как, казалось бы, незначительная программная ошибка может привести к катастрофическим последствиям. Основной причиной было программное исключение в инерциальной системе отсчета ракеты, возникшее при преобразовании 64-битного числа с плавающей запятой в 16-битное целое число со знаком. Это переполнение привело к тому, что система наведения интерпретировала правильные данные полета как отклонение от ожидаемой траектории полета.

Всего через 37 секунд после запуска эта ошибка привела к тому, что ракета отклонилась от курса и впоследствии самоуничтожилась. Взрыв привел к потере четырех научных спутников и десятилетию научных исследований. Помимо немедленных затрат на запуск в 370 миллионов долларов, Европейское космическое агентство столкнулось со значительным репутационным ущербом и задержкой своих коммерческих космических амбиций.

4 несчастных случая при лучевой терапии Therac-25

Ноутбук с кодом на экране и курсором мыши. Лукас Гувейя / Компьютерщик с практическими рекомендациями | Юрич / Shutterstock

Радиации всегда следует опасаться, но этот конкретный инцидент стоил реальных человеческих жизней, и все это произошло из-за ошибки в программировании. Этот аппарат лучевой терапии, предназначенный для лечения больных раком, содержал ошибку в программном обеспечении, которая позволяла при определенных обстоятельствах доставлять огромные дозы радиации. Ошибка возникла из-за состояния гонки в управляющем программном обеспечении. Если вы печатаете достаточно быстро, вы можете обойти блокировки программного обеспечения.

Эта программная ошибка привела как минимум к шести известным авариям, в которых пациенты получили дозы радиации, в сотни раз превышающие запланированные. Три из этих инцидентов оказались фатальными. Подобные ошибки в программировании приводят не только к судебным искам на миллионы долларов, но и к человеческим жертвам, и все это из-за того, что можно было предотвратить с помощью строгих протоколов тестирования.

5. Марсианский климатический орбитальный аппарат

Иногда самые дорогостоящие ошибки программирования и программного обеспечения происходят за пределами планеты, как в этом случае. Основная проблема заключалась в неудачном преобразовании единиц измерения: компания Lockheed Martin, производитель космического корабля, использовала в своем программном обеспечении английские единицы измерения (фунт-секунды), в то время как Лаборатория реактивного движения НАСА ожидала, что для расчетов тяги будут использоваться метрические единицы (ньютоны-секунды).

Неудивительно, что орбитальный аппарат разбился на поверхности Марса, потому что НАСА использовало неверные единицы измерения. Потеря космического корабля стоимостью 327 миллионов долларов стала серьезной неудачей для программы НАСА по исследованию Марса, задержав критически важные исследования климата и вынудив переоценить процессы связи и проверки между подрядчиками и космическим агентством. Это отличный пример того, почему наличие проектной документации для проекта имеет решающее значение.

6. Недостаток торговой платформы Knight Capital Group

Knight Capital раньше была уважаемой финансовой фирмой, зарабатывавшей деньги на торговле. В собственном торговом программном обеспечении компании использовались алгоритмы автоматической покупки и продажи. Программистов нанимали для внесения небольших изменений в код, чтобы сделать его более эффективным. К сожалению, один из этих программистов загрузил обновление кода, из-за которого весь алгоритм сломался.

За 45 минут Knight Capital потеряла 440 миллионов долларов, что почти в четыре раза превышает годовой чистый доход компании. Эта программная ошибка не только уничтожила капитал фирмы, но и серьезно подорвала ее репутацию, что привело к резкому падению цен на акции и возможному поглощению ее конкурентом. Это должно стать уроком для программистов: находить и устранять ошибки, прежде чем запускать свой код в производство.

7. Ошибка Pentium FDIV

Процессор Intel Pentium. Милитарист / Shutterstock.com

Если вы предпочитаете Linux, вы можете выполнять математические операции с плавающей запятой в Bash, но что происходит, когда у всего процессора возникает проблема с делением чисел с плавающей запятой? В 1994 году флагманский процессор Intel Pentium стал предметом разговоров в мире технологий. К сожалению, чип страдал от ошибки в справочной таблице деления, используемой процессором, где пять записей из 1066 были ошибочно установлены на ноль, что приводило к неточным расчетам в определенных сценариях.

Первоначально Intel преуменьшала значение этой проблемы, но по мере роста осведомленности общественности, особенно среди ученых и инженеров, которые полагались на точные расчеты, Intel была вынуждена признать ее серьезность. В конечном итоге компания предложила заменить все затронутые чипы, в результате чего за отзыв и замену миллионов процессоров потребовалось 475 миллионов долларов. Этот инцидент показывает, как что-то маленькое, например несколько цифр в справочной таблице, может стоить репутации компании и миллионам долларов комиссий за отзыв.

8. Инцидент с полярным посадочным модулем на Марсе

Космос таит в себе множество опасностей для аппаратного и программного обеспечения. В отличие от последней ошибки на Марсе, эта произошла не из-за несоответствия единиц измерения. Космический корабль стоимостью 125 миллионов долларов, предназначенный для изучения марсианского климата и поиска водяного льда, был потерян во время спуска на поверхность планеты. Основная причина была связана с ошибкой программного обеспечения в последовательности приземления.

Ошибка произошла в датчиках приземления космического корабля. Эти датчики были разработаны для обнаружения развертывания ног и контакта с поверхностью, сигнализируя двигателям о необходимости выключения. Однако программное обеспечение не смогло учесть ложные сигналы, генерируемые при раскрытии опор посадочного модуля. Этот преждевременный сигнал о приземлении привел к остановке двигателей, когда посадочный модуль все еще находился на высоте 40 метров над поверхностью, что привело к катастрофической катастрофе. НАСА потеряло посадочный модуль, все инструменты и данные, которые оно должно было собрать. Эта катастрофа подчеркивает, почему бета-тестирование является такой важной частью разработки программного обеспечения. Тщательное тестирование могло бы предотвратить это.

Наша современная жизнь неразрывно связана с компьютерными программами. От работы, которую мы выполняем, до игр, в которые играем ради удовольствия, — все сводится к тому, как работают программы. Большую часть времени они работают безупречно, но если это не так, это может стоить компании миллионы. Эти ошибки программирования и программного обеспечения являются предупреждением всем разработчикам о необходимости обращать внимание на мелкие детали. Реальная стоимость может оказаться гораздо больше, чем просто часы, потраченные на исправление кода.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *