TDD Retreat is a day-long, intensive practice event, focusing on the fundamentals of software development and design. By providing developers the opportunity to take part in focused practice, away from the pressures of 'getting things done', the coderetreat format has proven itself to be a highly effective means of skill improvement. Practicing the basic principles of modular and object-oriented design, developers can improve their ability to write code that minimizes the cost of change over time.
Format is optimized for focused practice.
- Problem: Conway's Game of Life
- Length of Session: 45 minutes
- Duration: 9:00 am to 5 pm
- Pair-programming is necessary, as the knowledge transfer contained in that activity is essential to the practice
- Prefer using Test-Driven Development (TDD)
- After each session, pairs should be swapped
- After each session, code must be deleted, not put in a branch, not stashed, just deleted with no trace left
The day consists of 5-6 sessions, each session's learnings building upon previous sessions. The morning focuses on becoming comfortable with the problem domain, breaking old habits and beginning focused self-discovery. The afternoon pushes the envelope by challenging pairs to stretch their skills and understanding of abstractions, modular design and test-driven development.
With most groups, the focus should be on the fundamentals of software development and modular design, primarily the 4 rules of simple design.
- Pass all tests
- Clear, expressive and consistent
- Duplicates no behavior or configuration
- Minimal methods, classes and modules
Spend the day practicing these concepts, rather than pushing into new learnings.
Below is a rough outline for the day.
- 9 - 9:15 am : welcome, introductions, explanation of the problem
- 9:15 - 10 am : Session #1
- 10 - 10.15 am : retrospective, break
- 10.15 - 11 am : Session #2
- 11 - 11: 15 am : retrospective, break
- 11:15 - 12 am : Session #3
- 12 - 12:15 pm : retrospective, break
- 12:15 - 1.30pm : lunch on your own
- 1.30 - 2.15pm : Session #4
- 2.15 - 2.30pm : retrospective, break
- 2.30 - 3.15pm : Session #5
- 3.15 - 3.30pm : retrospective, break
- 3.30 - 4.15pm : Session #6
- 4.15 - 4.30pm : retrospective, break
- 4.30 - 5pm : Closing circle