We use a centralized, lightweight Kanban approach to manage project flow across the entire group. A single board surfaces workload, capacity, and cross-project patterns that per-project boards hide.
Test-Driven Development (TDD)
- We strongly encourage a Test-Driven Development approach. Write your tests before writing the implementation code.
- TDD forces you to think about API design and edge cases upfront, resulting in decoupled, highly testable code.
- When using AI coding assistants, TDD is effectively mandatory: write the failing test first, then instruct the agent to make the test pass (see Verification-First Tasking in Chapter 7).
The Kanban Setup
We use a single, unified project management board (e.g., Notion, GitHub Projects, or Linear) with the following columns:
- Backlog: Ideas and unassigned tasks.
- To Do: Scoped tasks ready to be picked up.
- In Progress: Actively being worked on (Keep Work-In-Progress limits low to prevent context switching).
- In Review: Waiting for PR review or feedback.
- Done: Completed and merged.
Task Requirements
Before a card moves into "To Do", it must have:
- A clear objective.
- Required metrics for evaluation (e.g., accuracy, training time).
- Links to relevant data or repositories.
Weekly Workflow
- We do not use rigid sprints; team members pull from "To Do" when they have capacity.
- Ticket Hygiene: Keep your assigned tasks up to date. Log progress asynchronously as needed, document any major design decisions directly on the ticket, and move cards across columns promptly to reflect their true state.