Think. Do. Discover.

Attending A Great Code Retreat on Test-Driven Development in Linz

January 2025

It was a fine day! A day of coding, learning, and connecting with like-minded developers at the Code Retreat in Linz in January 2025. Fun and engaging, from tackling programming challenges with constraints to sharing stories and insights with amazing folks.

The diverse group of 25 participants at the code retreat.
The participants at the Code Retreat.

On Saturday, January 25, 2025, I had the pleasure of attending a Code Retreat focused on Test Driven Development (TDD). Let me tell you, it was a very fulfilling event! I decided to attend this Code Retreat because I had a great experience at a previous company at similar workshop by Dr. Peter Kofler, also known as the "Code Cop". It left a lasting and very positive impression on me. The hands-on practice, collaborative problem-solving, and focus on Test Driven Development made it a great experience. While the Code Cop was not involved in this event in Linz, when I heard about it, I knew I couldn’t miss the opportunity.

What is a Code Retreat, Anyway?

For those unfamiliar, a Code Retreat is a day-long, intensive workshop aimed at honing software development skills. This one was built around programming "katas" (a term borrowed from martial arts, referring to structured exercises) and inspired by the work of tech coach Emily Bache. The format? Pair programming. Partners alternate between writing tests and implementing the code to make the tests pass to practice TDD.

Testing, Teamwork, and Tons of Fun

Approximately 25 participants came to the Code Retreat. It was organized by the Coding Club Linz e.V.. The retreat was held at the Wissensturm in Linz, Austria. Even though I had lived in Linz for a while more than ten years ago, I had never been to this high-rise building. Its name literally translates to "Tower of Knowledge" because it is a hub for learning with a public library and community college. It was the perfect setting for a day of coding and collaboration.

Our programming exercise for the day was none other than Conway’s Game of Life, a classic simulation for cellular automation where life cells blossom and die based on rules of proximity to each other. To keep matters lively, we switched partners frequently, ensuring that we got to interact with and learn from everyone else.

The day went by in a whirlwind. With one partner writing a test and the other implementing the solution, it was a constant exchange. We worked across different programming languages, IDEs, and testing frameworks. I learned a lot about how other people work and approach problems. I hope that I also managed to broaden the horizon of other participants.

Outside shot of a high-rise building, the Wissensturm in Linz
The top floor of the Wissensturm building in Linz, Austria, was the perfect setting for a day of coding and collaboration.

Challenges to Push Our Limits

A cool aspect of the Code Retreat was that for every "kata," we were given a different set of limitations. These constraints challenged us to think differently and adapt to unusual scenarios.

The most memorable session was one where we were not allowed to speak to our partner. The only exception was that we could say our own name. That was it! This exercise highlighted just how critical it is to write clear, understandable code that can "speak for itself." Without verbal communication, we quickly realized that well-named variables, meaningful test cases, and readable logic are essential. At the same time, the exercise helped us truly appreciate the value of communication and collaboration when it is available. Some of us found a work-around for speech limitation by typing comments in the code with questions and answers.

In another session, we were not allowed to use any conditions or loops in our code. At first, this limitation sounded completely bonkers. How can you program anything meaningful without if statements or for/while loops? But once we started thinking creatively, we discovered alternative approaches using enums, maps, and filters. It was oddly rewarding to find elegant solutions to problems that initially felt insurmountable.

A man in a t-short standing in front of a projection screen instructing a room full of audience
The organizers kicked off the event with a presentation of the ground rules for the retreat.

Chance Meetings and Supporters

The sponsor of the Code Retreat was Dynatrace, a leading global cloud technology provider headquartered in Linz. They rented the stunning location of the coding retreat with its 360° view of Linz from up high. And I sure enjoyed the delicious and abundant food offering.

One of the best parts of the whole event was meeting so many inspiring folks. During a break, I struck up a conversation with a young man who shared an incredible story about how he and his girlfriend rode their bikes all the way from Linz to Venice in just about a week. It was amazing to hear about their adventures along this journey.

I also chatted with two guys who had managed to attend the Chaos Communication Congress (CCC) in 2024. I had tried to get tickets during the congresses short online ticket sale periods last year but hadn’t been successful. Fortunately, one of them mentioned they might have access to a contingent for 2025 and offered to keep me in mind come December. It’s always inspiring to meet people who are not only passionate about technology but also have such interesting stories and experiences to share. I felt lucky to connect with cool, smart, and like-minded folks.

In between the sessions, we had the opportunity to reflect on our experiences with the individual katas by discussing them with each other. I found these informal conversations incredibly valuable. We shared insights, compared approaches, and learned from each other’s perspectives. At the very end of the day, we gathered in groups of five to summarize our overall experience and highlight our main takeaways. Each group then presented their thoughts to the entire class, giving everyone a chance to hear different lessons learned. It was a great way to wrap up the day.

A conference room with a mixed audience sitting at tables looking at a flip chart with a man presenting
The participants spread out across multiple rooms.

Wrapping Up A Rewarding Day

By the end of the event, we were all a bit exhausted but uplifted. The combination of structured exercises, teamwork, and a supportive community made it a useful day, a good day.

To be perfectly clear, I am by no means a proficient enough developer to work fully test-driven. I understand the advantages of starting with a test before writing any implementation. I understand the aspiration to produce cleaner and more efficient code. Yet, I need to first figure out how to actually solve the problem I am working on and implement solid solution. This involves trial and error but also a lot thought just to understand how the requirements can be met. I can then write the actual tests.

Though, I do admit that I get better at it every time I try. So maybe some day, I might attain the level of ninja-jedi powers to fully embrace TDD the way its supposed to be done.

One thing I always appreciate is casual pair programming. This not only improves the code but just learn a lot this way. Explaining my thought process to my coding partner forces me to organize my ideas and be intentional with my approach. This has helps me up my game in unexpected ways. At the same time, listening intently to my coding partners perspective deepens my understanding and opens me up to ideas I might not have considered. Coding in front of someone else, while uncomfortable atfirst, is a truly valuable skill. It is something that can only be improved by diving in and doing it. I’ve found that honing this skill is absolutely worth it.

The older I get, the more I value the process of learning. I think it keeps me nimble and thinking on my feet. I don't want to sound too pathetic but I feel it unfolds new parts of the brain. Trying a new programming language, a different IDE, or an unfamiliar testing framework, stepping out of your comfort zone is where I feel real growth happens.

If you are into coding or aspire to be a coder, I hope you find a chance to attend a similar workshop or retreat. I absolutely recommend it!

A group of participants presenting their experience during the retreat
At the very end, we split up in groups and shared our experience in short presentations.