What is a CodeRetreat?
You surely know this: In the small-small of every days programming you have little or no time to improve your skills and practice. You may participate in one or other training – but the improvements in the functioning and deepening existing knowledge remain mostly still on the tracks. This can be seen as a modern craftsmanship, however its perfections should be worked on a regularly basis.
„Retreats ” are certainly in trend. Many people would be thinking of a spiritual retreat as in a monastery. But we programmers also know the term: A code Retreat is an established, proven learning format in which you focus without having time pressure entirely on the programming and good code design. To improve the way you work and deepen your existing knowledge – all that, without thinking of your current project and its impending deadlines.
The Set-up of a CodeRetreat
A Code-Retreat usually takes place in one day. This will be divided in five to six 45 programming session. Between each session there is 15 minutes break for a review, a coffee break and a briefing of the next meeting. In the morning you will familiarize yourselves with the problem to break with old habits. In the afternoon it will become more demanding: We will make your abstraction and test your ability to test-driven development. Instead of gaining new insights, you spend the day to practice these concepts.
As a work equipment we generally use pair programming as the knowledge transfer is an essential part of this exercise. In each session you will work with another partner, select a part of the problem to be solved and begin the test-driven development. After each session you will delete the developed code (completely!) and exchange information with the other participants over the learned lessons.
To make matters even more interesting we use special handicaps which will be incorporated into the sessions, for example you are only allowed to communicate with your partner through code.
As an exercise we usually use “Conway’s Game of Life”. After a few sessions you will realize that you will never be able solve the problem and that you in face you should not solve it. It’s purely about the passion for clean code, good design and test-driven programming.
You will see: If you work together with others and have fun on the set tasks, the learning effect will automatically occur!