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

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

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

Из строк кода, которые убивают

По моему скромному мнению, большинство разработчиков, включая меня, милые, трудолюбивые, сидят перед экраном 8 часов в день (а может и больше), так что «убийство» - довольно странное определение для разработчиков и большинства людей. тоже.

«Убийство» означает бесчеловечное или варварское убийство или резню.

- Dictionary.com -

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

1985–1987 - Аппарат лучевой терапии Therac-25. Программное обеспечение, написанное на ассемблере, сыграло роль в контроле уровня излучения, испускаемого машиной. Из-за недостаточного внимания при проектировании и тестировании, установка подвергала пациентов чрезмерному облучению, что привело к как минимум 6 несчастным случаям, 3 пациента были зарегистрированы мертвыми.

1994 г. - разбился вертолет Scotland Chinook. В результате аварии погибли 29 человек. Публикация« Счетного комитета пришла к выводу, что трагедия вызвана неоднократными сбоями в новой системе Full Authority Digital Engine Control (FADEC).

2018–2019 - авиакатастрофа Boeing 737 Max. Самая последняя и известная катастрофа в истории авиакомпаний. Произошло 2 аварии, погибли 346 человек. Компания Boeing признала проблему в новом интегрированном программном обеспечении под названием MCAS, которое контролирует датчик угла атаки (AoA). После авиалайнеров авиалайнер был остановлен во всем мире.

… Сжечь миллион долларов

28 июля 1962 года - космический зонд "Маринер-1". В 1962 году космический корабль стоил 18,5 миллионов долларов. Ошибка в программном обеспечении полета привела к отклонению ракеты от предполагаемого пути вскоре после взлета. Через 294,5 секунды после запуска отправлена ​​деструктивная команда. В отчете 1965 года НАСА пришло к выводу, что из-за неправильного применения уравнений наведения машина сильно сбилась с курса.

1993 г. - разделение Intel Pentium с плавающей запятой. Intel была предъявлена ​​претензия в размере 475 миллионов долларов из-за этой проблемы. Это одна из наиболее распространенных проблем, связанных с вычислительной арифметикой, у большинства разработчиков есть смысл float или double, содержащих большие данные, чем длинный или целочисленный примитивный тип. Это правда, но ими злоупотребляют. И float, и double настоятельно не рекомендуется использовать в денежных расчетах из-за проблемы с плавающей запятой, которая приводила к тому, что процессор возвращал неверные результаты при делении числа. В 1994 году Intel пришлось отозвать бракованные процессоры.

Май 2017 г. - атака программы-вымогателя WannaCry. Атака шифровальщика широко распространилась по всему миру и нанесла ущерб от сотен миллионов до миллиардов долларов. Червь нацелился на машины под управлением Microsoft Windows путем шифрования данных и шантажировал жертв, заставляя их платить биткойнами. Хотя Microsoft выпустила исправления, большинство затронутых машин работало под управлением старых систем Windows, срок эксплуатации которых подошел к концу.

За кого отвечает?

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

В докладе «Дяди» Боба в 2016 году на тему «Будущее программирования» я всегда помню две цитаты:

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

а также

Ни одно правительство не может действовать без программного обеспечения. Мы правим миром.

Да, миром правят разработчики.

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

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

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

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

Заключительные слова

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

Ссылки