|
| 1 | +# Feature Exploration Process |
| 2 | + |
| 3 | +Checklist for reviewing and refining Features and Epics before sprint planning. This is the process followed during **Feature Exploration** meetings (not "Feature Refinement" — see Terminology note below). |
| 4 | + |
| 5 | +## Terminology |
| 6 | + |
| 7 | +The meeting is called **Feature Exploration**. The Jira workflow status is **Refinement**. These are different things: |
| 8 | + |
| 9 | +- **Feature Exploration** — the meeting where team leads, architects, and engineers review candidate features, ask questions, and identify risks |
| 10 | +- **Refinement (Jira status)** — the workflow status a Feature enters after initial fields are set |
| 11 | + |
| 12 | +Do not confuse the two. When referring to the meeting or process, use "Feature Exploration." |
| 13 | + |
| 14 | +## Feature Exploration Checklist |
| 15 | + |
| 16 | +Team leads, architects, and engineers review feature candidates to identify dependencies and risks. |
| 17 | + |
| 18 | +### 1. Set Required Jira Fields |
| 19 | + |
| 20 | +- **Priority** — set based on business value and urgency |
| 21 | +- **Team** — assign the owning scrum team |
| 22 | +- **Assignee** — assign a Feature Owner (single point of contact) |
| 23 | + |
| 24 | +### 2. Cross-Team Engagement |
| 25 | + |
| 26 | +- Identify if the feature requires work from other scrum teams |
| 27 | +- Engage with those teams to design the solution |
| 28 | +- Document dependencies in the Jira issue |
| 29 | +- Confirm the other teams are aware and have capacity |
| 30 | + |
| 31 | +### 3. Labels for PM and Reporter Communication |
| 32 | + |
| 33 | +- Add `needs-pm` if there are questions for Product Management |
| 34 | +- Add `needs-info` if there are questions for the feature reporter from Engineering |
| 35 | +- Use Feature Exploration meetings to ask unanswered questions after discussing in the Jira issue first |
| 36 | + |
| 37 | +### 4. Update Jira with Decisions |
| 38 | + |
| 39 | +- Document decisions, questions, and next steps in the issue (as comments, not description bloat) |
| 40 | +- Consider rescoping if the feature is too large to fit within a single release |
| 41 | + |
| 42 | +### 5. Set Components |
| 43 | + |
| 44 | +Components must be accurate — they affect Feature Freeze and Code Freeze queries. |
| 45 | + |
| 46 | +- Validate components against the project's component list (see Component Validation below) |
| 47 | +- If the feature involves documentation, set the `Documentation` component and invoke the doc automation: **Feature → More → Create Doc EPIC from RHDHPlan** |
| 48 | + - Note: This is a Jira UI automation action. The agent should prompt the user to perform this step manually after the Feature is created. |
| 49 | + - Note: Doc EPIC automation is only available for the Documentation component. If it's not available, coordinate with the Docs team directly. |
| 50 | +- Some components may be excluded from Feature Freeze (FF) or Code Freeze (CF). Check the component's FF/CF status before assuming it blocks a freeze. |
| 51 | + |
| 52 | +### 6. Set Labels |
| 53 | + |
| 54 | +- `demo` — if the feature requires a customer-facing feature demo |
| 55 | +- `rhdh-testday` — if this feature should be tested as part of release test day |
| 56 | +- `rhdh-X.Y-candidate` — candidate for a specific release (e.g., `rhdh-2.1-candidate`) |
| 57 | +- `stretch` — stretch goal for the release (may be descoped) |
| 58 | + |
| 59 | +### 7. Create Epics for Each Scrum Team |
| 60 | + |
| 61 | +Refine the Feature and create Epic(s) for work to be delivered by each scrum team. For each Epic: |
| 62 | + |
| 63 | +- Set the **Team** field to the owning scrum team |
| 64 | +- Assign an **Epic Owner** (Assignee) — work with the scrum team to identify |
| 65 | +- The Epic Owner is responsible for sizing the Epic |
| 66 | + |
| 67 | +Set these fields on each Epic: |
| 68 | + |
| 69 | +| Field | What to set | |
| 70 | +|-------|------------| |
| 71 | +| Component(s) | Validate against project component list | |
| 72 | +| Size | T-shirt size per the sizing guide | |
| 73 | +| Links (Dependencies) | Link or note key dependencies on other issues, teams, upstream work | |
| 74 | + |
| 75 | +### 8. Size the Feature |
| 76 | + |
| 77 | +- Feature Owner sizes the Feature by updating the **Size** field |
| 78 | +- Base Feature size on the sizing guide and the aggregate of Epic T-shirt sizes |
| 79 | +- If multiple L or XL Epics exist within a Feature, reassess scope — the Feature may be too large |
| 80 | + |
| 81 | +### 9. Set Feature Status |
| 82 | + |
| 83 | +After exploration is complete: |
| 84 | + |
| 85 | +- Set Feature Status to **Backlog** |
| 86 | +- Ensure all child Epics are created and linked |
| 87 | + |
| 88 | +## Component Validation |
| 89 | + |
| 90 | +Components are critical for freeze queries and team routing. Validate proposed components against the live Jira data. |
| 91 | + |
| 92 | +> Same validation pattern as `fields.md` Component Validation — duplicated here to avoid transitive loading. |
| 93 | +
|
| 94 | +```bash |
| 95 | +# List all components for a project |
| 96 | +curl -s -H "Authorization: Basic $(cat "$TOKEN_FILE")" \ |
| 97 | + "https://redhat.atlassian.net/rest/api/3/project/RHIDP/components" | \ |
| 98 | + python -c "import sys,json; [print(c['name']) for c in json.load(sys.stdin)]" |
| 99 | + |
| 100 | +# For RHDHPLAN |
| 101 | +curl -s -H "Authorization: Basic $(cat "$TOKEN_FILE")" \ |
| 102 | + "https://redhat.atlassian.net/rest/api/3/project/RHDHPLAN/components" | \ |
| 103 | + python -c "import sys,json; [print(c['name']) for c in json.load(sys.stdin)]" |
| 104 | +``` |
| 105 | + |
| 106 | +When setting components during feature creation or refinement: |
| 107 | + |
| 108 | +1. **Infer components** from the issue summary and description — match against known component names |
| 109 | +2. **Validate** the proposed components exist in the project |
| 110 | +3. **Flag mismatches** — if a component doesn't exist, suggest the closest match |
| 111 | +4. **Check FF/CF status** — note if a component is excluded from freeze queries (this affects release planning) |
| 112 | + |
| 113 | +The agent should suggest components based on issue details, but always confirm with the user before setting them. |
| 114 | + |
| 115 | +## Feature Demo and Test Day |
| 116 | + |
| 117 | +Features that are customer-facing should be assessed for: |
| 118 | + |
| 119 | +- **Demo requirement** — does this need a feature demo? If yes, add the `demo` label. A link to the Feature Demo is required at **Release Pending** status. |
| 120 | +- **Test day candidacy** — should this be tested during release test day? If yes, add the `rhdh-testday` label. |
| 121 | + |
| 122 | +Ask about both during feature creation and refinement. |
| 123 | + |
| 124 | +## Rescoping |
| 125 | + |
| 126 | +If a feature is too large for a single release: |
| 127 | + |
| 128 | +1. Consider splitting into multiple Features across releases |
| 129 | +2. Identify the minimum viable scope for the current release |
| 130 | +3. Document what's being deferred and why (as a comment on the Feature) |
| 131 | +4. Adjust the `rhdh-X.Y-candidate` label if the target release changes |
0 commit comments