6 месяцев. Это сколько мы строили продукт с внешним разработчиком. Потом я психанула и сделала за 3 дня сама с помощью AI. Дальше — что я поняла из этого опыта.

Эта статья — не «AI заменит разработчиков». Это про другое — про то, как методология работы меняется, когда у тебя есть AI как партнер.


Что строили

Продукт назывался BidSpot. AI‑агент для b2b‑закупок на маркетплейсах Индонезии. Логика простая: закупщик описывает, что нужно, на естественном языке («нужны 2 ноутбука Asus Zenbook S 14 UX5406, бюджет до 30 млн IDR за штуку»). Дальше агент сам переводит запрос на индонезийский, ищет на Shopee / Tokopedia / Blibli, нормализует выдачу, считает per‑unit цены, ранжирует топ-7, сравнивает с медианой рынка и с похожими тендерами на платформе Zinit, отдает проверяемый markdown‑отчет со ссылками прямо на товары.

В ноябре 2025-го мы подписали договор с внешним разработчиком на MVP такого продукта. Архитектура двухстадийная: глубокий поиск (точная модель → лучшие предложения) и широкий поиск (если точной модели не найдено — подобрать альтернативы).

КП я запрашивала у трех подрядчиков. Все назвали MVP за 2 месяца. Сроки в трех КП были похожи — это убеждало, что 2 месяца — реалистичная оценка. Выбрала одного.

Stage 1 («Глубокий поиск») собрали. Не за 2 месяца. К маю Stage 2 еще не был в продакшне.

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

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

К маю накопилось.

Что запустило

Первая эмоция была не страх. Это была злость — что я не управляю проектом, не знаю всех альтернатив, между которыми разработчик выбирает.

Вторая эмоция шла сразу: «А я не хочу злиться и ничего не делать. Я хочу делать, а не злиться».

В этот момент открылся Claude и пошел первый промт.

Что получилось за 3 дня

Вечером 27 мая — один промт, один API‑ключ, никакой инфраструктуры. Пять разных категорий товаров — ноутбук, кондиционер, промышленный клей, проектор, холодильник — прошли через прототип. Все пять вернули проверяемые markdown‑отчеты с реальными ценами на индонезийских маркетплейсах. Это был proof of concept.

Дальше — три рабочих дня.

К концу третьего дня в продакшне работало:

  • Backend — FastAPI на Railway. От первого коммита до доступного API — 38 минут. Полный пайплайн: перевод запроса → SerpAPI Google Shopping → нормализация → ранжирование через Claude Opus → markdown‑отчет.

  • Frontend — web‑интерфейс на Lovable, через который можно сделать запрос и получить отчет.

  • Бенчмарк с платформой Zinit — автоматическое сопоставление товара из выдачи с похожими закупками в тендерах Zinit, с per‑unit нормализацией цены.

  • 8 критических доработок качества — точное совпадение артикулов, обработка multi‑pack товаров, дедупликация дубликатов, бейдж «Different SKU» для близких вариантов, Marketplace Trust Rule для safety‑critical категорий и еще несколько.

  • Архитектурный слой feature flags — под будущие тарифы (без него продукт нельзя продавать с разной премиум‑логикой).

  • Документация для передачи — README, HANDOFF.md с блоком «как не сломать», чеклист переноса домена, описание env‑переменных.

Стек: FastAPI + Anthropic Claude (Sonnet 4.5 на пайплайне + Opus 4.5 на ранжировании) + SerpAPI Google Shopping + Railway‑хостинг + Lovable‑фронтенд. Стоимость одного поиска ~$0.53. Время одного поиска ~60 секунд.

Это не «MVP, который теоретически работает». Это продукт, который можно передать новому техлиду — он откроет HANDOFF.md, прочитает чеклист и поймет, как система устроена и где она может сломаться.

Дальше — про метод, без которого этих трех дней бы не было.

Растущее ТЗ как метод

Классический сценарий работы по ТЗ, который я знаю:

  1. Пишется ТЗ.

  2. ТЗ отдается разработчику.

  3. Идет ожидание.

  4. Приходит демо.

  5. На демо что‑то не так.

  6. Пишется новое ТЗ или дополнение.

  7. Goto 2.

Что в этом не так: ТЗ написано до того, как кто‑либо увидел первый результат. Большая часть деталей, которые на самом деле важны, обнаруживается только когда продукт сталкивается с реальными данными. Узнавание происходит через две недели — через демо. Исправление — еще через две недели.

Этот темп — норма индустрии. Никто его не выбирал; он сложился исторически, когда цикл «гипотеза → проверка → коррекция» стоил дорого по человеко‑часам.

