Part 4: Task Decomposition¶
CIDM 6330/6395 — Video Tutorial Series¶
Target duration: 10-12 minutes
Slide deck: part4-slides.pptx
Slide 1: Title Slide¶
Part 4: Task Decomposition
- Your ADR's Feature Checklist lists observable outcomes
- Now: break each checklist item into a task with clear acceptance criteria
- Tasks are how you control the work — and how you steer AI assistants
Slide 2: Why Decompose?¶
Talking points:
- The "Big Feature" Trap:
| Monolith Approach | Decomposed Approach |
|---|---|
| "Build the search feature" (3 weeks) | Task 1: Search method (2 hours) |
| No checkpoints until "done" | Each task testable independently |
| One bug blocks everything | Bugs isolated to one task |
- The "I'll Know When It's Done" Trap:
- "Pretty much finished" vs. "3 of 4 tasks completed; task 4 blocked"
- Tasks make progress visible and measurable
Key phrase: "If you can't describe 'done' in a sentence, the task is too big."
Slide 3: From ADR Checklist to Tasks¶
Talking points:
- Each ADR checklist item maps to exactly one task
- Example from our Book Storage ADR:
| # | ADR Checklist Item | Task |
|---|---|---|
| 1 | Book model with Pydantic | Implement Book model |
| 2 | SQLite repository | Build repository class |
| 3 | CLI commands | Add CLI interface |
| 4 | Unit tests | Write test suite |
- The mapping is 1:1 — no gaps, no bundles
Slide 4: The Task Template — Five Sections¶
Talking points:
-
A task brief needs exactly five things:
-
Objective — One sentence: what does "done" look like?
- Scope — What files/modules will you touch?
- Requirements — MUST/MUST NOT constraints
- Acceptance Criteria — Testable checkboxes
-
Verification — Commands to prove it works
-
Template is in
docs/examples/templates/task-template.md - This is a simplified version of professional OBPI briefs (5 sections vs. 12+)
Slide 5: Writing Good Acceptance Criteria¶
Talking points:
- Every criterion must be testable — either by code or by demonstration
- Good criteria:
- "Book model validates title is non-empty"
- "Invalid status raises ValidationError"
- "All tests pass:
python -m unittest tests.test_models" - Bad criteria:
- "Code is clean" (subjective)
- "Works properly" (vague)
- "Looks good" (untestable)
- End with a verification command that anyone can run
Slide 6: The INVEST Criteria¶
Talking points:
- Good tasks follow the INVEST pattern:
| Letter | Meaning | Example |
|---|---|---|
| Independent | Completable alone | "Add search method" works standalone |
| Negotiable | Details can adjust | Filter syntax can evolve |
| Valuable | Delivers something useful | A working method has value |
| Estimable | Predictable effort | "2-4 hours" is estimable |
| Small | One focused session | Not "build the entire backend" |
| Testable | Provable with a test | "Returns matching results" |
Slide 7: Right-Sizing Tasks¶
Talking points:
| Too Big | Just Right | Too Small |
|---|---|---|
| "Build the search feature" | "Implement search with filters" | "Add import for sqlite3" |
| Takes a week, no checkpoints | 2-6 hours, testable result | 5 minutes, not worth tracking |
- Rule of thumb: 2-8 hours per task
- If it takes more than one work session, break it down further
- If it takes less than 30 minutes, it's part of a larger task
Slide 8: Worked Example — Book Model Task¶
Talking points:
- Walk through Task 1 from our ADR:
- Objective: Create Pydantic model for Book with validated fields
- Scope:
src/reading_list/models.py(new),tests/test_models.py(new) - Requirements: MUST use Pydantic, MUST constrain status to 3 values, MUST reject empty strings
- Acceptance Criteria: 6 testable checkboxes
-
Verification:
python -m unittest tests.test_models -v -
Notice the Scope section lists allowed AND denied paths
- This is your steering wheel when working with AI assistants
Slide 9: Tasks and AI Assistants¶
Talking points:
- Without a task brief:
- "Build the search feature" → AI generates 500 lines across 8 files
- You spend an hour reviewing code you don't fully understand
- With a task brief:
- "Implement Task 2 — here are the acceptance criteria" → AI generates a focused file you can review in 10 minutes
- The task brief SCOPES the AI's work
- Allowed paths: where it can write
- Requirements: what it MUST and MUST NOT do
- Acceptance criteria: how you verify it's correct
Key phrase: "The task brief is your steering wheel. The AI is the engine — powerful but directionless without you."
Slide 10: Dependency Mapping¶
Talking points:
- Some tasks depend on others. Map before starting:
Text Only
Task 1: Book model ─── no dependencies
Task 2: SQLite repository ─── depends on Task 1
Task 3: CLI commands ─── depends on Task 1 + 2
Task 4: Unit tests ─── depends on Task 1
- Tasks 2 and 4 can be done in parallel
- Task 3 must wait for 1 and 2
- One task in progress at a time — finish before moving on
Slide 11: Activity — Decompose Your ADR¶
Talking points:
- Before Part 5, create tasks from your ADR:
- Copy
templates/task-template.mdfor each checklist item - Write acceptance criteria as testable checkboxes
- Define scope — which files will you create or modify?
- Map dependencies — which tasks block which?
- Verify each task is INVEST-compliant (especially S and T)
Slide 12: Closing¶
- Tasks scope the work and steer AI assistants
- Good tasks are Small, Testable, and Independent
- The chain so far: PRD → ADR → Tasks → Code → Verify → Attest
- Next: Part 5 — Implementation and Verification