На прошлой неделе в Сети появился пост, написанный программистом и учителем Биллом Соурором. Он называется «Код, которого я стыжусь».
Как началась дискуссия среди программистов
В посте Соурор рассказывает ужасную историю молодого программиста, который устроился на работу и получил задание по созданию веб-сайта для фармацевтической компании. Весь пост стоит прочесть, но суть в том, что программисту пришлось помогать компании создавать основанную на обмане рекламу, которая должна была убедить молодых женщин принимать тот или иной препарат.
Позже он узнал, что препарат был известен своим свойством усугублять депрессию и по меньшей мере одна молодая женщина совершила самоубийство, принимая его. Он также узнал, что его сестра принимает это лекарство, и предупредил ее о последствиях.
Но даже несколько десятилетий спустя он по-прежнему испытывает чувство вины из-за этой работы. Написать этот пост его вдохновила беседа Роберта Мартина под названием «Будущее программирования». Мартин является популярной личностью в мире программистов, хотя здесь он более известен как «Дядя Боб».
Разработчики программного обеспечения «убивают людей»
В этой беседе Мартин утверждает, что разработчикам программного обеспечения необходимо выяснить, какую они берут на себя ответственность, и сделать это нужно быстро. «Давайте решать, что значит быть программистом, — говорит Мартин в видео. — Цивилизация зависит от нас, хотя и не понимает этого до сих пор».
Дело в том, что в современном мире все, что мы делаем, в том числе и покупка вещей, телефонные звонки, вождение автомобилей, полеты в самолетах, не обходится без программного обеспечения. Десятки людей уже были убиты неисправным программным обеспечением в автомобилях, в то время как сотни погибли по той же причине во время авиаперелетов.
«Мы убиваем людей, — говорит Мартин. — Мы пришли в этот бизнес не для того, чтобы делать это. Но ситуация становится только хуже».
Новые проблемы
Мартин отметил, что, по его мнению, существуют признаки того, что разработчики в ближайшие годы начнут все чаще сталкиваться с некоторыми реальными проблемами. Он привел пример генерального директора Volkswagen в Америке Майкла Хорна, который сначала обвинял инженеров программного обеспечения в выбросах, которые производит компании. Во время скандала, который разгорелся на слушаниях в Конгрессе, Хорн заявил, что программисты действовали сами по себе «по той или иной причине». Позже Хорн подал в отставку, после того как американские прокуроры обвинили компанию в принятии этого решения на самом высоком уровне и попытке скрыть это.
Но Мартин отметил: «Самым странным было поведение разработчиков программного обеспечения, которые писали этот код. Некоторые программисты писали код, который помог компании нарушать закон. Как вы думаете, могли ли они знать об этом? Я думаю, что они, вероятнее всего, знали».
Призыв к действию
Мартин закончил свою речь призывом к действию, в котором он предупредил, что в один прекрасный день какой-то разработчик программного обеспечения сделает то, что приведет к катастрофе, которая убьет десятки тысяч людей.
Но Соурор указывает на то, что дело не только в случайных убийствах людей или намеренном загрязнении воздуха. Фирмы на Уолл-стрит уже используют программное обеспечение, чтобы манипулировать биржевыми котировками. Этого не могло произойти без какого-либо программиста, который создает поддельные заказы, — говорит Соурор.
Признания программистов
Пост Соурора появился на Hacker News и Reddit и стал причиной публикации длинного списка признаний от программистов о неэтичных, а иногда и незаконных вещах, которые их просили выполнить.
Один писал о своей работе в компании, которая подписывала людей для своих бюллетеней по электронной почте даже после того, как они от них отказывались (что может являться нарушением федерального закона). Программисты затем писали скрипты, чтобы помочь продавцам компании определять таргетированную аудиторию. Когда этот парень высказал техническому директору свое мнение о неэтичности такой работы, ему было приказано писать заявление об уходе. И теперь, по его словам, эти же программисты работают над стартапами, чтобы определить огромный массив данных о местоположении людей.
Другой программист был нанят написанием программного обеспечения для радиоустройства. Его попросили использовать каналы, отведенные для аварийно-спасательных служб, поскольку это ускорило бы работу устройства. «Это быстрее, но незаконно, и к тому же это опасно в случае чрезвычайных ситуаций», — сказал он. Он отказался выполнять этот заказ, но говорит, всегда есть программист, который готов без вопросов следовать приказам.
Еще один программист рассказал, что во время стажировки ему был передан какой-то код, скопированный с сайта конкурентов. Парня попросили создать на его основе демо-версию для инвесторов. Он понял, что руководству было необходимо обмануть их.
Также была опубликована история о том, как еще одного программиста попросили изменить резервную копию некоторых финансовых данных и запустить годовой отчет повторно, путем восстановления резервной копии измененного. Этот программист отказался от задания. Спустя несколько лет он узнал, что его бывшие заказчики были арестованы за уклонение от уплаты налогов.
10 привычек хронически несчастливых людей
8 фраз, которые надо говорить ребенку ежедневно
Самые ужасные пытки в истории древнего мира
Один программист также рассказал, что совсем недавно его попросили создать азартную игру для детей под видом той, которая направленна на управление ресурсами. По его словам, он больше не работает в этой компании.
Отсутствие этики
Общей темой среди всех этих историй является то, что если разработчик отказывается выполнять такую работу, компания просто найдет кого-то другого, кто смог бы ее сделать. Возможно, это верно сейчас, но может вскоре измениться.
«Мы правим миром, — сказал Мартин. — Другие люди считают, что они управляют миром. Но на самом деле они только записывают правила и передают их нам. И тогда мы пишем правила, которые помогают работать машинам и выполнять все, что необходимо человечеству».
Мартин предупредил, если программисты не начнут отвечать за свои действия сейчас, после того как произойдет какое-то апокалиптическое событие, способное убить тысячи людей, законодатели начнут делать это за них, диктуя все правила работы, вплоть до языка, который им будет разрешено использовать.
Решение проблемы
Очевидное решение заключается в обучении основам этики. И они в значительной степени обязательны для каждого студента информатики, который окончил четырехлетнюю программу обучения. Библией этого курса должна стать работа автора Сары Баас «Подарок огня: социальные, правовые и этические проблемы для вычислительной техники».
К сожалению, многие из сегодняшних разработчиков программного обеспечения являются самоучками или же учатся через так называемое кодирование Bootcamps.
В этом случае их образование редко включает в себя любой вид обучения вопросам этики. Особое внимание следует уделять людям, которые могут очень быстро писать код, чтобы удовлетворить растущий и ненасытный рынок.
Соурор призывает всех программистов, которые используют Bootcamps и учебные онлайн-сайты, начать говорить об этических обязанностях, которые приходят вместе с написанием кода.
Контроль работы
Но что программистам действительно нужно, так это организация, которая будет управлять ими и регулировать их профессию. Другие отрасли, как известно, уже давно имеют подобный контроль. В настоящее время для разработчиков не существует ничего подобного, хотя Ассоциация по вычислительной технике уже приступила к созданию этических документов для программистов.