November 16th is the Global Day of Coderetreat and this was the first time I partecipated.
The subtitle of the website describe it as
a day-long, intensive practice event, focusing on the fundamentals of software development and design, away from the pressures of 'getting things done'.
Basically you pair program with strangers and instead of thinking about deadlines or legacy code that you have no time to refactor, you focus on best practices such as test driven development or some tricky challenges took from object calisthenics. The proposed problem is always the same every year: Conway's Game of Life.
BUT! 😱 There is one rule: every 45 minutes you have to change buddy, delete all your code and start over!
At the beginning you feel a bit of frustration, because you know that by the end of the day you will never finish that damn game, but everytime you start again you notice that you master the problem a little bit more: This means that iteration by iteration, you see your code getting simpler and cleaner!
In fact, one of my takeaways from this day is this one: if you have a portion of code that makes you struggle everytime the debugger goes into it, maybe instead of trying to refactor it you could try to rewrite it from scratch! I can ensure you that a lot of great ideas will pop into your mind if you have a blank editor buffer instead of old ugly code in front of you.
And what about 3 hours meetings just to decide if an option is better than the other? Maybe in less time you could have implemented small prototypes of both the solutions in order to see which one looks better and you can have something concrete to discuss on with your team. 😌
In conclusion, if you missed the coderetreat I strongly advise you to partecipate next year (you can check locations on the website) or if you can, try this exercise with a friend, it's really funny and you learn a lot.