|
| 1 | +# Preparing a good issue |
| 2 | + |
| 3 | +When [creating a new issue](https://github.com/nginx/documentation/issues/new/choose), many of the templates will guide you to providing important detail. |
| 4 | + |
| 5 | +We strive to make each issue a single source of truth: as a result, each ticket should contain all of the context required for someone to understand a problem and subsequently be empowered to begin working on it. |
| 6 | + |
| 7 | +This document exists to explain concepts you may be unfamiliar with, and provide examples of the types and amount of detail preferred. |
| 8 | + |
| 9 | +## User stories and acceptance criteria |
| 10 | + |
| 11 | +User stories are written in the following format: |
| 12 | + |
| 13 | +**As a** \<user\>, |
| 14 | +**I want** \<thing\>, |
| 15 | +**So I** can \<action\>. |
| 16 | + |
| 17 | +It's written from the perspective of a user, whose priorities are often different from your own. |
| 18 | + |
| 19 | +The users for each story may map to specific user personas dependent on the required content design complexity. |
| 20 | + |
| 21 | +A user persona reflects a broad set of demographic criteria, representing a type of person who may have different levels of experience, domain knowledge or priorities. |
| 22 | + |
| 23 | +Acceptance criteria are used to determine whether or not the need identified as part of a user story is fulfilled. |
| 24 | + |
| 25 | +Much like the user story, it is the user perspective that defines how acceptance criteria are written. |
| 26 | + |
| 27 | +Here is a good and bad example of acceptance criteria: |
| 28 | + |
| 29 | +1. The user can find the information about configuring \<feature\> |
| 30 | +2. Information about \<feature\> has been updated |
| 31 | + |
| 32 | +The first example focuses on ensuring the work has meaningful impact to help a user. |
| 33 | + |
| 34 | +The second example is simply a checklist item for managing work, without considering its effectiveness. |
| 35 | + |
| 36 | +## Design and time constraints |
| 37 | + |
| 38 | +As part of identifying the scope of changes involved with a particular issue, the maintainer reviewing an issue will need to identify any important constraints. |
| 39 | + |
| 40 | +Constraints tend to be precise and sensitive in nature, and are used to figure out how a ticket should be prioritized. |
| 41 | + |
| 42 | +- If an issue involves changing a common noun, it may affect other work priorities |
| 43 | +- If an issue is related to an upcoming release, it might need attention soon |
| 44 | +- If an issue leaves users in an operable state, it requires intervention immediately |
| 45 | + |
| 46 | +Clear constraints reduces or removes time that might otherwise be spent clarifying detail around an issue. |
0 commit comments