Рис 1. Ядро и конвейер. Разработка ускоряется, но в центре по-прежнему твёрдое и структурированное ядро, которое обеспечивает стабильное развитие проекта.
ИИ всё ещё не заменяет разработчика. Однако он может превратить одного опытного инженера с системным мышлением в настоящий человеко-машинный конвейер.
За 25 лет в IT и разработке я выработал проверенный временем подход, который ценят клиенты.
С приходом ИИ он превратился в человеко-машинный конвейер, который ускорился в разы. Опишу его ниже на примере работы над проектом по созданию IT-продукта формата SaaS, хотя формат может быть практически любым.
Алгоритм работы конвейера#
С самого начала проекта формирую человеко-машинный контекст в виде markdown-хранилища, с которым работаю из VS Code и Obsidian и структурирую его машино-понятным образом, чтобы с ним могли взаимодействовать ИИ-агенты.
I) Видение продукта и реверс-инжиниринг#
- Первоначальные продуктовые требования пишу сам
- Дальше сам ищу референсы и собираю первичный контекст для ИИ
- Прошу проанализировать контекст и описать функционал, как он его понял
- Валидирую и корректирую описание функционала
II) CJM и спецификация экранов#
- Прошу ИИ составить CJM по имеющемуся функционалу
- Валидирую и корректирую CJM с учётом особенностей нашего продукта (того, чем мы будем отличаться от референса)
- На базе скорректированного функционала прошу описать текстом содержимое экранов
- Валидирую и корректирую описание
III) UX и дизайн#
- Через интеграцию с Figma выгружаю описание экранов в UX-прототипы интерфейса
- Валидирую, корректирую UX
- Подбираю UI kit и на базе UX-прототипов получаю дизайн-макеты, проверяю
IV) Техническая спецификация и бэкенд#
- Прошу ИИ подготовить REST API по функционалу, валидирую, корректирую
- Определяю стек проекта
- Прошу ИИ подготовить базовый код бэкенда по REST API, схеме данных и функционалу.
- Допиливаю бэкенд, деплою, готовлю к итеграции
V) Фронтенд#
- Создаю скелет проекта фронтенда
- Выгружаю дизайн-мекеты в код фронтенда
- Прошу ИИ дописать интеграцию с бэкендом
- Экран за экраном проверяю логику и интеграцию, дописываю недостающие куски
VI) Тесты#
- Прошу ИИ написать тестовые сценарии
- Покрываю тестами критические сценарии (без фанатизма)
VII) Инфраструктура и управление проектом#
- На этапе MVP автоматизирую деплой скриптами или докеризацией, в зависимости от задач проекта
- Всё это время веду проект: создаю и декомпозирую задачи, оцениваю, планирую ближайшие спринты, трекаю время, формирую отчёты
- Поддерживаю порядок в кодовой базе:
- интеграция git с трекером проектов в обе стороны (активные ссылки, комментариии, conventional commits)
- стиль кода, архитектуру, делаю ревью за ИИ, веду TODO для техдолга, использую git-hooks для проверки нейминга и линтеров
- Разворачиваю и развиваю инфраструктуру
- настраиваю доступы по ключам, basic auth, контроль открытых портов, интеграции
- разворачиваю stage и prod окружение, настраиваю мониторинг серверов, централизованное логгирование
Разработка под ключ#
Порог входа в разработку сегодня существенно снизился. Если раньше наблюдалась ярко выраженная специализация - фронтенд, бэкенд, UX, дизайн, тестирование и т.д, и на каждую роль в команде, как правило, был отдельный специалист, то теперь все перечисленные этапы в проекте могу выполнять я один. И если этот “я” не особенно компетентен, то на каждом этапе мы получаем проблемы.
Это означает, что разработка под ключ стала, с одной стороны, доступнее, с другой - её качество резко упало, поскольку без понимания нюансов и системного мышления на выходе можно получить чёрт знает что. Хотя надо отметить, что ИИ определённо подталкивает к использованию лучших практик. Однако он поддержит и любые отклонения и компромиссы, важность которых ему объяснит разработчик.
Актуальные проблемы#
Как следствие, прямо сейчас в ряде проектов, которые консультирую как внешний CTO, я наблюдаю проблемы на уровне управления, когда разработчику доверили слишком много, а он не подумал об аналитике, архитектуре, о UX-е продукта, не учёл важные нюансы по поводу безопасности операций, которые должны быть атомарны, а занимался исключительно кодом. В итоге продукт получился таким, каким получился.
Дальше это ведёт к тому, что:
- пользовательские свойства продукта оставляют желать лучшего
- доработки начинают требовать всё больше времени, потому что архитектура их не учитывала
- неожиданно возникают ошибки, которые чреваты потерей репутации
- никто не понимает, когда закончатся бесконечные правки
- сменить подрядчика сложно, потому что весь контекст в руках одного человека
Технологическое партнёрство#
ИИ-агенты невероятно помогают в избавлении от рутины — от генерации CJM до разработки REST API, верстки экранов из Figma и написания бизнес-логики. Но «магия» происходит только тогда, когда на каждом этапе стоит инженер, который строит архитектуру, задает рамки, проводит ревью и видит всю систему целиком.
Недавно в ходе презентации результатов спринта клиент сказал примерно следующее:
Юрий, мне очень нравится ваш системный подход.
Как логично и структурно вы развиваете проект!
Именно к этому я и стремлюсь. Автоматизируя и ускоряя хаос, невозможно получить стабильную систему. Поэтому архитектура и системность находятся на первом месте. А следом уже идёт реализация.
И клиенты хотят и готовы вкладываться в проекты, которые создают у них чувство уверенности в завтрашнем дне. С одной стороны, потому что верят в идею проекта и видят, как он развивается. С другой стороны, потому что проект находится под управлением, которое вызывает доверие.
И именно это я называю технологическим партнёрством и настоящей разработкой под ключ. Клиент занимается бизнесом и закрывает стратегию и финансирование. Технологический партнёр закрывает все аспекты развития проекта от и до.
Помощь с правильным внедрением ИИ в разработку#
Как с этим у вас? Уже выстроили свой аналогичный конвейер?
Если планируете или уже запустили процесс внедрения и испытываете трудности, буду рад поделиться опытом.
Регулярно выступаю внешним консультантом и руководителем проектов по внедрению современных подходов к разработке, включающих specification-driven development и настоящий правильный вайб-кодинг, после которого не пропадает вера в ИИ.
На ряду с этим помогаю выстраивать проектное управление при разработке IT-продуктов, которое не забывает про стратегию, продуктовую аналитику, архитектуру систем и эффективность процессов разработки. Что ставит разработку на правильные современные рельсы.
Авторы
Юрий Абдуллин @yury_eaCCO/CTO, IT-предприниматель, ментор IT-проектов.
25 лет в разработке информационных систем (обо мне)
Аудит, консалтинг, систематизация
Регулярно участвуем в проектах по аудиту и систематизации процессов в разработке и управлении. Помогаем найти и внедрить решения, когда:- Действиям не хватает системности
- Управление процессами не работает
- Решения принимаются без опоры на цифры
- Есть вопросы к разработке и коду
- Систематизируем процессы
- Оцифровываем метрики и показатели
- Структурируем управление
- Налаживаем работу отделов и команд разработки