реклама
Бургер менюБургер меню

Дмитрий Ланецкий – ТЗ без тумана: ИИ-аудит требований, чтобы команда делала правильно (страница 3)

18

Примеры: роли и права, основной сценарий, обязательные поля, критерии приемки.

Важно: без ответа возможны переделки или неверные решения.

Примеры: обработка ошибок, лимиты, интеграции, нефункциональные требования.

Желательно: улучшает продукт, но не ломает поток.

Примеры: редкие крайние случаи, нюансы текста, косметика.

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

Шаблон «пакета вопросов» для одной фичи

Чтобы вопросы были удобны, их нужно подавать в форме, которую легко обсудить и закрыть. Пример структуры:

Суть функции (пересказ в одном предложении) – чтобы сверить понимание.

Открытые определения – что такое ключевые сущности.

Правила и условия – когда работает, когда нет.

Права и роли – кто может что.

Ошибки и исключения – что если.

НФТ – скорость, надежность, безопасность.

Приемка – примеры, тестовые кейсы, критерии.

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

Встраивание в процесс: «аудит → вопросы → ответы → обновление ТЗ»

Если «машина вопросов» существует отдельно, она превращается в игрушку. Эффект появляется, когда она встроена в рутину.

Минимальный цикл:

Автор пишет черновик требования.

ИИ проводит аудит и формирует пакет вопросов.

Команда отвечает (часть – письменно, часть – на коротком созвоне).

Ответы встраиваются в ТЗ, а вопросы закрываются.

Повторный аудит проверяет, что туман исчез.

Ключевое правило: ответы не должны жить в комментариях или чатах. Иначе вы снова возвращаетесь к «контексту в головах».

Ошибка, которую совершают почти все: путать вопросы с решениями

ИИ иногда может предложить варианты ответов. Это полезно, но опасно. Вопрос – это инструмент извлечения намерения. Решение – ответственность команды.

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

Поэтому вопрос должен оставаться вопросом. А опции – быть лишь способом ускорить выбор.

Итог: вопросы как ускоритель ясности

Когда требования становятся ясными, они становятся быстрыми. Не потому, что вы меньше пишете, а потому, что вы меньше переделываете. ИИ превращает уточнение из эпизода в систему: из редкого усилия – в регулярную процедуру.

В следующей главе мы разберем, как ИИ ищет противоречия в документе: когда разные части ТЗ тихо говорят разные вещи – и как ловить это до того, как конфликт превращается в баг.

Глава 3. Охота на противоречия: как ИИ находит конфликты в требованиях раньше тестировщика

Большинство проблем в требованиях – не пробелы, а конфликты. Документ может выглядеть «полным»: роли перечислены, сценарии описаны, поля названы. Но внутри него живет другая опасность – разные куски текста тихо противоречат друг другу. И пока вы читаете документ линейно, мозг сглаживает углы: «ну, это, наверное, про другое». Разработчик сглаживает так же – только кодом. А потом приходит тестировщик и обнаруживает, что система может работать либо по первому абзацу, либо по пятому, но не по обоим сразу.

ИИ особенно силен именно в этой задаче: он умеет сравнивать. Не в смысле «как человеку кажется», а в смысле сопоставления формулировок, условий, статусов и исключений по всему документу. Для него не существует «мы же уже договорились». Существует текст. И если текст говорит два разных варианта – конфликт должен быть поднят.

Откуда берутся противоречия (и почему они неизбежны)

Противоречия появляются не из злого умысла. Они рождаются естественно:

документ пишут разные люди или один человек в разное время;

требования меняются, а старые фрагменты забывают обновить;

один раздел описывает «как должно быть», другой – «как было раньше»;

бизнес хочет гибкости, а безопасность – жестких правил;

интерфейс описан одним языком, API – другим.

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

Четыре вида конфликтов, которые чаще всего ломают проект

1) Конфликт ролей и прав.

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

2) Конфликт статусов и переходов.

Документ описывает статусы сущности, но переходы между ними расходятся: в разделе «Сценарии» есть переход A→C, а в разделе «Бизнес-правила» утверждается, что после A возможен только B.

3) Конфликт данных и валидаций.

В одном разделе поле обязательное, в другом – «если заполнено». В одном месте формат даты ISO, в другом – локальный. В одном месте ограничение 255 символов, в другом – 500.

4) Конфликт нефункциональных требований.

«Система должна хранить историю изменений 3 года» и «данные должны быть удалены по запросу пользователя в течение 30 дней». Это не «ошибка», это необходимость согласовать приоритеты и режимы хранения.

ИИ способен подсветить такие конфликты как «несовместимые требования», даже если каждое по отдельности звучит разумно.

Как ИИ технически «видит» противоречие, даже если оно замаскировано

В документе редко встречается прямое «разрешено» vs «запрещено» рядом. Обычно конфликт спрятан в деталях:

разные слова для одной сущности («заявка» vs «обращение»);

разные модальности («может» vs «должен»);

разные условия («после отправки» vs «после подтверждения»);

разные уровни абстракции (раздел про UI против раздела про API);

разная степень категоричности («всегда» vs «как правило»).

ИИ делает то, что человеку трудно: удерживает множество фрагментов одновременно и сопоставляет их по смысловым признакам. Практически это выглядит как поиск пар утверждений, которые относятся к одной и той же сущности/действию/условию, но задают разные правила.

«Матрица согласованности»: простой артефакт, который спасает большие ТЗ

Чтобы превратить охоту на противоречия в процесс, полезно мыслить матрицей: сущность × аспект.

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

Вручную это адская работа, потому что вам нужно: