GoSuda

Нативная для ИИ методология разработки: двунаправленная циркуляция контекста, выходящая за рамки использования инструментов

By gosunuts views ...

ИИ и разработчик

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

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

Разработка с зависимостью от ИИ

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

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

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

Разработка с использованием ИИ

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

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

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

Нативная для ИИ разработка

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

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

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

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