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


Picture 4


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


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


Поговорим о деньгах, потерянных из-за ошибок в программном обеспечении, и росте нашей зависимости от программного кода. Тема неоднократно обсуждаемая (в том числе моим коллегой — Андреем Карповым — "Большой Калькулятор выходит из-под контроля"), и каждый новый пример доказывает: качество кода — не то, чем можно пренебрегать.


Picture 1


Космос


Дорогой дефис


Спутник Mariner 1 в 1962 году должен был отправиться к Венере. Стартовав с мыса Канаверал, ракета практически сразу сильно отклонилась от курса, что создало серьезную угрозу падения на землю. Для предотвращения возможной катастрофы NASA было принято решение запустить систему самоуничтожения ракеты. Спустя 293 секунды с момента старта, Mariner 1 был ликвидирован.


Picture 3


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


Программист неправильно перевел написанную формулу в компьютерный код, пропустив макрон или надчёркивание (что значит "n-ое сглаживание значения производной радиуса R по времени").


Программа даже незначительные изменения скорости воспринимала как весьма существенные и проводила корректировку курса (источник).


Цена "пропущенного дефиса" — 18 млн долларов (на тот момент).


Российский GPS, опустившийся на дно


Ярким примером того, как из-за программной ошибки могут быть потеряны миллионы, является относительно недавний случай. Казалось бы, в 21 веке есть все необходимое для написания надёжных программ, особенно, если речь идет о космической отрасли. Опытные специалисты с отличным образованием, хорошее финансирование, возможность использования лучших инструментов для проверки программного обеспечения. Все это не помогло. 5 декабря 2010 года ракета-носитель "Протон-М" с тремя спутниками "Глонасс-М" — российский аналог GPS, упала в Тихий океан.


Picture 5


Причину аварии, после завершения расследования, озвучил официальный представитель Генпрокуратуры РФ Александр Куренной: "Установлено, что причиной аварии стало применение неверной формулы, в результате чего масса заправленного в бак окислителя разгонного блока жидкого кислорода на 1582 кг превысила максимально допустимую величину, что повлекло выведение ракеты-носителя на незамкнутую орбиту и его падение в акваторию Тихого океана" (источник).


Интересный момент в этой истории — документ о необходимости корректировки формулы был, но его списали как исполненный. Руководство же не удосужилось проверить выполнение своих указаний. Все причастные к аварии лица были привлечены к уголовной ответственности и крупным штрафам. Но это не компенсирует потери, составившие 138 миллионов долларов.


Автомобили


Еще в 2009 году профессор информатики в Техническом университете Мюнхена, эксперт по программному обеспечению в автомобилях Манфред Бра, сказал: "Программное обеспечение автомобиля премиум-класса содержит около 100 миллионов строк кода" (источник). С того момента прошло уже восемь лет, и совсем не обязательно быть поклонником передачи Top Gear, чтобы заметить: современные автомобили — это настоящие интеллектуальные машины.


По заявлению все того же эксперта, стоимость программного обеспечения и электроники в автомобиле составляет порядка 40% от его цены на рынке. И это касается бензиновых моторов, что же говорить о гибридах и электрокарах, где это значение равно примерно 70%!


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


Садиться за руль современных комфортных и "умных" авто или ездить на олдскульных, но понятных машинах? Решать вам, я же предлагаю небольшую подборку багов в программном обеспечении автомобилей.


И снова Toyota


Японские автомобили Toyota имеют положительную репутацию, но периодически в СМИ попадает информация об отзыве некоторого количества машин. В нашем блоге уже есть статья о программной ошибке в Toyota — "Toyota: 81 514 нарушений в коде", но этот случай, к сожалению, не единичный.


Picture 6


В 2005 году было отозвано 160 тыс. гибридов Toyota Prius 2004 года выпуска и начала 2005. Проблема заключалась в том, что машина могла в любой момент остановиться и заглохнуть. На устранение бага было затрачено около 90 минут на одно транспортное средство или около 240 тыс. человеко-часов.


Chrysler и Volkswagen


