Как искусственный интеллект создает "большие комки грязи" в системах: анализ и решения
Искусственный интеллект (ИИ) значительно упростил процесс создания программных систем, что привело к возникновению новых вызовов в области архитектуры программного обеспечения. Пользователи, не обладая достаточной технической подготовкой, начинают строить сложные системы, полагаясь на мощные библиотеки контекста, что в итоге приводит к созданию "больших комков грязи" — систем, которые сложно поддерживать и развивать.
Глобальный контекст: инструкции или знания, применимые ко всей системе.
Локальный контекст: информация и инструкции для конкретной задачи или проекта.
Амбиентный контекст: потоки информации, такие как электронные письма или записи встреч, доступные ИИ.
Если пользователь понимает, что необходимо изменить в каждом из этих типов контекста, то полная реконструкция, скорее всего, не потребуется. Однако, если эти типы контекста начинают смешиваться, это может привести к необходимости масштабной переработки системы.
Поддержание типов контекста отдельно.
Указание типа контекста при внесении изменений.
Периодическая проверка глобального контекста.
Что такое "большой комок грязи"?
Термин "большой комок грязи" (big ball of mud) был введен Брайаном Футом и Джозефом Йодером в 1997 году и описывает системы, созданные для краткосрочной функциональности, но не спроектированные для долгосрочной надежности. Такие системы могут быть полезными, но их хрупкость делает их дорогостоящими в обслуживании. Это похоже на шанхайский город, построенный наспех: он требует постоянного ремонта и доработки, вместо того чтобы функционировать как хорошо спланированная инфраструктура.Паттерны формирования "больших комков грязи"
Фут и Йодер выделили несколько паттернов, по которым формируются и сохраняются "большие комки грязи". В ходе нашего исследования мы выявили пять основных паттернов: 1. Код для выбрасывания: На этом этапе пользователь использует ИИ для создания прототипа, который быстро становится частью его рабочего процесса, несмотря на отсутствие тщательного тестирования и планирования. Например, пользователь создает файл правил, который ИИ использует для управления поведением агентов. Со временем этот файл становится критически важным, и пользователь начинает зависеть от него. 2. Постепенное развитие: Когда возникают новые потребности, пользователи добавляют новую функциональность к существующей системе. Один из участников исследования описал, как его инструмент прошел через несколько этапов, начиная с простого виджета и заканчивая сложной панелью управления. 3. Поддержание работоспособности: Когда система начинает давать сбои, пользователи чаще всего просто патчат её, вместо того чтобы полностью перерабатывать. Это приводит к зависимости от системы, что в свою очередь затрудняет понимание её структуры и функциональности. 4. Скрытие проблем: Когда пользователи не могут или не хотят навести порядок в системе, они помещают все в одно место, чтобы остальная часть системы оставалась аккуратной. Это похоже на ящик для мусора, где все необходимые материалы хранятся в одном месте, но найти их становится все труднее. 5. Реконструкция: В конечном итоге многие системы, основанные на ИИ, либо перестраиваются, либо забрасываются. Причинами для реконструкции могут быть несоответствие системы текущим потребностям, потеря понимания структуры системы или появление более эффективных способов работы.Как понять, нужно ли реконструировать?
Чтобы определить необходимость реконструкции, пользователи должны задать себе простой вопрос: понимают ли они, что нужно изменить в библиотеке контекста, на которую опирается система? Библиотека контекста состоит из трех типов контекста:Поддержание целостности системы
Ключ к поддержанию целостности системы заключается в том, чтобы следить за каждым типом контекста отдельно. Это позволяет избежать принудительной реконструкции и поддерживать систему в рабочем состоянии. Пользователи могут внедрять небольшие привычки, такие как:Заключение
В ходе нашего исследования мы заметили, что "грязь" присутствует даже у самых продвинутых участников. Искусственный интеллект убрал многие ограничения, но проблемы с архитектурой систем остались. Важно не только создавать, но и периодически пересматривать и оценивать, что делает каждая часть системы, чтобы не оказаться в ситуации, когда система станет слишком сложной для понимания и управления. Реконструкция должна быть осознанным выбором, а не экстренной мерой.
Источник:
Nielsen Norman Group