Comments 5
Как альтернатива Spec-Driven Development может быть есть направление "разработка по аналогии", когда вместо "пухлых" спецификаций указываешь на протопит, а при необходимости уже потом добавляешь пару новых фишек. Это избавляет от необходимости специфицировать весь объем требований.
Т.е. сценарий: Повтори сервис aaa.bbb, указанный в ссылке. Подразумевается, что по ссылке и реализация online-сервиса и доки и т.п. В идеале, чтобы ИИ-разработчик еще и сам протестировал прототип, а потом и свой дубликат.
Есть название такому подходу? Вроде как такое работает: Повтори в точности по функционалу сервис ...
Подробную спецификацию сделать тяжело (хоть и диктовкой), видимо должно быть отдельное направление, когда ИИ сам вначале формирует спецификацию на основе исходных данных, прототипов, документации или еще чего.
Спасибо, интересная статья!
Я бы разделил ваш сценарий на два режима:
Black-box reproduction: без доступа к исходникам.
Агенту даём API/доки/примеры запрос-ответ, возможно тестовый стенд.
Тогда задача воспроизвести поведение, то что описано в статье.White-box reproduction: с доступом к репозиторию.
Тут у меня есть сомнение: в зависимости от лицензии посмотрел код и повторил может стать проблемой, в силу того что агент может взять некоторые куски кода как есть.
Вам не кажется, что "погонщик LLM" при таком подходе перестает быть разработчиком, а становится системным аналитиком (и немного архитектором)?
И к спецификациям надо применять подходы и наработки именно из сферы системного анализа?
Да, роль меняется, это не новость, об этом говорят не первый год. Но я бы уточнил.
По первому вопросу: разработчики действительно смещаются в сторону системного анализа и проектирования. Плюс резко растет навык ревьюера т.к. при работе с AI-агентами это становится основным циклом:
задача -> ревью -> ревью -> ревью.
При этом я разделяю две сферы:
Системная разработка (драйверы, ядра финансовых/медицинских сервисов и т.д. ) - там еще надо думать, как применять AI-агентов
Бизнес-логика - вот тут спецификации работают отлично
По второму вопросу: не только системный анализ. Я экспериментирую с цепочкой:
цель -> objectives -> эпики -> стори -> задачи.
Вместо BPMN использую Activity или Sequence диаграммы так как они так же описывают
процесс.
Это большая исследовательская работа, требующая отдельного фокуса. Но сейчас именно это мой основной вектор: системный анализ и автоматизация разработки.
А вот что меня реально интересует: куда в этой картине входят джуны? Раньше путь был понятен - пишешь код, набиваешь руку. А сейчас?
И обратная сторона - текущие системные аналитики. У многих нет технической базы, кода не писали. Им куда - глубже в бизнес-анализ? Или придется доучиваться?
Да, интересные мысли. Но меня здесь больше волнуют не джуны, а в целом организация разработки ПО.
Вот есть то что называется "промышленной разработкой": команда из большого количества разных специалистов - бизнес-аналитик, дизайнер, системный аналитик, архитектор, разработчик, тестировщик, девопс, техпис (и еще каждой твари по паре) делают большой проект.
Они реализуют задачи, передавая их друг другу (по принципу конвейера). SDLC и так далее.
И тут появляется ИИ.
Как он повлияет на конвейер? Как изменится набор ролей? Как изменится соотношение количества специалистов разных ролей? Как изменятся передаваемые между ними артефакты?
По этой теме я пока ничего концептуального не видел:
Часть статей про то, что "конвейер" вообще не нужен, и всё это может делать один человек (т.н. "инженер полного цикла"). Наверно может, но далеко не во всех случаях.
Вторая часть статей - про то, как изменится работа разработчика, безотносительно к другим специалистам. Будто бы разработчик работает в вакууме. Тот же Spec driven development обычно описан так, что всё это делает один специалист. В реальных больших проектах это скорее всего не так.
Вот и интересно - есть ли практика внедрения ИИ в командную разработку на всех этапах процесса разработки? Не просто "оставляем процесс как есть, а каждый специалист использует ИИ для своих задач", а "перестраиваем процесс с целью максимально эффективного использования ИИ".
Spec-Driven Development: контроль AI-кодогенерации