Приём — пусть ИИ задаёт вопросы
способ увидеть, что ты не сказал
Что это
Перед тем как ИИ начнёт работу, попроси его задать тебе вопросы. Приём решает причину 1 из статьи 3.1 — «ты не сказал» — и решает её лучше любых шаблонов, потому что находит пропуски, о которых ты сам не догадывался.
Формулировка в одну строку:
Прежде чем писать код, задай мне 3 вопроса,
ответы на которые сильнее всего повлияют на решение.Ограничение «3» существенно. Без него вопросов будет десять, половина из них мелкие, и отвечать надоест на четвёртом.
Как выглядит в коде
Задача выглядит ясной:
Добавь в бот команду /stats — статистика пользователя за месяц.
Прежде чем писать код, задай мне 3 вопроса, ответы на которые
сильнее всего повлияют на решение.Ответ:
1. «За месяц» — это последние 30 дней или текущий календарный
месяц? От этого зависит запрос к базе.
2. Статистика только по своим данным или админ может смотреть
чужие? Это меняет проверку прав.
3. Что показывать, если данных за период нет совсем —
нули или сообщение «нет данных»?Все три — настоящие развилки, и ни одну из них ты в запросе не закрыл. Без вопросов получил бы три чужих решения и узнал бы о них, когда команда повела бы себя не так.
Вариант посильнее
Прежде чем писать код: перечисли, какие решения тебе придётся
принять за меня, если я не отвечу. По каждому скажи,
что выберешь по умолчанию.Этот вариант выгоднее: он не требует ответов. ИИ показывает список своих решений с вариантами по умолчанию, ты читаешь и вмешиваешься только там, где не согласен.
Приму за тебя:
- период: последние 30 дней (проще и привычнее для ботов)
- доступ: только свои данные
- пустой период: сообщение «нет данных», не нули
- формат: список строк, без таблицыОдной фразой «всё верно, кроме периода — нужен календарный месяц» задача закрыта.
Как сказать ИИ
Когда приём особенно полезен
- Задача своими словами, без деталей. Когда сам ещё не додумал, как должно работать.
- Чужая предметная область. Интеграция с незнакомым API, формат, который видишь впервые.
- Дорогая переделка. Миграции, изменения структуры данных, всё, что потом тяжело откатывать.
Когда не нужен
Если задача уже описана по шаблону из статьи 3.4, вопросов не останется — а ИИ, которого попросили спросить, спросит что-нибудь формальное, лишь бы выполнить просьбу. На ясных задачах приём только добавляет шаг.
Отвечать можно коротко
Отвечать развёрнуто не нужно, достаточно пометить:
1 — календарный месяц
2 — только свои
3 — «нет данных»На что смотреть
Вопросы ради вопросов. «Какой у вас стиль именования?», «Нужны ли комментарии?» — формальные вопросы, не влияющие на решение. Признак того, что задача и так ясна и приём здесь лишний.
ИИ спросил и тут же ответил сам. Иногда он задаёт вопросы и, не дожидаясь, продолжает писать код со своими допущениями. Это не страшно, но решения он принял сам — прочитай, какие именно.
Больше трёх вопросов. Если ограничение не держится и вопросов десяток, задача сформулирована слишком широко. Разбей её на части.
Шпаргалка
«Задай 3 вопроса, которые сильнее всего повлияют на решение».
Ограничение числом обязательно, иначе вопросов будет десять.
Сильнее: «какие решения примешь за меня и что выберешь по умолчанию».
Отвечать можно одной строкой на вопрос.
На ясной задаче приём лишний — вопросы будут формальными.
Десяток вопросов — задача слишком широкая, разбей её.