Add vertical vs horizontal slicing guidance
Adds guidance to prefer vertical slices (user-visible value) over horizontal slices (technical layers) when planning and writing issues. roadmap-planning skill: - New "Vertical vs Horizontal Slices" section - Demo test: "Can a user demo/test this independently?" - Good vs bad examples table - When horizontal slices are acceptable issue-writing skill: - New "Vertical Slices" section - Demo test guidance - Good vs bad issue titles table - User-focused issue framing examples Closes #31 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit was merged in pull request #55.
This commit is contained in:
@@ -33,6 +33,48 @@ How to plan features and create issues for implementation.
|
||||
- Reference dependencies explicitly
|
||||
- Use consistent labeling
|
||||
|
||||
## Vertical vs Horizontal Slices
|
||||
|
||||
**Prefer vertical slices** - each issue should deliver user-visible value.
|
||||
|
||||
| Vertical (Good) | Horizontal (Bad) |
|
||||
|-----------------|------------------|
|
||||
| "User can save and reload their diagram" | "Add persistence layer" + "Add save API" + "Add load API" |
|
||||
| "Domain expert can list all orders" | "Add query syntax to ADL" + "Add query runtime" + "Add query UI" |
|
||||
| "User can reset forgotten password" | "Add email service" + "Add reset token model" + "Add reset form" |
|
||||
|
||||
### The Demo Test
|
||||
|
||||
Ask: **Can a user demo or test this issue independently?**
|
||||
|
||||
- **Yes** → Good vertical slice
|
||||
- **No** → Probably a horizontal slice, break differently
|
||||
|
||||
### Break by User Capability, Not Technical Layer
|
||||
|
||||
Instead of thinking "what technical components do we need?", think "what can the user do after this issue is done?"
|
||||
|
||||
```
|
||||
# Bad: Technical layers
|
||||
├── Add database schema
|
||||
├── Add API endpoint
|
||||
├── Add frontend form
|
||||
|
||||
# Good: User capabilities
|
||||
├── User can create a draft
|
||||
├── User can publish the draft
|
||||
├── User can edit published content
|
||||
```
|
||||
|
||||
### When Horizontal Slices Are Acceptable
|
||||
|
||||
Sometimes horizontal slices are necessary:
|
||||
- **Infrastructure setup** - Database, CI/CD, deployment (do once, enables everything)
|
||||
- **Security foundations** - Auth system before any protected features
|
||||
- **Shared libraries** - When multiple features need the same foundation
|
||||
|
||||
Even then, keep them minimal and follow immediately with vertical slices that use them.
|
||||
|
||||
## Breaking Down Features
|
||||
|
||||
### By Layer
|
||||
|
||||
Reference in New Issue
Block a user