Моральный выбор программиста: когда код может навредить и что делать?
В сознании обывателя программист — это творец, который из «нулей и единиц» создает удобные приложения и полезные сервисы. Однако у каждой медали есть обратная сторона. Современный софт инструмент, влияющий на жизнь миллионов. И перед разработчиками все чаще встает непростой вопрос: а что, если мой код способен причинить вред?
Грань между пользой и вредом
Проблема морального выбора в IT часто неочевидна. Редко когда менеджер приходит и говорит: «Давайте напишем код, который будет обманывать людей». Чаще всего вред маскируется под бизнес-задачи.
Первый тип дилемм — это осознанное участие в сомнительных проектах. Например, вам поручают разработать алгоритм скоринга для банка. Формально вы просто пишете логику. Но если этот алгоритм необъективно отсеивает людей по национальному признаку или району проживания (цифровая дискриминация), вы становитесь соучастником несправедливости. То же касается создания гипертаргетированной рекламы, нацеленной на игроманов или несовершеннолетних, или разработки «темных паттернов» (интерфейсов, которые обманом заставляют пользователя подписаться на платную услугу).
Второй тип сложнее — это непреднамеренный вред. Вы создаете безобидную социальную сеть для общения, но добавленная по просьбе маркетологов функция бесконечной ленты (infinite scroll) приводит к цифровой зависимости у подростков. Вы оптимизируете код рекомендательной системы, и она начинает подсовывать пользователям все более радикальный контент, чтобы удержать их внимание. Чья это ответственность?
Серая зона ответственности
Главная ловушка профессии — иллюзия технической нейтральности. Фраза «Я просто выполняю свою работу» или «Это всего лишь код» — это попытка уйти от ответственности. В этическом вакууме любой код, особенно с использованием машинного обучения и Big Data, перестает быть просто математикой. Он становится оружием влияния.
Программист обладает уникальной властью: он понимает систему так, как не понимают ее заказчики и пользователи. И эта власть накладывает обязательства. Врач дает клятву Гиппократа («не навреди»), а клятвы программиста пока не придумали, хотя отдельные компании (например, Google) уже сталкивались с бунтами сотрудников, отказавшихся работать над военными контрактами.
Что делать, когда совесть против?
Как же быть, если вы оказались перед моральным выбором? Можно предложить алгоритм из трех шагов.
- Диагностика. Задайте себе вопрос: «Если бы мои близкие или я сам стал пользователем этой функции, понравилось бы мне это?» Если вы ловите себя на мысли, что хотели бы скрыть детали реализации от конечного пользователя — это тревожный звоночек.
- Диалог. Не молчите. Объясните продакту или тимлиду возможные последствия. Часто бизнес просто не задумывается об этической стороне вопроса, пока на это не укажут. Предложите альтернативу: например, собирать меньше данных или дать пользователю более явный выбор.
- Принцип «хирурга». Если диалог не удался и проект нацелен на прямой обман, причинение боли или нарушение закона, нужно быть готовым к отказу. Сменить проект или компанию — не всегда просто, но это вопрос сохранения собственного «я». Рынок труда достаточно велик, чтобы найти место, где не придется краснеть за каждую написанную строчку.
Моральный выбор программиста — это выбор в пользу осознанности. Код — это не просто инструкция для машины, это инструкция для общества. И от того, какие команды мы пишем сегодня, зависит то, в каком мире мы будем жить завтра. Лучший код — тот, который делает жизнь лучше, а не просто приносит прибыль любой ценой.