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

Это стало клише, которое можно услышать почти на каждой технической конференции (а также на многих других деловых мероприятиях, не связанных с технологиями): Программное обеспечение поедает мир ». Это был провокационный фрейм со стороны Марка Андреессена (и довольно эффективный маркетинг для его фирмы венчурного капитала Andreessen Horowitz), но в нем упущена одна из самых важных частей истории.

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

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

Найдите все положительные значения

Хорошая новость в том, что большинство людей, создающих программное обеспечение, разделяют множество положительных ценностей. (Мы надеемся на это, поскольку в эту группу входят все мы в Fog Creek Software!) Рискуя сделать слишком широкие обобщения, технические работники обычно ценят творческое самовыражение и личную автономию, они часто скептически относятся к унаследованным институтам, которые перестали реагировать на своих избирателей, и имеют глубокий, искренний и неизменный оптимизм в отношении того, что даже самые большие проблемы могут быть решены.

Но это еще не все.

На фоне нынешнего глобального подъема популистских движений мы наблюдаем первую массовую негативную реакцию на технологии с начала эры Интернета. Отчасти это основа экономики: технические люди стали богатыми в то время, когда не многие другие люди сделали это, и некоторые способы их обогащения начали казаться уродливым сюрпризом. Люди глубоко обеспокоены влиянием технологий на их конфиденциальность и безопасность, а также на их работу и экономику. Я уже не говорю о культурных сдвигах, вызванных повсеместным распространением подключенных устройств и социальных сетей.

Во многом это недоверие общества можно объяснить некоторыми из наиболее негативных тенденций в технической культуре. В любом случае наши лучшие качества иногда могут быть нашими худшими слабостями. Техника не исключение.

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

Исправление больших ошибок

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

Когда наша компания Fog Creek Software была основана еще в 2000 году как небольшая инди-фирма, мы тоже чаще всего видели ошибки. Мы сделали приложение для отслеживания ошибок и постарались помочь людям убедиться, что они исправляют ошибки в их программном обеспечении.

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

Но мы упустили и кое-что важное. Эти идеи и идеи о том, как обращаться с людьми, как прислушиваться к клиентам (и сообществам), и как быть внимательными и ответственными при создании технологий, были даже более важнее, чем все, что мы встроили в наше программное обеспечение. Это были первые шаги к попытке исправить то, что мы теперь называем «большими ошибками». Маленькие баги были ошибками в программном обеспечении. Большие ошибки - это когда мы усугубляем (или вызываем!) Серьезные проблемы в обществе.

Укус больших ошибок

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

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

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

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