Когда в качестве партнера появляется AI, темп цикла меняется. И это меняет все остальное — в том числе само понятие «ТЗ».

Правило

В одной строке:

Каждая проверка результата = расширение списка задач.

В переводе на человеческий: ТЗ не пишется до конца. Пишется первый набросок. Запускается первая версия. Дальше идет проверка результата — и из того, что увидела, рождаются новые задачи в ТЗ.

Следующая итерация. Снова проверка. Снова находки → новые задачи. ТЗ растет из результата, а не из предположений.

Вот один цикл из рабочей переписки с Claude, дословно:

«Внеси в ТЗ твои находки в виде задач. Сначала зафиналим обсуждение, проанализируем еще несколько моментов (пришлю в следующем сообщении), а потом будем реализовывать задачи.»

И ответ — три новые задачи в ТЗ с описанием «где проявилось / корень / решение / acceptance / объем». Я их не формулировала. Я только смотрела на отчеты и говорила, что необходимо добавить, чего не хватает, на что обратить внимание — Claude переводил наблюдения в задачи.

Через час — следующая команда:

«Подготовь на основе этих пунктов план сессий. По приоритету — сначала устраняем качественные баги.»

13 накопленных задач разбиваются на Сессию 5 (качество, 8 задач) и Сессию 6 (надежность, 5 задач). Внутри каждой — приоритеты Critical / Should.

Это и есть «растущее ТЗ». Не оно пишется заранее — оно направляется в моменте. От человека требуется одно: смотреть на результат и говорить, что в нем важно, что мелочь, а что блокер. Перевод содержания в структуру задач делает AI.

Пример провала

Чтобы не было ощущения, что все работает с первого раза.

Одна из задач Сессии 5 звучала просто: в финальном объяснении выбора AI должен ссылаться на видимую читателю позицию товара в списке, а не на внутренний идентификатор. Логично, очевидно, исправляется через корректировку промта на 5 строк.

Первая итерация: формулировка переписана. Запускаю. Результат: AI продолжает писать «(idx N)» в скобках.

Вторая итерация: добавлен явный запрет на парентезу с idx. Запускаю. AI больше не пишет «(idx N)», но порядок ссылок все равно не соответствует видимому порядку.

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

Четвертая, финальная итерация: промт переписан с нуля. Не «не делай X», а «делай так: формулируй объяснение через цену — „за 25.7 млн получаете 32 GB, против 30 млн у первой позиции“„. Запускаю. Работает.“»

Каждая итерация — 20–30 минут. Четыре итерации на одну задачу — примерно 2 часа. И это нормально.

В классической работе по ТЗ это заняло бы 4 демо подряд через 2 недели каждое — два месяца на одну, по сути мелкую, задачу. С растущим ТЗ — два часа в один заход. Это и есть та самая разница в темпе цикла.

Санити‑чек

Без одного дополнительного правила растущее ТЗ превращается в свалку.

Правило — остановка для инвентаризации каждые 2–3 часа работы. Дословная формула, которая у меня хорошо работает:

«Делаем короткую паузу. Выдыхаем. Подготовь статус: что было зафиксировано как „необходимо сделать“, что было зафиксировано как „не забыть и обязательно“, что было упомянуто, что из этого было сделано, что осталось.»

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

Эта пауза занимает 5 минут и снимает 80% риска уйти не туда. Без нее через 3–4 часа работы накапливается дрейф: задачи трактуются по‑разному, забывается, что уже сделано, появляются дубли.

Санити‑чек — это не задержка. Это способ продолжать двигаться быстро, не теряя направления.

Эффект 50×

Хочется здесь быть особенно аккуратной — потому что часто отсюда делают неверный вывод «значит, разработчики не нужны». Это не так.

Разница в темпе цикла.

С разработчиком цикл «нашла → описала → внедрил → проверила» занимает 1–2 недели. И это нормально. Разработчик — это человек, у которого несколько проектов, ему нужно переключаться, нужно встретиться, нужно протестировать.

С AI тот же цикл занимает 15–30 минут.

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

AI как партнер снимает требование заранее знать ответ. А заранее знать ответ — это ровно то, чего не получалось у меня в первые шесть месяцев работы с подрядчиком. Я не знала индонезийские маркетплейсы. Не знала, как ведут себя multi‑pack товары. Не знала, что Google Shopping возвращает Bahasa‑результаты в три раза меньше, если запрос не переведен.

Все это узнавалось из самих отчетов. И в момент, когда узнавалось — расширялось ТЗ.

Что было сложно, а что просто

Сложно: не код. Код Claude писал хорошо.

