Статьи

Когда плохое программное обеспечение убивает

«Изогнутая пирамида Снефру в Дахшуре» Ивриенена в en.wikipedia. Лицензировано в соответствии с CC BY 3.0 через Wikimedia Commons - http://commons.wikimedia.org/wiki/File:Snefru%27s_Bent_Pyramid_in_Dahshur.jpg#mediaviewer/File:Snefru%27s_Bent_Pyramid_in_Dahshur.jpg

«Изогнутая пирамида Снефру в Дахшуре» Ивриенена в en.wikipedia.

Это « Изогнутая пирамида » — 4600-летний памятник инженерным сбоям.

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

Считается, что проект был изменен во время строительства после катастрофического крушения пирамиды Мейдума — еще одной крутой пирамиды — примерно в 60 километрах к югу.

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

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

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

Никто не пострадает, верно?

Или это то, что мы думаем .

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

И когда мы терпим неудачу — как те древние египтяне — люди могут действительно пострадать.

Удивительно, но, как показывает печальный случай с Therac-25 , это даже не проблема 21-го века.

Программное обеспечение может убить

К концу 1970-х годов компания «Атомная энергия Канады Лимитед» (AECL) заслужила хорошую репутацию за создание аппаратов для лучевой терапии.

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

Ранее AECL пользовались большим успехом в своих моделях Therac-6 и Therac-20. Эти устройства должны были управляться вручную обученным оператором и использовать механические переключатели и проводные цепи для обеспечения высокого уровня безопасности.

Therac-25 должен был стать их «машиной мечты».

Машина Therac-25

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

Therac-25 был и амбициозным, и сложным, и впервые все это оборудование контролировалось программным уровнем.

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

Более поздние исследования тщательно задокументировали эти недостатки, и сегодня они все еще читают.

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

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

С момента его запуска в 1982 году до его отмены в 1986 году шесть пациентов получили смертельные травмы в результате лечения Therac-25. Это особенно ужасно, если учесть, что эти бедные люди уже болели.

Сегодня AECL существует не как компания, а как трагический пример для всех нас, как плохо разработанное и непроверенное программное обеспечение может повлиять на жизнь. На сегодняшний день трагедия Therac-25 до сих пор дает нам много идей о разработке систем и тестировании безопасности.

Древняя статуя фараона

фото: kmf164

Даже если вы дизайнер внешнего интерфейса и не считаете себя «серьезным инженером», у Therac-25 есть важные уроки. Хотя некоторые недостатки были вызваны плохо закодированными процессами, по крайней мере, такой же ущерб был вызван неадекватной документацией, бесполезной обратной связью и непонятными сообщениями об ошибках. Это те области, на которые должны влиять все — дизайнеры, программисты, менеджеры, UX-специалисты и тестировщики.

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

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

Первоначально опубликовано в выпуске SitePoint Design Newsletter от 29 января . Подпишитесь здесь ,