Code retreat


Details
Coderetreat 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.
Structure
Coderetreat has an established, time-tested format that is optimized for focused practice.
Problem: Game of life
Length of Session: 45 minutes
Duration: 10am to 5 or 6pm
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
The coderetreat 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 (http://c2.com/cgi/wiki?XpSimplicityRules). Spend the day practicing these concepts, rather than pushing into new learnings.
Programming languages
Each pair can choose the language they want to use in each coding session. Even though the event is posted under C++ group it is by no means limited to C++ only.
Pre-work
Please have a working "hello world" program with tests for all the languages you want to work with. Also set up all the code under version control.

Code retreat