В мае 2008 года Chrysler отозвал 24535 автомобилей Jeep Commanders 2006 года выпуска. Причина — программная ошибка в модуле управления автоматической трансмиссией. Сбой приводил к неконтролируемой остановке двигателя.


В июне того же года Volkswagen отзывает около 4000 Passat и 2500 Tiguans. Здесь ошибка в программном обеспечении оказывала воздействие на увеличение оборотов двигателя. Показания тахометра начинали ползти вверх при включенном кондиционере.


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


Tesla


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


Поговорим, конечно же, о Tesla Model S. 7 мая 2016 Джошуа Браун, прославившийся благодаря своим роликам на YouTube, посвященным восхвалениям электромобиля, попал в автокатастрофу. Он находился за рулем Tesla Model S. Будучи на 100% уверенным в интеллекте машины, он доверился автопилоту. Результат доверия трагичный — от полученных травм Джошуа скончался на месте.


Катастрофа получила широкую огласку. Началось расследование. Удалось установить, что, по всей видимости, Браун самостоятельно не следил за дорогой, а автопилот столкнулся с ситуацией, которая не нашла отражение в его программном коде. Перед Tesla Джошуа двигался грузовик с прицепом. Автомобиль планировал выполнить маневр — левый поворот, соответственно, требовалось сбавить скорость. Но Tesla, едущий позади, не начал тормозить, т.к. системы автопилота не распознали находящийся впереди объект.


Произошло это, скорее всего, из-за яркого солнца. Лучи отражались от прицепа и автопилот воспринял грузовик единым целым с небом. В официальном докладе это объяснялось следующим образом: "Системы автоматического торможения Теслы являются технологией избегания столкновения в редких случаях и не спроектированы для надежного выполнения во всех режимах аварии, включая столкновения в результате пересечения путей" (источник). Полный отчет об аварии находится в свободном доступе.


Иными словами, автопилот призван помогать водителю (более совершенный круиз-контроль, грубо говоря), а не заменять его функции. Конечно, репутацию Tesla такое оправдание не сильно спасло. Работы над совершенствованием программного обеспечения продолжились, но Tesla Model S с дорог отозваны не были.


Picture 7


Представители компании привели следующую дорожную статистику: "На каждые 90 млн. миль пройденного пути умирает один человек. В противоположность, люди проезжали 130 млн. миль на автопилоте Тесла перед тем, как была подтверждена первая смерть. Сейчас эта цифра поднялась до 200 млн." (источник)


С одной стороны, такая статистика свидетельствует о том, что электрокар безопаснее, но готовы ли вы доверить свою жизнь, жизнь пассажиров и других участников дорожного движения программе?


И это не риторический вопрос. Судя по новостям биржи, вопреки нашумевшей аварии, акции Tesla выросли на 50% с начала 2017 года. Способствуют этому два значимых фактора: популярность движений, выступающих за улучшение экологии в мире, и высокий личный рейтинг главы Tesla — Илона Маска.


Всеобщий масштаб — Беда 2038 года


Не могла не привести в завершении статьи этот пример. Подробно о Беде 2038 года вы можете прочитать в статье "2038: остался всего 21 год", я же остановлю внимание на одном важном моменте.


Оборудование для заводов: всевозможные станки, конвейеры; бытовая техника и другие сложные агрегаты, оснащенные специализированным программным обеспечением, имеют достаточно продолжительный срок службы. Вероятность того, что выпущенный в 2017 году станок будет функционировать и в 2038 очень и очень велика. Отсюда логично сделать вывод: проблема, когда 32-битные значения типа time_t больше не смогут корректно отображать даты, уже актуальна!


Если сейчас разработчики программного обеспечения не будут брать ее в расчет, то что же ждет программистов в 2038 году?! Есть все шансы на то, что ПО для встроенных систем устроит немало сюрпризов. Но, думаю, мы будем тому свидетелями.


Заключение


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


Можно ли найти виновного? Иногда да, иногда — нет. Но смысл не в том, чтобы найти крайнего и каким-то образом покарать его. Идея в другом — программы усложняются, они все больше входят в нашу жизнь, а значит и требования к надежности кода растут. Увеличивается цена типовых ошибок, ответственность за качество кода тяжелой ношей ложится на плечи разработчиков.


