On Saturday 23rd of June we were happy to host a Code Retreat event in our Volvo premises in Wrocław. It is a full day programming experience for the willing, since it happens on a day-off. It is led by an experienced mentor from the SAP Community.
The task is either to implement the Game of Life or Tic Tac Toe. But the real goal is different – to practice your skills, rather than finish the task. Once you understand that, you stop chasing the unachievable goal and get the best of the event.
The numerous sessions last around 45 minutes each and start with a total reset of whatever you managed to achieve in the previous one. It is a bit painful at first, but this way you can address the same or another topic from a different angle. To add to that in each session you are paired with a different person, so brain storm is strong with this one. Also, each session has a different “theme”, which may be writing test cases first, last, or testing an intentionally badly written code.
Every of the 15 participants from various parts of Poland took something out of the retreat, but experiences were different – for some it was the first contact with ABAP in Eclipse and all the cool features it offers. Others discovered how nicely the unit-test framework is embedded in ABAP Development Tools. Yet another party deliberated on the difficulties, workload, pros and cons of managing the legacy code and the amount of the unit-tests to be written, to justify the extra development cost.
I myself was a bit doubtful if I can still find something challenging, because it was already my second time attending this event, now as an organizer. But I got sucked into since session one and didn’t really notice how soon it was time to finish.
What got me the most is that writing code with unit-tests in mind forces you to think about a proper architecture from the start, also splitting bigger modules into small, manageable chunks.
On top of that unit-tests document in a very clear and clean way document the requirements for the code – every case tests for something specific, easy to understand. Together with modularized code and inline comments this makes external documentation almost unnecessary.
Finally, unit-tests enable refactoring, making the rule “if it ain’t broke, don’t fix it” not valid anymore, and that helps to keep the code up-to-date and in good shape.
With that I encourage everyone to participate or organize an ABAP Code Retreat. I will do that again for sure. I would also like to thank Christian Drumm for leading the training, Volvo for hosting it, and SAP for providing the server.
You will find more instructions here: https://wiki.scn.sap.com/wiki/display/events/ABAP+CodeRetreat