- before starting, check if there are any refactoring(s) that would make the changes simpler
- use Test Driven Design → write a test → state it’s expected failure → verify the test fails → make the test pass in the simplest possible way → then repeat writing the next test until the slice is complete
- slice the work vertically, test and implement each slice of functionality end to end starting from the external interface
- prefer keeping the code in a work state as much as possible at each stage
- I want to review each slice before continuing, and each review to be as simple as possible to understand. The related tests and implementation in one logical end to end change set
Use this template for the TODO list, but the can be extra steps if appropriate, (like infrastructure)
- Write test for
- Implement