Какой же выход? Модернизировать процесс разработки. Дать программистам помощников — специальные программы для выявления и устранения ошибок. Комплексное использование современных методик существенно снижает вероятность того, что баг в коде не будет обнаружен на этапе разработки.


Желаю вам не допускать промахов, а вашим проектам никогда не попасть в подборку, аналогичную той, что приведена в этой статье.

Поделиться с друзьями
-->

Комментарии (34)


  1. novice2001
    13.06.2017 12:37
    +6

    Все верно в Tesla написали.
    Их машины безопаснее живых водителей. С чего их отзывать?


    1. tyomitch
      13.06.2017 13:29
      +5

      Кто-то здесь на хабре уже комментировал их статистику в том ключе, что автопилот Теслы обычно включают на простых участках пути, так что ничего удивительного, что смертность во время движения на автопилоте ниже, чем смертность на всех дорогах вместе взятых.

      Честнее было бы сравнивать «смертность во время движения на автопилоте» со «смертностью во время вождения вручную на тех же самых участках дороги при тех же самых погодных условиях»; но такое сравнение вряд ли осуществимо.


      1. novice2001
        13.06.2017 13:49
        +3

        Тем не менее, автопилот все равно имеет неоспоримые преимущества.
        Он лишен эмоций, он никогда не поедет опасно специально в духе «гляди как я могу», «проскочу как-нибудь» и т.п. У него, несомненно, есть недостатки, но недостатки устранимые. А человеческие понты и халатность неустранимы принципиально.


        1. tyomitch
          13.06.2017 14:20
          +2

          Это всё верно. Дело в том, что никто не хочет стать crash dummy, благодаря которому «устранимые недостатки» будут обнаружены и устранены.


          1. novice2001
            13.06.2017 15:22

            Любой взрослый участник современного дорожного движения должен осознавать, что вероятность его гибели — величина ненулевая. При этом вероятность погибнуть в автомобиле, управляемом живым водителем, скорее всего не меньше, а больше. Есть водители лучше существующего автопилота, но по моему субъективному мнению их меньшинство. Учитывая доступность кредита и автомобилей как таковых, сейчас за рулем масса тех, кто просто в принципе не способен управлять автомобилем безопасно. Вряд ли стать crash dummy для Теслы много хуже, чем стать трупом в обычной аварии.


            1. tyomitch
              13.06.2017 16:52
              +3

              При этом вероятность погибнуть в автомобиле, управляемом живым водителем, скорее всего не меньше, а больше.

              В том-то и дело, что (по состоянию на 2017 год, а не «в неизбежном будущем») непонятно, больше или меньше.
              Нету достоверной статистики; есть только субъективные предположения.


            1. JediPhilosopher
              13.06.2017 19:02
              +1

              Тут дело в психологии. Люди боятся когда они не могут контролировать и даже понять ситуацию. Почему многие боятся летать на самолетах, но не боятся ездить на авто, хотя объективно шанс погибнуть в ДТП намного выше, чем в авиакатастрофе? Потому что в случае авто остается иллюзия контроля ситуации и есть понимание того что происходит.
              Что характерно, один из способов лечения аэрофобии (на себе проверял) — это пойти в аэроклуб и полетать за штурвалом небольшого самолета. Тогда появляется понимание процесса полета и страх от незнания уходит.

              Автопилоты в этом плане ближе к самолетам, чем к машинам. У человека опять отбирают контроль, при этом еще и лишают понимания того что происходит. Человек может представить что творится в голове даже у нетрезвого Ашота на ржавой шохе, но не может представить ход мышления железки. Кто его знает, как у нее биты в мозгах сложатся и куда она руль дернет в следующую секунду? Отсюда опять возникает иррациональный страх и недоверие.

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


              1. ainoneko
                14.06.2017 10:11

                У человека опять отбирают контроль, при этом еще и лишают понимания того что происходит.

                Пока что проблемы возникают как раз из-за того, что человек отдаёт контроль, когда не должен бы.

                Человек может представить что творится в голове даже у нетрезвого Ашота на ржавой шохе,

                Значит, я не прошёл эту разновидность теста Тьюринга.

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

                Для любителей следить не за дорогой, а за «ходом мышления железки» можно, например, выводить на ветровое стекло всякие прямоугольнички, которые железка считает опасными.
                Но не окажется ли «лекарство хуже болезни»?


          1. relia
            13.06.2017 17:35
            +1

            Если продолжать тему багов в автомобиле и что никто не хочет стать crash dummy, то история знает вагон и маленькую тележку неэлектронных багов в автомобилях, которые тоже убивали людей. Только некоторые из самых громких в США на массовых автомобилях:
            — скандал с шинами Firestone (в частности на Ford Explorer) на рубеже веков;
            — высокая аварийная опасность и пожароопасность заднемоторных Chevrolet Corvair в 60-ых годах.

            Мы все и в любой момент можем стать тем самым crash dummy.


        1. WeltRogg
          14.06.2017 11:01

          Нормальный человек в любом случае водит вез эмоций. А если человек не может ехать на пределе своей реакции в быстром темпе, то ему в любом случае лучше не ездить.


  1. oYASo
    13.06.2017 12:56

    Программное обеспечение автомобиля премиум-класса содержит около 100 миллионов строк кода

    Признаться, очень сомнительно. В вашей же ссылке на статью о разборе кода Toyota (или вот тут вот чуть покороче) написано про 280 тысяч строк — и это куда реальнее, как по мне. Понятно, что нынче и коробка, и движок, и всякие ESP, и многое другое работают за счет ПО, но едва ли все эти системы можно назвать сильно интеллектуальными. Колесо прокручивается, включаем ESP. На педаль нажали на Х%, заслонку открыли на X%.
    Linux — это ~20 млн. строк кода. Крайне сомневаюсь, что в авто бизнес-класса в 5 раз больше. Ну или ребята считаю ядро Linux + ядро БД + OpenCV + куча всего еще + свой код.


    1. Akon32
      13.06.2017 13:25
      +1

      Тоже полагаю, что цифра завышена. Может, это 100млн. строк кода не едут в автомобиле (разве только в android-магнитоле), а содержатся в бесконечных CAD-программах, программах расчёта аэродинамики, режимов двигателя и т.д., использованных при разработке и создании автомобиля.


    1. tyomitch
      13.06.2017 13:35
      +3

      Ну или ребята считаю ядро Linux + ядро БД + OpenCV + куча всего еще + свой код.

      Весьма вероятно, что так и есть.
      Потому что водитель оказывается зависим от ошибок в любых частях этого ПО.
      Попасть в аварию из-за бага в ядре Linux, в ядре БД, в OpenCV или где угодно ещё (или даже из-за бага в одном из компиляторов, использованных при разработке всего этого ПО) — ничуть не лучше, чем из-за бага в коде, написанном разработчиками самого автомобиля.


  1. meldo
    13.06.2017 12:58
    +5

    Как дополнение к теме. Материальный ущерб и причинение вреда здоровью и жизни человека как-то на слуху, но есть еще как минимум один потенциальный вид вреда который могут причинить ошибки в ПО. В 2016 году ошибка в алгоритме обработки изображений МРТ скомпрометировала результаты нейробиологических исследований. Кроме того, некоторые широко цитируемые работы в области экономики и экологии содержали ошибки в алгоритмах обработки данных, которые были обнаружены гораздо позднее, чем эти работы получили широкое распространение.
    Современные информационные системы настолько масштабны, что в некотором смысле уже не мы контролируем их поведение, но, напротив, данные полученные от них являются руководством к действию для людей. Таким образом ошибки в ПО могут скомпрометировать достоверность наших суждения о мире.
    P.S. На мой взгляд один из лучших докладов по теме ошибок в ПО (во всяком случае с точки зрения подачи материала) — доклад Кевлина Хеннея на конференции GOTO 2016.


  1. Idot
    13.06.2017 13:56
    +4

    Все причастные к аварии лица были привлечены к уголовной ответственности и крупным штрафам.

    Стрёмно в роскосмосе работать :(


    1. yvm
      13.06.2017 15:09
      +1

      Зря минусуете, действительно ответственность выше, чем в «социальной сети для панд»…


    1. LmTinyToon
      13.06.2017 17:41

      В таких масштабных корпорациях никогда не работал, но всегда было интересно, а каким образом распределяется ответственность на виновных в аварии? Допустим если речь идет об ошибке в софте, тогда вся цепочка начинается с разработчика, непосредственно связанного с данным участком кода? или под раздачу попадают тестировщики, ревьюеры и вверх по руководящим должностям? и кто из них получит наибольший штраф?


      1. ainoneko
        14.06.2017 10:14
        +1

        Поскольку это всё происходит в нашей реальности, способ очевиден: «наказание невиновных и награждение непричастных».


      1. FoxCanFly
        14.06.2017 17:00

        Разработчик и проверявший эту функциональность тестировщик садятся.


  1. novice2001
    13.06.2017 14:03
    +1

    Что касается объема кода в автомобилях, то его действительно критичная часть меньше на порядки.
    В статье по ссылке указано, что Альфред Катценбах, директор IT-подразделения Daimler сообщил о более чем 20 MLOC в радио- и навигационной системе. Ни радио, ни навигация критичными для безопасности автомобиля не являются (если водитель не идиот). И раздувание объема скорее всего будет идти именно в этих областях.
    В тоже время объем ПО F-22 — всего 1,7 MLOC, F-35 — 5,7 MLOC, Boeing-787 — 6,5 MLOC. При этом смешно сравнивать сложность решаемых задач для любого сколь угодно дорогого и сложного автомобиля и самолета.


    1. tyomitch
      13.06.2017 14:25

      Ни радио, ни навигация критичными для безопасности автомобиля не являются (если водитель не идиот).

      Сбой в работе радио и/или навигации приведёт, как минимум, к рассеиванию внимания водителя, конечным итогом чего вполне может стать авария.

      При этом смешно сравнивать сложность решаемых задач для любого сколь угодно дорогого и сложного автомобиля и самолета.

      И что же в задачах самолёта намного более сложного? Объезжать препятствия ему не нужно, светофоров и перекрёстков в воздухе тоже нету.


      1. novice2001
        13.06.2017 15:40
        +1

        Если вы читали статью про «Тойоту», то там описан случай самопроизвольного разгона автомобиля из-за ошибки в ПО. Не нужно сравнивать случаи, когда ошибка в ПО ведет к аварии непосредственно, со случаями, когда это происходит косвенным путем. Внимание рассеиваться может и со вполне аналоговым радио и вовсе без радио.
        И я специально подчеркнул — если водитель не идиот. Но если водитель идиот, то его гораздо надежнее вовсе исключить из управления автомобилем, чем делать сверхнадежный (и сверхдорогой) радиоприемник и навигатор.

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


        1. tyomitch
          13.06.2017 16:55
          -1

          Только вот в статье не было речи об автомобилях с автопилотами.
          Ну кто бы мог подумать!
          Поговорим, конечно же, о Tesla Model S. 7 мая 2016 Джошуа Браун, прославившийся благодаря своим роликам на YouTube, посвященным восхвалениям электромобиля, попал в автокатастрофу. Он находился за рулем Tesla Model S. Будучи на 100% уверенным в интеллекте машины, он доверился автопилоту. Результат доверия трагичный — от полученных травм Джошуа скончался на месте.


          1. novice2001
            13.06.2017 17:29

            Кто бы мог подумать, что речь идет о статье по ссылке?


        1. relia
          13.06.2017 17:41
          +2

          Если вы читали статью про «Тойоту», то там описан случай самопроизвольного разгона автомобиля из-за ошибки в ПО. Не нужно сравнивать случаи, когда ошибка в ПО ведет к аварии непосредственно, со случаями, когда это происходит косвенным путем.

          Не так: основная проблема была в конструктиве «электронной педали», которая могла заедать, а проблема с ПО была в том, что оно не отрабатывало нормально такие ситуации (газ нажат, и водитель топчет тормоз), т.к. код в контроллере был написан через то самое отверстие. Без механических проблем с педалью этот баг продолжал бы жить долго и счастливо.


          1. novice2001
            13.06.2017 18:29

            А где вы находите здесь противоречие написанному мной? Из-за бага в ПО машина неконтролируемо и самопроизвольно разгонялась вопреки действиям водителя. Причинно-следственная связь прямая.


            1. relia
              13.06.2017 19:12

              Прочтите еще раз мое последнее приложение. Первопричина лежит в механических проблемах с конструктивом модуля педали газа, а электроника не подстраховала этот откровенный п… еб. Точно так же в ВАЗ-2108 и ее производных со временем протирается моторный щит в районе отверстия для тросика газа и его (тросик) может прикусить. Чаще всего тросик все-таки перекусывается или перетирается, но у меня в свое время его именно закусило панелью при почти полностью нажатой педали газа. И никакой страхующей электроники — только навыки работы ногами и руками :)


              1. novice2001
                14.06.2017 00:25

                Я внимательно прочитал ваш комментарий целиком. И еще раз повторю — это именно критический баг ПО. Может быть проблема с механическим конструктивом, может быть проблема с датчиком, может быть проблема с АЦП — нажатие на педаль тормоза должно душить двигатель вплоть до полной остановки (естественно, мы говорим о дорожных машинах).
                Хотя в целом с тормозом зажатым в пол и так большинство машин никуда не уедут.


  1. Pest85
    13.06.2017 16:00
    +3

    Knight Capital Group. Трейдинг на бирже.
    Функция которая использовалась в тестовом сервере просочилась в продакшн. За одну ночь потеряли $440М. Утром владелец проснулся, а компании больше нет.


  1. EDA
    13.06.2017 16:48
    +2

    Спасибо, статья интересная. Вывод тоже понятен — если от дефектов кода страдает доход или капитализация компании — есть стимулы такой код делать качественным, а если неизбежные ошибки обнаружены — быстро их патчить.

    А вот чего я не прочитал, так это доказательств, что «на первый план выходит надежность программного обеспечения». Нет, не выходит. Для условных кофеварок, телевизоров подешевле, фотоаппаратов код пишут студенты-второкурсники в перерывах между парами и кустари-самоучки. Так дешевле. Хорошо, если код работает на 90%. Если Ваша кофеварка перестаёт работать каждый четверг при повышенной влажности, то никаких последствий для программиста не будет. Хотите — возвращайте кофеварку по гарантии в магазин. Возврат определённого процента брака заложен в стоимость изделия. А за залитую кофе мраморную столешницу Вам никто платить не будет.


    1. novice2001
      13.06.2017 17:41
      +1

      Как мне кажется, вы сильно заблуждаетесь. Причиненный нештатной работой той же кофеварки материальный ущерб без проблем компенсируют даже в России, не говоря уже о более цивилизованных странах. Первично, конечно, компенсацию будут взыскивать с продавца. И, даже, если этот продавец впоследствии не взыщет свои убытки с производителя/дистрибьютора, то во всяком случае просто перестанет иметь с ним дело. А это уже недополученная прибыль.


  1. JustRoo
    13.06.2017 18:26
    +2

    В копилку: шесть человек получили передозировку радиации из-за бага в рентген-аппарате; двое скончались.


  1. zenkz
    13.06.2017 20:49
    -2

    С каждым годом сложность программного обеспечения растёт, а его качество падает. Этому много причин, начиная от квалификации разработчиков и тестировщиков и заканчивая накоплением устаревшего кода и усложнением систем.

    Так что готовьтесь, что ком проблем с программным обеспечением будет только нарастать… И исправить это можно только переписыванием старых систем и исправлением ошибок в новых (а также внедрением автоматизированного тестирования и повышения квалификации программистов).


  1. nikitasius
    14.06.2017 10:00

    Всеобщий масштаб — Беда 2038 года

    Эхх… корвет 70х, и ничего ему не страшно.