Пару недель назад на ресурсе Free Code Camp была опубликована статья программиста Билла Сурура, которая стремительно стала вирусной и разлетелась по социальным сетям. Статья называлась «Код, за который мне до сих пор стыдно».
Сурур поделился пугающей историей из времен своей молодости. Когда он был еще начинающим программистом, он разрабатывал сайт для одной фармацевтической компании. Руководство компании вынудило его создать функционал, который бы действовал в обход законодательства о рекламе медицинских препаратов. В результате сайт предлагал молодым женщинам приобретать один необычный препарат. Как выяснилось впоследствии, этот препарат имел опасное побочное действие. Его прием усугублял депрессию. По крайней мере, одна женщина под действием этого препарата покончила с собой. Спустя два десятилетия после этой истории Билл Сурур до сих пор испытывает чувство вины за то, что помогал рекламировать опасное лекарство.
«Мы убиваем людей»
Билл Сурур – далеко не первый, кто поднимает вопрос о профессиональной этике программистов. На написание своей статьи-исповеди его натолкнула лекция известного разработчика Роберта Мартина «Будущее программирования». Роберт Мартин – очень авторитетная личность в мире программирования. В своем мире он известен как «Uncle Bob» («Дядя Боб»).
Мартин согласен с тем, что разработчикам программного обеспечения необходимо выработать некий «кодекс чести», и сделать это необходимо как можно быстрее.
«Давайте решим, что означает “быть программистом”. Цивилизация зависит от нас. Цивилизация еще не понимает этого», – говорит Роберт Мартин в своей лекции. По словам Мартина, всё, что делает современный человек, от покупок и телефонных звонков до поездок на машине или авиаперелетов, так или иначе связано с программным обеспечением. При этом ошибки в ПО автомобилей уже стоили жизней десяткам людей. А ошибки в ПО самолетов – сотням. «Мы убиваем людей», – говорит Мартин.
Само собой, человек не становится программистом, чтобы сеять смерть и разрушение, но от этого ситуация лучше не становится. Стоит лишь вспомнить знаменитый «Дизельгейт» – скандал, разразившийся в прошлом году вокруг концерна Volkswagen. Напомним, тогда выяснилось, что компания внедряла в свои автомобили код, позволяющий обманывать экологические тесты. В результате расследования власти пришли к выводу, что афера была спланирована с самой верхушки Volkswagen. Но в процесс руководство концерна обвиняло во всем программистов. Дескать, кодеры по собственной инициативе разработали и внедрили обманный код.
Но, по мнению Роберта Мартина, не так уж важно, кто отдал приказ. Важно то, что нашлись программисты, которые написали этот код. И они прекрасно осознавали, что делают. По мнению Мартина, рано или поздно настанет день, когда по вине программиста погибнут десятки тысяч людей. Чтобы этого не допустить, необходимо создать некий «кодекс чести» – свод правил профессиональной этики для программистов.
«Я не боюсь сказать» по-программистски
Исповедь Сурура стала вирусной и очень быстро разлетелась по сообществам Hacker News и Reddit. За этим последовал длинный перечень признаний от других программистов. Все они рассказывали о неэтичных или нелегальных вещах, о которых их когда-либо просили работодатели или заказчики.
Один рассказал о работе в компании, которая продолжала рассылать людям письма даже после того, как те отказывались от рассылки (что, к слову, является прямым нарушением законодательство в некоторых странах). Когда рассказчик воспротивился этому, его просто уволили.
Другого программиста наняли, чтобы написать программное обеспечение для радиопередатчика, использующего для передачи данных каналы экстренных служб. Заказчики посчитали, что так данные можно будет передавать быстрее. И их совсем не волновало, что их передатчик может мешать экстренной связи. Хотя рассказчик отказался браться за такую работу, по его словам, всегда найдется кто-то менее принципиальный.
Еще один программист рассказал, как ему вручили код, украденный у конкурентов, и попросили немного подправить. Как объяснили заказчики, это нужно «только для демо-версии для инвесторов». Иными словами, программист был должен участвовать в обмане потенциальных инвесторов.
Неэтичная разработка
В развернувшемся обсуждении многие программисты признавались, что принимали подобные неэтичные заказы. По их мнению, нет смысла отказываться, ведь на их место всегда придет другой, который возьмется за работу. Роберт Мартин считает это пустой отговоркой. По его мнению, программистам уже сейчас необходимо выработать некий кодекс и начать устанавливать собственные правила для заказчиков. В противном случае рано или поздно произойдет какая-либо катастрофа, и тогда ограничения для программистов будут устанавливаться уже «сверху». Если в результате какого-либо инцидента программирование будет признано опасным, власти будут сами решать, как должен работать кодер и какие языки ему разрешено использовать.
По словам Мартина, избежать такой диктатуры можно лишь одним путем. Каждое учебное заведение, которое готовит программистов, должно параллельно включать курс профессиональной этики. Это же касается курсов или ресурсов, где многие программисты-самоучки обмениваются опытом. О профессиональной этике программирования необходимо говорить повсюду. Ведь отсутствие такой этики угрожает не только окружающим людям, но и самому IT-сообществу.