Ah, software engineers. All day, every day working hard on our amazing technology. So what's the best way to give your software engineering team a break and stimulate their creativity? Pizza and snacks included, of course (gotta keep them coders happy)...
Well, it's a code retreat!
Software Development Through Another Prism
So what is a code retreat? A programmer named Corey Haines used to talk to his co-workers about the quality of the code he would write if he were not subject to time constraints. The assumption is that when we deal with day-to-day tasks, software engineering teams tend to write the code they write - even if they think there is a more efficient way - simply because they don't have the time and the privilege to learn or experiment with something new.
Time is money: there are goals, there are schedules, and there are bosses. In order to finish our daily tasks, we tend to stay in our comfort zone and so we will do what we know best. Or rather, we'll never improve. There will always be a gap between how we do things and how we want to do them.
Software Engineering Projects: Make It Relevant and Creative
The idea of a code retreat is to allow programmers to write the perfect code they would write if they had all the time and resources in the world. And why is it important? Because after experiencing something, calmly and thoroughly, you feel more comfortable integrating it into a daily routine. And so, in the end, we will narrow the gap between the code that we write every day and the perfect code. Another principle of running a code retreat is teamwork. Your team would be exposed to different thinking processes while also learning to work with your teammates. Who said it was impossible to combine business and pleasure?
We at PicScout have long understood this, so every three months we unleash a customized code retreat on our software engineering team. The team is divided into small teams of two or three programmers who together perform the task: each time someone else is responsible for preparing the enrichment task and selecting the material to be learned.
Two of our star developers who solved the previous code retreat in record time, Assaf Mozes and Yair Knafo, prepared PicScout's most recent code retreat. What was important to them was that at the end of the fun project, people would have a sense of accomplishment. So they decided to frame the project like an escape room, where the only way out is to code your way out.
Where the Only Way Out Is to Code Your Way Out
In this innovative code retreat, the project is called The Forensic Challenge. A girl named Jane Wick, an avid bird lover disappeared in South Asia and is suspected of involvement in criminal organizations, and the team's goal is to find her.
Jane's rescue missions dealt with:
• website vulnerabilities
• image processing
For example, in order to find Jane, the team had to break into her email account, process and clean a distorted picture, and more. A few days before the code retreat, Assaf and Yair sent the team some theoretical material that would provide enough background and knowledge to enable them to solve the challenge. There were, of course, also those who were not satisfied with reading the material but also experienced it, their names are stored in the system.
So, how does it work? Usually taking place on the last day of the work week is ideal - for PicScout, this is on a sunny Thursday afternoon. The entire software development team convenes in a meeting room and the mission is explained. Then pairs of two or groups of three developers prepare to solve the task. What's nice to see is when a team takes a different approach, tries other solutions, and of course, works at a different pace. At the same time, those responsible for the mission also move between the teams, directing them where necessary. This is the time to remind that a code retreat is not a competition with winners and losers, but rather a team and skill building activity. The code retreat takes about two to three hours, and at the end the staff return to the conference room and discuss solving each of the problems. Each software engineer tells about the approach he or she took, the challenges met and the solutions they found. The event concludes in the kitchen with hot pizzas and a table full of snacks and treats.
We'll see you next time!