Сложно — внешние сервисы. Railway, SerpAPI. У каждого своя логика авторизации, свои переменные окружения, свои ошибки. Это та область, где AI не работает в одиночку: он не видит мою консоль Railway, не знает, какой именно env‑var забыт. Здесь нужны руки — копировать ошибки, искать в документации, пробовать заново.

Это к разговору о «AI все сделал»: нет, не все. AI закрыл архитектуру и логику. Операционные стыки закрылись руками.

Просто: соблюдать само правило «каждая проверка результата = новая задача в ТЗ».

Но здесь важная оговорка — и она опровергает соблазнительный, но неверный вывод.

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

Что растущее ТЗ снимает — это необходимость держать в голове операционную инвентаризацию: какие конкретные задачи стоят в очереди, что уже сделано, что забыто, в какой сессии они должны быть выполнены, в каком порядке. Эта детализация переезжает в живой документ.

Цельная картина — в голове. Детальная инвентаризация — в ТЗ. Без первого второе бесполезно. И это к слову про порог входа: метод не «упрощает работу», он сдвигает ее в другую плоскость, где экспертное мышление становится критичнее, а память на детали — менее необходимой.

Что значит «3 дня»

Это не «все готово». Это продукт, который можно передать команде.

И вот здесь — главное отличие от шестимесячного процесса с подрядчиком. У подрядчика к шестому месяцу не было ни HANDOFF‑документа, ни чеклиста, ни описания «как не сломать систему». В работе с растущим ТЗ все это появилось автоматически — не потому что кто‑то лучше, а потому что методология растущего ТЗ порождает документацию как побочный эффект. Каждая задача описана. Каждое решение зафиксировано. Передача — это просто прочитать файл.

Кому подойдет метод

Не каждому.

Работает, если есть:

  1. Цельная картина продукта в голове. Без этого растущее ТЗ становится плоским списком без приоритетов.

  2. Готовность вести документацию параллельно с работой. ТЗ — не отчет после факта, а живой документ, растущий прямо в процессе.

  3. Привычка проверять каждый шаг до перехода к следующему. Без этой дисциплины растущее ТЗ превратится в свалку.

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

Не работает для:

  • Команды разработчиков. Растущее ТЗ — для одного человека + AI. У команды появляется проблема синхронизации.

  • Регуляторных продуктов, где ТЗ должно быть зафиксировано заранее (банки, медицина, госзаказ).

  • Продуктов, где цена ошибки в одной итерации очень высока (продакшн с миллионами пользователей).

Главное

Дело не в скорости.

Дело в том, что появилась новая профессиональная единица: «эксперт + AI». Эксперт здесь — не «эксперт в коде». Эксперт — это тот, кто знает задачу. Тот, кто может посмотреть на отчет и сказать «здесь не так, потому что multi‑pack искажает медиану в два раза».

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

Это и было причиной, по которой 3 дня хватило. Не AI. Знания задачи + AI хватило.

«6 месяцев vs 3 дня» — это не про то, что один лучше другого. Это про то, что сжимать цикл «гипотеза → проверка → коррекция» в 50 раз — это другой режим работы. В этом режиме одни вещи возможны, другие — теряют смысл.

Если сейчас в голове возник вопрос «а можно ли так быстро?» — попробуйте. На следующей маленькой задаче. С правилом «каждая проверка результата = новая задача в ТЗ». Через неделю напишите, что получилось.

