GoSuda

Методология разработки AI Native

By gosunuts
views ...

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

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

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

AI-зависимая разработка

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

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

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

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

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

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

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

AI-нативная разработка

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

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

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

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