Goal describes the state after the task
A Goal should describe a state after completion rather than a general intention such as “improve the process.” It answers: who benefits, what behavior changes, where it is visible, and what must remain unchanged.
The goal describes system behavior, not a list of files, classes, or technical steps. It is better to leave the implementation approach to the plan.
user or role
+ new behavior
+ where it appears
+ stabilizer (what must not change)From a vague request to a verifiable goal
| Vague | More verifiable |
|---|---|
| Improve the return process. | An operator can add an optional comment to a refund-request. |
| Make the form more convenient. | The comment appears in the return details for financial review. |
Add the notes field. | The value is saved and passed in the refund.created event. |
Goal block template
- Identify the task type: feature, bugfix, refactoring, tests, documentation, investigation, or migration.
- Name the user, role, or component that will receive the result.
- Describe the new or corrected behavior.
- Specify where the result can be observed.
- Add readiness signals and the critical behavior that must not change.
## Goal
[Role] gets the ability to [action or result].
The change is visible in [interface, API, event, or documentation].
Readiness is confirmed by [observable signs].
At the same time, [behavior that remains unchanged].Goal for different task types
| Type | Result |
|---|---|
| New feature | New behavior available to the user or system |
| Bugfix | A defect removed and the correct scenario confirmed |
| Refactoring | Internal structure changed without changing external behavior |
| Tests | A repeatable protective scenario |
| Investigation | A conclusion supported by analysis and evidence |
What is not a Goal
- Scope is the parts of the system covered by the work.
- Constraints are the rules and prohibitions during execution.
- A solution is a specific implementation approach.
- A wish is a general assessment without a verification criterion.
Canonical lesson source · JavaRush
Open JavaRush material