Goal ще не задає межі
Goal описує бажаний результат, але не визначає дозволену зону роботи. `Scope` задає функціональну область, `Non-goals` фіксують свідомо відкладене, а `Affected area` дає стартову карту компонентів, які можуть бути залучені.
| Блок | Роль |
|---|---|
| Scope | Що дозволено змінювати |
| Non-goals | Що навмисно не змінюється |
| Affected area | Де шукати повʼязану реалізацію та перевірки |
Scope у трьох вимірах
- Користувацький потік: де людина починає і завершує сценарій.
- Точки зміни: UI, контролер, сервіс, модель, таблиця, подія або API.
- Супровідні артефакти: тести, документація та контракти подій.
## Область змін
- форма створення повернення в адмінпанелі
- сторінка перегляду деталей
- збереження необов’язкового поля
- подія refund.created
- відповідні тести та опис контракту події Non-goals — свідомі межі
- не змінювати правила автоматичного й ручного схвалення;
- не торкатися платіжного провайдера;
- не перебудовувати звʼязок між support-ticket і поверненням;
- не виконувати загальний рефакторинг сервісу;
- не форматувати сторонні файли без потреби.
Affected area — карта для дослідження
- форма повернення та екран деталей;
- контролер і сервіс повернень;
- модель або таблиця refunds;
- подія
refund.created; - тести основного сценарію;
- внутрішня документація щодо payload.
Перевірка меж перед реалізацією
- Переконайтеся, що Scope не охоплює весь модуль без пояснення.
- Перевірте, що Non-goals називають конкретні заборонені зміни.
- Переконайтеся, що UI-зміна враховує збереження, читання та події, якщо вони потрібні.
- Попросіть Claude спочатку назвати кандидатні області без внесення змін.
- Якщо зʼявилися нові вимоги, оновіть TASK_SPEC.md до продовження роботи.
Канонічне джерело уроку · JavaRush
Відкрити матеріал JavaRush