Комментарии (22)


  1. Gedeonych
    10.06.2026 15:24

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

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


    1. schekinfs
      10.06.2026 15:24

      тут главное не это, важно, то, что теперь она будет работать тем самым "замененным" программистом фултайм и не еще три дня, а много и долго, а когда опомнится, будет больно и дорого, но можно будет еще раз "психануть" :)


    1. Granulex
      10.06.2026 15:24

      Прототип, доказывающий гипотезу за 3 дня, ценнее идеального кода, который пишут полгода. Ваши первые итерации сразу шли в прод?


      1. exelens
        10.06.2026 15:24

        Она же даже тесты не делала нормально) только пару сценариев описала. Или и так норм?


        1. Metotron0
          10.06.2026 15:24

          А мы на работе всегда так разрабатываем


          1. exelens
            10.06.2026 15:24

            Я не могу себе такое позволить. Завидую.


            1. Metotron0
              10.06.2026 15:24

              Нечему завидовать. И такой нашей скорости не хватает, чтобы конкурировать. Заказчики ушли в вайб-кодинг, заказов нет, сидим, кукуем. Хотя, я предполагаю, дело не только в нейросетях, но и в экономической ситуации. У всех не стало денег, решили сократить расходы на сайты. А наши продавцы, видимо, не могут найти никого, у кого деньги ещё остались. Ещё и жёсткая нацеленность на битрикс ограничивает. Я раньше интернет-маназины делал, так они все сейчас ушли в озон с вайлдберисом, тоже никому стали не нужны.


        1. OlgaZhulikova Автор
          10.06.2026 15:24

          Тестирование - это часть методологии растущего ТЗ, а не отдельный этап. Пул эталонных запросов к концу Session 5 расширился до 15 ключевых категорий (из которых 11 наиболее востребованных). Да, это не автоматизированное юнит-тестирование, а ручной аудит каждой итерации с фиксацией находок как новых задач в ТЗ. Не «отсутствие тестов», просто другой инструмент. Главное, что продукт уже у реальных пользователей. А история поисков и обратная связь позволяют фокусировать тестирование на реальных сценариях.


      1. OlgaZhulikova Автор
        10.06.2026 15:24

        Итерация, которая была собрана через 3 дня, уже в проде. Продукт на рынке. А первая итерация была просто локальная


  1. Dhwtj
    10.06.2026 15:24

    Это про другое — про то, как

    при совмещении ролей заказчика и исполнителя незаметно снижаешь требования

    Я бы спросил про существу, но меня настораживает несоответствие даты и версии. Похоже, что история придумана нейросетью


    1. Granulex
      10.06.2026 15:24

      Роли совмещены – значит, некому обнаружить разрыв. Разница не в требованиях, а в том, кто их нарушение видит. Когда строишь под себя, проблема не снижается – она становится невидимой, потому что адаптируешься к ней прямо в процессе стройки. Первый пользователь со стороны всегда задаёт вопросы, которые кажутся очевидными – и они именно такие. Давали такой "продукт под себя" кому-нибудь чужому – что первым спросили?


      1. Dhwtj
        10.06.2026 15:24

        речь и про трудности с обнаружением нарушения требований и про конфликт интересов


  1. Kot_na_klaviature
    10.06.2026 15:24

    Нейрослоп про нейрослоп


    1. Dhwtj
      10.06.2026 15:24

      Я начинаю подозревать что волна рекламы LLM тупо проплачена


  1. Dhwtj
    10.06.2026 15:24

    Это продукт, который можно передать команде.

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

    Разработчики составят программу


  1. musk
    10.06.2026 15:24

    Краткое содержание начала: хотелось щупать результат сразу по мере продвижения, а аутсорс, поганец, навязал свои правила. Сделала сама, как смогла, по сути процесс не изменился, просто аутсорс, поганец, исчез-таки. Дальше бред можно не читать, вода водяная.


  1. Metotron0
    10.06.2026 15:24

    Не совсем понял, как повествование от "я не понимаю языка разработчиков" перешло к "коммиты, санити-чек, FastAPI на Railway, перенос домена, env-переменные".
    Клодкод вас ещё и терминологии обучил?


    1. Dhwtj
      10.06.2026 15:24

      Умение говорить ещё не признак ума ©


  1. wintermute2025
    10.06.2026 15:24

    Большое количество терминов из современной разработки. Описанный процесс разработки пусть и выглядит хаотично, но вполне легитимный, с учётом тренда "вайбанутости", конечно. Человек, который писал статью решил так самоутвердиться или же всё это нейрослоп. Склоняюсь ко второму - фамилия автора уж больно "говорящая" - Жуликова ;-)


  1. StudyQA
    10.06.2026 15:24

    Узнаю ситуацию. Я управляю EdTech-платформой (StudyQA, 4 млн пользователей в год) фактически в одиночку — и в какой-то момент просто перестал ждать подрядчиков.

    Что изменилось за последний год: я описываю задачу Claude, получаю архитектуру и первый рабочий код, тестирую на реальных данных, даю обратную связь. Недавно написал парсер морских карт формата S-57 (бинарный ISO 8211, сложный формат) за выходные. До этого — телесуфлёр для Android, опубликован в Google Play.

    Узкое место сейчас не «умею ли я кодировать», а «умею ли я чётко объяснить задачу». Качество выхода напрямую зависит от качества постановки.

    Один момент, который вы, скорее всего, уже поняли: AI не заменяет понимание продукта. Он усиливает его. Если вы знаете, что должно работать, — он поможет это построить.


  1. amazingname
    10.06.2026 15:24

    Вы заказывали разработку в ноябре. На тот момент модели были кардинально слабее а у девелореров ещё не было толком опыта работы с ними.

    Если бы вы в мае пришли к нормальному разработчику, он навайбродил бы вам ваш poc быстрее и лучше вас в 5 раз.


  1. DamirMur
    10.06.2026 15:24

    Какие расценки были у разработчиков за такую работу?