Вы провели часовое интервью. На диктофоне 57 минут записи. Стейкхолдер эмоционально рассказывал про боли пользователей, попутно перепрыгивая с отчётности на безопасность, а под конец вспомнил, что «ещё бы интеграцию с SAP добавить, ну чисто на будущее». Теперь из этого нужно достать требования. Если вы садитесь и переслушиваете запись, делая пометки в блокноте — готовьтесь потратить 3–4 часа. LLM справляется за минуты. Но есть нюанс.
Интервью — не переписка в чате. В чате люди пишут коротко и (иногда) по делу. В интервью они говорят. С оговорками, эмоциями, уходом в сторону и фразами «ну вы меня поняли». LLM без контекста прочтёт это как поток сознания — и выдаст поток сознания в ответ. В этой статье — pipeline, который превращает эмоциональный монолог стейкхолдера в структурированные ФТ, НФТ, User Story и, что немаловажно, список конкретных вопросов для второго раунда. Плюс промпты, которые я обкатал на полутора десятках реальных встреч.
Если вам нужна база по извлечению требований из любого источника (чаты, документы, письма) — начните с общей статьи про AI в системном анализе. А если финальный документ требований — это то, что вы должны положить разработчику на стол, то вот структура ТЗ без воды. Теперь — к специфике.
На схеме — полный маршрут: аудиозапись (серая) проходит транскрибацию и очистку (жёлтые этапы). Параллельно поступают метаданные — список участников и повестка встречи. Из очищенного текста LLM извлекает структуру: роли, цели, ограничения (синий), а оттуда параллельно — ФТ и НФТ (синие). Оба потока уходят в блок поиска противоречий (фиолетовый), который генерирует вопросы для уточнения у стейкхолдеров (жёлтый). После ответа на вопросы требования собираются в User Story (фиолетовый) и выходят готовым пакетом (зелёный).
Примечательно, что без повестки модель работает значительно хуже. Ей нужно понимать, к какому продукту или модулю относится разговор. Без этого контекста LLM либо обобщает до бесполезности, либо фантазирует.
Почему интервью сложнее, чем переписка
В чате люди пишут: «надо сделать кнопку экспорта». В интервью они говорят: «ну вот смотрите, у нас менеджеры, они каждый месяц выгружают отчёты, и это занимает два дня, потому что Эксель не тянет. Можно как-то автоматизировать? И ещё чтобы в PDF красиво, и с графиками. У конкурентов же есть».
Разница принципиальная. В переписке требование сформулировано — осталось его оформить. В интервью требование завёрнуто в боль, а боль завёрнута в эмоцию. LLM нужно два прохода, чтобы сначала отделить боль от эмоции, а потом из боли вытащить требование.
Транскрипт интервью — это неструктурированный текст с низкой плотностью требований. На 10 000 слов приходится 10–15 реальных требований. В переписке плотность в 3–4 раза выше.
Специфические ловушки интервью
Псевдо-требования. Стейкхолдер говорит: «нам нужно, чтобы система работала быстро». Это не требование — это пожелание. Требование: «время загрузки отчёта по 200 000 позициям не должно превышать 5 секунд». LLM склонна записывать пожелания как требования — её надо явно просить переформулировать.
Перескакивание контекста. За 20 минут интервью стейкхолдер может затронуть 4–5 разных тем, перебивая сам себя. LLM может «сплющить» этот контекст — приписать ограничение из темы А к требованию из темы Б. Решение — разбивать транскрипт по темам перед анализом.
Эффект «старшего по званию». На встрече кто-то один доминирует. Его требования модель считает более важными просто потому, что они занимают 70% текста. Это искажение нужно снимать явной инструкцией: «не ранжируй по частоте упоминания».
Молчаливое согласие. Фраза «возражений нет» не означает «требование валидно». Это может означать «я устал» или «мне всё равно, пусть аналитик разбирается». LLM читает это как подтверждение. Ваш явный промпт должен требовать маркировать молчаливое согласие отдельно.
Диаграмма показывает итеративный характер работы: это не одноразовый запрос к LLM, а цикл из нескольких раундов. Первый проход даёт черновик и список противоречий. Аналитик добавляет доменный контекст — глоссарий, бизнес-правила, известные ограничения — и получает уточнённый список плюс вопросы для стейкхолдеров. Ответы на эти вопросы загружаются обратно в LLM, противоречия разрешаются, и на выходе — финальный документ. Без этих итераций модель не даст качественного результата; она не волшебная палочка, а инструмент, который работает ровно настолько хорошо, насколько качественно его направляют.
Промпты: от записи до готовых требований
Шаг 0. Подготовка к интервью
Да, промпт пишется ДО встречи. Не чтобы модель интервью провела (пока рано), а чтобы она помогла вам к нему подготовиться.
Ты — системный аналитик, который готовится к интервью состейкхолдерами. Известна тема встречи и список участниковс ролями. Составь:
1. План интервью: 5–7 ключевых тематических блоков в логическом порядке. Не «поговорить про отчёты», а «какие данные нужны в отчёте, откуда они берутся, в каком формате нужен экспорт».2. Для каждого блока — 3–4 конкретных вопроса, на которые нельзя ответить «да» или «нет».3. Чек-лист «что может пойти не так»: какие противоречия вероятны между требованиями разных участников (исходя из их ролей).4. Список нефункциональных аспектов, которые нужно затронуть (производительность, безопасность, отказоустойчивость), даже если стейкхолдеры про них не вспомнят.
Тема встречи: [тема]Участники: [список с ролями]Контекст продукта: [краткое описание]Модель выдаст список вопросов, которые действительно двигают интервью вперёд. Я проверял: когда идёшь без подготовки — это разговор на 40 минут, из которых 15 — вода. С подготовкой через промпт — 30 минут плотного разговора и 0 минут «ну что ещё спросить».
Шаг 1. Первичная обработка транскрипта
После интервью у вас есть запись. Whisper (через API или локально) превращает её в текст. Дальше — очистка: убрать междометия, повторы, «э-э-э», фразы вроде «можно следующий слайд».
Ниже — транскрипт интервью. Очисти его:
1. Убери междометия, слова-паразиты, оговорки и самоисправления (когда человек начал фразу и переформулировал — оставь только итоговый вариант).2. Убери обсуждение технических деталей демонстрации («переключите на следующий экран», «у вас звук пропал»).3. Разбей текст на тематические блоки с заголовками. Каждый блок — одна тема обсуждения.4. Для каждого блока укажи, кто из участников высказывался и какова была его позиция.5. В конце каждого блока добавь резюме из 2–3 предложений: что именно обсуждалось и к какому выводу пришли (если пришли).
Не добавляй информацию, которой нет в транскрипте.
[текст транскрипта]После этого шага у вас не 57-минутный поток сознания, а структурированный документ на 5–8 тематических блоков. С ним уже можно работать дальше.
Шаг 2. Извлечение требований из структурированного транскрипта
Это основной промпт. Он идёт после очистки — потому что грязный транскрипт модель прочитает, но требования из него вытащит с шумом. Очищенный — выдаст на порядок чище.
На основе очищенного транскрипта интервью ниже извлекивсе требования. Строго следуй правилам:
## Функциональные требованияДля каждого укажи:- ID: FR-001, FR-002, ...- Название: до 12 слов- Описание: что система должна делать, для кого и при каких условиях- Actor: роль, которая инициирует действие- Предусловие- Основной поток- Альтернативные потоки (минимум 1, если применимо)- Источник в транскрипте: процитируй фрагмент
## Нефункциональные требованияДля каждого укажи:- ID: NFR-001, NFR-002, ...- Категория: Производительность / Безопасность / Надёжность / Масштабируемость / Удобство использования / Интеграция / Регуляторное- Описание- Метрика (если можно извлечь из текста)- Источник в транскрипте
## Особые правила для интервью- Если требование сформулировано как пожелание (фразы «хорошо бы», «неплохо было бы», «в идеале», «на будущее») — извлеки его, но пометь как «Пожелание — [ТРЕБУЕТ КОНКРЕТИЗАЦИИ]».- Если в транскрипте упоминается действие системы, но не указан actor — пометь «[НЕ УКАЗАН ACTOR]». Не додумывай.- Если стейкхолдер говорит «как сейчас», «как раньше делали» — это описание текущего состояния, не требование к новой системе. Не включай это в ФТ. Если оно важно как контекст — вынеси отдельным блоком «Текущее состояние».- Не ранжируй требования по частоте упоминания. Стейкхолдер, который говорит больше, не обязательно важнее.
## Поиск противоречийОтдельным блоком выведи все найденные противоречия:- Какие требования конфликтуют друг с другом?- Какие требования одного участника противоречат требованиям другого?- Где есть неоднозначность — ситуация, в которой можно понять требование двумя разными способами?
Для каждого противоречия укажи оба варианта интерпретации.
[очищенный транскрипт]На этом этапе вы получите: 10–20 ФТ, 3–8 НФТ и 2–5 противоречий. И, что немаловажно, будете знать, что именно нужно уточнить. Это уже не абстрактное «надо бы ещё раз встретиться и поговорить», а конкретный список вопросов.
Шаг 3. Генерация вопросов для уточнения
Промпт превращает сырой список противоречий и пометок «[ТРЕБУЕТ УТОЧНЕНИЯ]» в вопросы, которые можно отправлять стейкхолдерам. Это важно: вопросы должны быть такими, чтобы на них ответил занятой человек. Не «раскройте, пожалуйста, ваше видение архитектуры» — а «валидация промокода должна быть синхронной или асинхронной?».
Ниже — список требований с пометками «[ТРЕБУЕТ УТОЧНЕНИЯ]»и список противоречий. Сформулируй вопросы стейкхолдерам.
Правила для вопросов:1. Каждый вопрос — одно предложение.2. Каждый вопрос должен предполагать конкретный ответ: цифру, да/нет, выбор из вариантов. Никаких «расскажите подробнее».3. Если возможных ответов несколько — перечисли их явно. Пример: «Валидация промокода: синхронно на бэкенде или асинхронно через очередь?»4. Сгруппируй вопросы по адресатам. Отдельно — вопросы продакту, отдельно — разработчику, отдельно — безопаснику.5. В начале каждого списка вопросов кратко объясни, зачем они задаются. Контекст для стейкхолдера: «Эти вопросы помогут определить, какой тип интеграции с CRM нам нужен».
Противоречия и требования:[вывод шага 2]Шаг 4. Финальная сборка после ответов
Стейкхолдеры ответили. Теперь нужно интегрировать ответы в требования — и перегенерировать User Story. Это финальный промпт, после которого вы получаете документ, пригодный для ТЗ.
Ниже — список требований (версия 1), список противоречийи ответы стейкхолдеров на вопросы по уточнению. Выполни:
1. Разреши все противоречия на основе ответов стейкхолдеров. Если ответа недостаточно — оставь пометку «[ПРОТИВОРЕЧИЕ НЕ РАЗРЕШЕНО]» с объяснением, чего не хватает.2. Удали или переформулируй требования, которые были отвергнуты в ответах стейкхолдеров.3. Обнови все требования с пометками «[ТРЕБУЕТ УТОЧНЕНИЯ]» на основе ответов.4. Сгенерируй User Story для каждого ФТ по шаблону: Как `<роль>`, я хочу `<действие>`, чтобы `<ценность>`.5. Для каждой User Story напиши критерии приёмки в формате Given/When/Then (3–5 пунктов).6. В финале выведи сводную таблицу: ID требования, User Story, статус (подтверждено / требует уточнения / отклонено).
Требования v1:[вывод шага 2]
Противоречия:[вывод шага 2, блок противоречий]
Ответы стейкхолдеров:[текст ответов]Что LLM ловит, а что пропускает — и что с этим делать
| Аспект интервью | LLM справляется | Провал LLM | Что делать аналитику |
|---|---|---|---|
| Извлечение ФТ из явных формулировок | Отлично: структурирует, добавляет предусловия и потоки | — | Проверить на соответствие бизнес-целям |
| Извлечение НФТ из косвенных сигналов | Хорошо: находит 60–70% | Пропускает НФТ, связанные с регуляторикой конкретной отрасли | Добавить доменный глоссарий в системный промпт |
| Обнаружение противоречий | Отлично: логические конфликты находит почти все | Пропускает конфликты, требующие понимания негласных корпоративных правил | Проверить вручную: «а как у нас принято?» |
| Перевод пожеланий в требования | Средне: конкретизирует, но может перестараться с детализацией | Иногда додумывает детали, которых не было в интервью | Явно запретить домысливание в промпте |
| Генерация User Story | Отлично: шаблон соблюдается | Ценность формулирует абстрактно: «чтобы повысить эффективность» | Докрутить руками ценность — «чтобы менеджер закрывал отчёт за 5 минут, а не за 2 дня» |
| Вопросы стейкхолдерам | Хорошо: конкретные, по делу | Иногда задаёт «вежливые» вопросы, а не режущие в суть | Убрать дипломатию — оставить только то, что реально нужно выяснить |
| Понимание интонации и инсайтов «между строк» | Плохо: не считывает сарказм, усталость, нежелание участника обсуждать тему вслух | Полностью пропускает эмоциональный контекст | Переслушать ключевые моменты интервью лично |
Главное правило: LLM не слышит интонацию. «Да, конечно, сделаем» может означать энтузиазм, а может — «я устал спорить, делайте что хотите, потом всё равно переделаете». Это различие модель не улавливает. Слушайте запись сами в спорных местах.
Пример из практики: интервью для интеграции платёжного шлюза
Кейс из финтеха. Задача — подключить нового платёжного провайдера. Одно интервью: 40 минут, три участника — продакт, техлид, безопасник. На выходе получили:
- 18 ФТ — от выбора провайдера на форме оплаты до обработки возвратов и chargeback
- 7 НФТ — включая PCI DSS-ограничения (безопасник напомнил дважды)
- 6 противоречий — самое острое: продакт хотел редирект на страницу провайдера, безопасник требовал собственный iframe
- 14 вопросов для уточнения — разосланы по трём адресатам на следующий день
- Финализированные требования — через два дня после ответов стейкхолдеров, готовые к передаче в разработку
Весь цикл занял 4 рабочих дня (с учётом ожидания ответов стейкхолдеров). Активное время аналитика — около 2 часов. Без LLM тот же объём занял бы минимум полтора дня чистого времени.
Что характерно — модель нашла конфликт, который на встрече никто не заметил: требование «пользователь не должен покидать наш сайт при оплате» противоречило требованию «использовать нативную форму провайдера для соответствия PCI DSS». Безопасник и продакт кивали друг другу весь час — и никто не заметил, что их требования несовместимы. LLM заметила.
Заключение
Интервью со стейкхолдерами — это, наверное, самый недооценённый use case для LLM в работе аналитика. Все говорят про «AI сгенерирует код» и «AI напишет документацию», а про то, что модель может вытащить из часового разговора структурированные требования, ищет противоречия и формулирует вопросы — почему-то молчат.
Возможно, потому что для этого нужно написать несколько промптов, а не один. И нужна итерация: прогнал → получил противоречия → уточнил → прогнал снова. Это не кнопка «сделать красиво» — это инструмент, который требует настройки. Но после настройки он экономит часы в неделю. Не на абстрактном «повышении эффективности», а на конкретном: вы не переслушиваете записи, не перечитываете транскрипты в поисках потерянного требования и не пишете письма с вопросами, на которые стейкхолдер мог бы ответить ещё на встрече.
Попробуйте на одном интервью. Запишите, очистите, прогоните через промпты. Если результат сырой — докрутите промпты. Ко второму-третьему разу вы получите инструмент, который сокращает цикл «встреча → требования» с дней до часов. А освободившееся время потратьте на то, ради чего вы в профессии: на проектирование решений.
P.S. Единственное, что LLM не сделает за вас — это не пойдёт на встречу вместо вас. Хотя, если честно, я бы посмотрел на попытку. Представьте: Zoom, в окне — окно терминала, и модель ведёт интервью, периодически выдавая: «Уточните, пожалуйста, какой именно перцентиль времени ответа вас устроит». Боюсь, после такого стейкхолдеры перестанут приходить на встречи. А может, и наоборот.