Исследование непредвиденных последствий автоматизации в программном обеспечении

1760087498
2025-10-10 09:00:00

Ключевые выводы

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

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

Мифы и заблуждения об автоматизации

Хотя на данный момент автоматизация задействована почти во всем программном обеспечении, мне было любопытно, как инструменты/системы, предназначенные для работы независимо от людей, могут способствовать, помогать или иным образом участвовать в инцидентах, когда программное обеспечение не работает так, как задумано или ожидалось — такие вещи, как конвейеры развертывания CI/CD или автоматическое масштабирование модулей Kubernetes. Мой интерес к исследованию роли автоматизации в инцидентах с программным обеспечением возник как из множества историй и анекдотов, которые я знаю от людей из сферы SRE и реагирования на инциденты, так и из наблюдения за тем, как ИИ продолжает доминировать в технических обсуждениях, инструментах и продуктах.

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

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

Это заблуждение основано на таких предположениях, как HABA-MABA («Люди лучше / машины лучше»), которые предполагают, что сильные стороны человека и машины фиксированы, а проектирование системы – это просто вопрос соответствующего распределения задач (Деккер, Сидни и Вудс, Дэвид. (2002). MABA-MABA или Абракадабра? Прогресс в координации взаимодействия человека и автоматизации. Познание, технологии и работа. 4. 240-244)

Read more:  Рождается цифровой атлас человеческого тела, органы, которые можно исследовать в 3D

Деккер и Вудс утверждают, что этот подход, основанный на замещении, терпит неудачу, потому что:

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

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

Непредвиденные последствия автоматизации

То, что мы увидели в отчетах об инцидентах с программным обеспечением от VOID, отражает то, что Деккер и Вудс сформулировали выше. Мы обнаружили, что автоматизация способствует возникновению инцидентов по-разному, часто в одном инциденте по-разному! Автоматизация может быть фактором, способствующим возникновению инцидента, она может предупредить людей об инциденте, она может (очень редко) решить инцидент самостоятельно и, к сожалению, также может затруднить решение инцидента для людей, чем если бы автоматизация отсутствовала изначально.

Пожалуй, самым публичным примером этого была ситуация, когда сотрудники Facebook не смогли попасть в свои собственные центры обработки данных во время крупного сбоя в работе в 2021 году. Через их систему автоматически распространилась команда, которая непреднамеренно отключила все соединения в их магистральной сети, фактически отключив центры обработки данных Facebook по всему миру. Это привело к проблеме с DNS, из-за которой остальная часть Интернета не могла найти свои серверы, а также потребовалось дополнительное время для активации протоколов безопасного доступа, необходимых для того, чтобы сотрудники Facebook могли находиться на месте и иметь возможность работать на серверах.

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

  • Проектирование только для желаемых результатов

    Разработчики автоматизации склонны представлять себе желаемые результаты автоматизации (например, меньшую рабочую нагрузку, более высокую точность) и что только те желаемые результаты произойдет. В качестве примера возьмем всю арену «ошибок конфигурации»: конвейер CI/CD хорош до тех пор, пока он не выпустит изменение, которое приведет к сбою всей системы, без каких-либо признаков того, что может произойти что-то неладное.

  • Непредвиденные негативные последствия

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

  • Деквалификация в сочетании с пассивным мониторингом

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

  • Новые, неожиданные формы человеческого труда

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

  • Отсутствие прозрачности активности автоматизированной системы.

    Автоматизация создает системы, которые требуют от людей предоставления информации, выходящей за рамки известных инструкций (например, руководств). Чтобы отладить систему с автоматизацией, необходимо понимать не только систему в целом, но и автоматизацию, а также то, что она должна делать и почему она делает это неправильно. Это принципиально более сложная задача, чем без автоматизации! Это часто проявляется в отдельных источниках или хранилищах опыта, например, когда Эми, эксперт по Кафке, уходит в отпуск, никто другой не знает тонкостей вопросов ребалансировки потребителей так, как она.

Read more:  Потоковая передача в Канаде на Crave, Disney+, Netflix и Prime Video [Sept. 29-Oct. 5]

Как совместные когнитивные системы лучше поддерживают людей, работающих с автоматизацией

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

В исследовании, проведенном Гэри Кляйном и его коллегами, они описывают 10 ключевых аспектов этой совместной деятельности коллективно как:

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

Здесь слишком сложно рассмотреть все десять ключевых элементов, но стоит отметить, что для того, чтобы согласовать эту цель (и скорректировать ее с течением времени), те, кто работает вместе, должны:

  • Будьте взаимно предсказуемы в своих действиях

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

  • Будьте взаимно управляемыми

    Быть управляемым — это способность сознательно оценивать и модифицировать действия других сторон в условиях сотрудничества по мере изменения ситуации и приоритетов (очень распространенная реальность для команд разработчиков программного обеспечения). Эффективная координация требует адекватного реагирования команды на действия друг друга по ходу работы.

  • Поддерживайте общий язык

    Это действительно ключевой атрибут хорошо отточенной JCS. Общая основа отражает соответствующие знания, убеждения и предположения что все вовлеченные стороны разделяют, что позволяет каждой стороне понимать общение, которое помогает координировать совместные действия. Разрушение взаимопонимания иногда может привести к потенциально катастрофическому нарушению функционирования команды.

Read more:  Исследование идентифицирует генные кластеры в ризобии, связанные с надежным ростом бобовых - Бюро новостей

Теперь, если вы думаете: «Ну, я не знаю ни одной автоматизированной системы, которая бы это делала!» тогда ты не одинок, потому что я тоже. Пока нет. мне очень интересно кое-что недавняя работа в этой области от Honeycomb. Кажется, они понимают многие принципы, которые я описал выше, и могут сформулировать, почему (а почему бы и нет) использовать LLM и ИИ:

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

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

Если люди заинтересованы в получении дополнительной информации, я помог запустить Устойчивость в Software Foundationразнообразное междисциплинарное сообщество, занимающееся решением подобных проблем в нашей отрасли.

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

#Исследование #непредвиденных #последствий #автоматизации #программном #обеспечении

По теме

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.