CodeRetreat: How to perfect your Software-Craftsmanship as an ABAP Dev
What is a CodeRetreat?
Community Driven
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!
Personal Experience
I personally took part at different CodeRetreat´s. Often they are Programming-Language-Driven like a JavaScript- or Java- CodeRetreat.
But sometimes I´d have the possibility to explore different Programming-Languages and also to use ABAP for solving the Task.
Besides the advantages in Learning some new Programming Technics. The main advantage is to work on your Craftsmanship and to get in touch with the agile Community.
How is your experience?
– Do you have any experience with CodeRetreats?
– Or similar community-driven Events?
– Does it make a difference in using ABAP or another Mainstream Language?
Hi Damir,
if i understand well, you are talking about something like CodeJame: full immersion session in exploring the code/language and find innovative use of it.
I never attended one due the lack of availability near me but I'm really interested in it.
I do not think the language choosen makes difference, but again, it's the opinion from someone who never attended one.
I did some small "CodeRetreats" or "CodeJam" (give the name you prefer) with colleguees when we choose this or that solution and evaluated the options.
Hi Simone,
yes there are a lot of similiar Coding-Events.
CodeRetreat is also a community-driven Event. Maybe the speciality is that the format is nearly all the time the same 🙂
You solve on every iteration the same task with pair-programming. So you are getting insights from a different developer on each round and this is an outstanding experience.
I think especially when a codeRetreat focus on only one programming language you could dive deeper into understand the choosen language...
BR,
Damir
Hello Damir,
Thanks for explaining the working of the Code Retreat concept. Unfortunately I did never got a chance to attend one. But really looking for something like this.
I would like to understand the level of programming knowledge someone needs to come out productive in this kind of sessions. For example, if I want to participate in a ABAP Code Retreat, what level of programming know how is expected. Also, can this kind of session should be a place to know any programming language from scratch like up skilling someone.
Thanks in advance for your response.
Best Regards,
Samantak.
Hello Samantak,
thanks for asking this question! It´s important to clarify the intention of a CodeRetreat.
Every Developer is heartly welcomed who´d like to improve his programming skills. Even it doesn´t matter if he doesn´t know the programming language...
The intention of the CodeRetreat is to work on your skills. And if you are open minded you will get something out of this intensive programming event!
Best regards,
Damir
Dear Damir,
Thanks for your reply. It was really helpful and motivating.
Looking forward to attend such code Retreat Session soon.
Best Regards,
Samantak.