Edge Case & Exception Handling » History » Version 1
Redmine Admin, 12/26/2025 11:04 AM
| 1 | 1 | Redmine Admin | h1. Edge Case & Exception Handling (Authoritative) |
|---|---|---|---|
| 2 | |||
| 3 | *Applies to all Tinggit products managed in Redmine* |
||
| 4 | *Defines how non-standard, urgent, or exceptional situations are handled without corrupting sprint or release data* |
||
| 5 | |||
| 6 | {{toc}} |
||
| 7 | |||
| 8 | --- |
||
| 9 | |||
| 10 | h2. 1. Purpose |
||
| 11 | |||
| 12 | This document defines **how Tinggit handles exceptions** such as: |
||
| 13 | |||
| 14 | * Production hotfixes |
||
| 15 | * Emergency fixes |
||
| 16 | * Rollback releases |
||
| 17 | * Partial releases |
||
| 18 | * Mid-sprint interruptions |
||
| 19 | * Compliance-driven urgent work |
||
| 20 | |||
| 21 | The goal is to ensure that **exception handling never damages**: |
||
| 22 | |||
| 23 | * Sprint metrics |
||
| 24 | * Release traceability |
||
| 25 | * Audit history |
||
| 26 | * Product credibility |
||
| 27 | |||
| 28 | *bq.* Exceptions must be controlled — not improvised. |
||
| 29 | |||
| 30 | --- |
||
| 31 | |||
| 32 | h2. 2. Scope |
||
| 33 | |||
| 34 | This process applies to: |
||
| 35 | |||
| 36 | * All products under the Tinggit Platform |
||
| 37 | * All teams (Product, Engineering, QA, DevOps) |
||
| 38 | * All work that cannot follow the normal Sprint → Release flow |
||
| 39 | |||
| 40 | --- |
||
| 41 | |||
| 42 | h2. 3. Governing Principles (Non-Negotiable) |
||
| 43 | |||
| 44 | 1. Sprint data must never be rewritten |
||
| 45 | 2. Release history must remain immutable |
||
| 46 | 3. Emergency does not justify process corruption |
||
| 47 | 4. Every exception must leave an audit trail |
||
| 48 | 5. Sprint and Release must never coexist on the same issue |
||
| 49 | |||
| 50 | --- |
||
| 51 | |||
| 52 | h2. 4. Exception Categories |
||
| 53 | |||
| 54 | All exceptions fall into one of the following categories: |
||
| 55 | |||
| 56 | |_. Category |_. Description | |
||
| 57 | | Production Hotfix | Immediate fix required in production | |
||
| 58 | | Emergency Fix | Urgent work threatening stability or compliance | |
||
| 59 | | Rollback | Reverting a released change | |
||
| 60 | | Partial Release | Releasing subset of planned scope | |
||
| 61 | | Sprint Interruption | Emergency work during an active sprint | |
||
| 62 | | Compliance Exception | Regulatory or legal urgency | |
||
| 63 | |||
| 64 | Each category has **explicit handling rules** below. |
||
| 65 | |||
| 66 | --- |
||
| 67 | |||
| 68 | h2. 5. Production Hotfix (Outside Sprint) |
||
| 69 | |||
| 70 | --- |
||
| 71 | |||
| 72 | h3. 5.1 Scenario |
||
| 73 | |||
| 74 | * Critical production bug |
||
| 75 | * Customer impact is active |
||
| 76 | * Cannot wait for next sprint |
||
| 77 | |||
| 78 | --- |
||
| 79 | |||
| 80 | h3. 5.2 Correct Handling (MANDATORY) |
||
| 81 | |||
| 82 | *Issue Creation* |
||
| 83 | |||
| 84 | |*. Field |*. Value | |
||
| 85 | | Tracker | Bug | |
||
| 86 | | Work Type | Bug Fix | |
||
| 87 | | Status | In Progress | |
||
| 88 | | Sprint Version | *Not set* | |
||
| 89 | | Release Version | Release X.Y.Z – Hotfix | |
||
| 90 | |||
| 91 | Rules: |
||
| 92 | * No Sprint Version is ever assigned |
||
| 93 | * A new patch Release Version is always created |
||
| 94 | |||
| 95 | --- |
||
| 96 | |||
| 97 | h3. 5.3 After Fix |
||
| 98 | |||
| 99 | * Status → Done |
||
| 100 | * Deployment Reference URL added |
||
| 101 | * Status → Closed |
||
| 102 | * Release Version marked Closed |
||
| 103 | |||
| 104 | --- |
||
| 105 | |||
| 106 | h3. 5.4 Why This Works |
||
| 107 | |||
| 108 | * Sprint metrics remain clean |
||
| 109 | * Release history remains truthful |
||
| 110 | * Audit trail is preserved |
||
| 111 | * Emergency response is fast but controlled |
||
| 112 | |||
| 113 | *bq.* Never backfill hotfixes into a sprint. |
||
| 114 | |||
| 115 | --- |
||
| 116 | |||
| 117 | h2. 6. Emergency Fix During an Active Sprint |
||
| 118 | |||
| 119 | --- |
||
| 120 | |||
| 121 | h3. 6.1 Scenario |
||
| 122 | |||
| 123 | * Critical issue discovered mid-sprint |
||
| 124 | * Work is unrelated to Sprint Goal |
||
| 125 | |||
| 126 | --- |
||
| 127 | |||
| 128 | h3. 6.2 Correct Handling |
||
| 129 | |||
| 130 | * Create a new Bug issue |
||
| 131 | * Do NOT assign Sprint Version |
||
| 132 | * Handle as: |
||
| 133 | * Production Hotfix, or |
||
| 134 | * Emergency Fix release |
||
| 135 | |||
| 136 | Sprint work continues uninterrupted unless PO explicitly re-evaluates the Sprint Goal. |
||
| 137 | |||
| 138 | --- |
||
| 139 | |||
| 140 | h3. 6.3 Sprint Protection Rule |
||
| 141 | |||
| 142 | Sprint scope must not silently expand. |
||
| 143 | |||
| 144 | If emergency work threatens the Sprint Goal: |
||
| 145 | * Product Owner decides |
||
| 146 | * Sprint Goal may be revised |
||
| 147 | * Decision must be documented in Sprint Wiki |
||
| 148 | |||
| 149 | --- |
||
| 150 | |||
| 151 | h2. 7. Hotfix With Planned Sprint Follow-Up |
||
| 152 | |||
| 153 | --- |
||
| 154 | |||
| 155 | h3. 7.1 Scenario |
||
| 156 | |||
| 157 | * Quick patch now |
||
| 158 | * Proper fix needed later |
||
| 159 | |||
| 160 | --- |
||
| 161 | |||
| 162 | h3. 7.2 Correct Handling |
||
| 163 | |||
| 164 | 1. Immediate Hotfix |
||
| 165 | * Release Version only |
||
| 166 | * Minimal scope |
||
| 167 | 2. Follow-up Work |
||
| 168 | * New Story |
||
| 169 | * Work Type = Tech Debt or Platform Improvement |
||
| 170 | * Planned through normal backlog and sprint |
||
| 171 | |||
| 172 | This separates **urgency from correctness**. |
||
| 173 | |||
| 174 | --- |
||
| 175 | |||
| 176 | h2. 8. Rollback Release |
||
| 177 | |||
| 178 | --- |
||
| 179 | |||
| 180 | h3. 8.1 Scenario |
||
| 181 | |||
| 182 | * Release deployed |
||
| 183 | * Issues require rollback |
||
| 184 | |||
| 185 | --- |
||
| 186 | |||
| 187 | h3. 8.2 Correct Handling |
||
| 188 | |||
| 189 | * Do NOT reopen completed issues |
||
| 190 | * Do NOT edit past release scope |
||
| 191 | * Create new Bug issues |
||
| 192 | * Assign new Release Version: |
||
| 193 | |||
| 194 | <pre> |
||
| 195 | Release X.Y.Z – Rollback Fix |
||
| 196 | </pre> |
||
| 197 | |||
| 198 | --- |
||
| 199 | |||
| 200 | h3. 8.3 Why This Is Mandatory |
||
| 201 | |||
| 202 | * History remains immutable |
||
| 203 | * Rollback is recorded as a new event |
||
| 204 | * Auditors can see cause and response clearly |
||
| 205 | |||
| 206 | --- |
||
| 207 | |||
| 208 | h2. 9. Partial Release |
||
| 209 | |||
| 210 | --- |
||
| 211 | |||
| 212 | h3. 9.1 Scenario |
||
| 213 | |||
| 214 | * Some items ready |
||
| 215 | * Others delayed or blocked |
||
| 216 | |||
| 217 | --- |
||
| 218 | |||
| 219 | h3. 9.2 Correct Handling |
||
| 220 | |||
| 221 | * Release Version includes only: |
||
| 222 | * Accepted |
||
| 223 | * Deployed items |
||
| 224 | * Delayed items: |
||
| 225 | * Do NOT receive Release Version |
||
| 226 | * Return to backlog or next sprint |
||
| 227 | |||
| 228 | --- |
||
| 229 | |||
| 230 | h3. 9.3 Outcome |
||
| 231 | |||
| 232 | * Honest release notes |
||
| 233 | * Clear customer communication |
||
| 234 | * No ambiguity about delivered value |
||
| 235 | |||
| 236 | --- |
||
| 237 | |||
| 238 | h2. 10. Compliance-Driven Exceptions |
||
| 239 | |||
| 240 | --- |
||
| 241 | |||
| 242 | h3. 10.1 Scenario |
||
| 243 | |||
| 244 | * Regulatory or legal requirement |
||
| 245 | * Time-bound obligation (e.g., HIPAA) |
||
| 246 | |||
| 247 | --- |
||
| 248 | |||
| 249 | h3. 10.2 Correct Handling |
||
| 250 | |||
| 251 | * Product & Compliance jointly approve urgency |
||
| 252 | * Issue is created with: |
||
| 253 | * Clear compliance reference |
||
| 254 | * Explicit audit notes |
||
| 255 | * Handled via: |
||
| 256 | * Emergency Release, or |
||
| 257 | * Dedicated Sprint (if time allows) |
||
| 258 | |||
| 259 | Compliance urgency does not bypass traceability. |
||
| 260 | |||
| 261 | --- |
||
| 262 | |||
| 263 | h2. 11. Documentation & Audit Trail (Mandatory) |
||
| 264 | |||
| 265 | Every exception must leave behind: |
||
| 266 | |||
| 267 | * A clearly classified issue |
||
| 268 | * A Release Version (if deployed) |
||
| 269 | * Deployment reference URL |
||
| 270 | * Comments explaining *why* exception occurred |
||
| 271 | * Links to affected sprint or release (if relevant) |
||
| 272 | |||
| 273 | --- |
||
| 274 | |||
| 275 | h2. 12. Common Anti-Patterns (Strictly Forbidden) |
||
| 276 | |||
| 277 | The following are not allowed: |
||
| 278 | |||
| 279 | * Adding hotfixes into completed sprints |
||
| 280 | * Editing historical sprint data |
||
| 281 | * Reusing release versions |
||
| 282 | * Hiding emergency work inside sprint tasks |
||
| 283 | * Treating rollbacks as “non-events” |
||
| 284 | |||
| 285 | Violations must be escalated. |
||
| 286 | |||
| 287 | --- |
||
| 288 | |||
| 289 | h2. 13. Relationship to Other Processes |
||
| 290 | |||
| 291 | This page complements: |
||
| 292 | |||
| 293 | * [[Product Process Guidelines]] |
||
| 294 | * [[Sprint Execution Rules]] |
||
| 295 | * [[Sprint Close Process]] |
||
| 296 | * [[Release Management Process]] |
||
| 297 | |||
| 298 | It overrides *none* of them — it protects them. |
||
| 299 | |||
| 300 | --- |
||
| 301 | |||
| 302 | h2. 14. Final Statement |
||
| 303 | |||
| 304 | Exceptions are inevitable. |
||
| 305 | |||
| 306 | Chaos is optional. |
||
| 307 | |||
| 308 | By following this Edge Case & Exception Handling process, Tinggit ensures: |
||
| 309 | |||
| 310 | * Fast response to emergencies |
||
| 311 | * Clean sprint and release data |
||
| 312 | * Audit-ready history |
||
| 313 | * Trust across teams and stakeholders |
||
| 314 | |||
| 315 | *This page is the single authority for all exception handling.* |