Recap of the Global day of code retreat
The Global day of code retreat is an annual event which i cherish a lot. Last year it had to be skipped due to the still ongoing pandemic, but this year it was possible to perform such a code retreat thanks to vaccinations and tests. Here i'd like to give a short recap about what happened.
The task
As every other year the task was again: Conway's game of life. Just a little trivial game defined by a very small set of rules. It is very simple, so simple that everyone could grasp how to play the game within a few minutes. On the other hand, and this is the point where it gets fascinating, there are various approaches on how to implement this game. And depending on which decisions you take early on your development experience might be totally different.
The participants
This year we were a small group of friendly, highly motivated developers from various backgrounds (some embedded, some business, some web) and various experience - from student, to beginner, to architect and TDD expert. The spread of programming languages was also quite big, given the relatively small number of developers - we had, Java, C#, Rust, C++, ... This huge variance made every coding encounter different and an opportunity to learn from each other.
The result
We had six rounds of coding the game of life, which were exciting by itself. Each round with its own set of rules. There was a step learning curve observable by the younger participants about automatic testing. But i think that even i learned a bit about approaching coding challenges (be it professionally or just for fun) and how to teach the arts of the craft.
Besides the coding we had very lively social interactions between the session. And to a degree i missed this for the last few month. I take this as a moral/social booster before the dark, covid-ridden winter arrives.
Recommendations
I currently read the book Working effectively with legacy code by Michael Feathers. And i find i very useful since it relates totally to my working situation. Huge untested and hard-to-test code base with a lot of history. I usually have my basic set of tools that i use to approach such legacy systems and introduce change, but some of the techniques of the book is inspirational and might extend my tool set.
I also want to recommend this awesome article by Mike Bland: Goto Fail, Heartbleed, and Unit Testing Culture . Even though it is a bit outdated and there are many new security nightmares to report on, the main part of this article is a well argued holistic view on development and testing.