Venerdì Protetto | March edition

Shall we play a game? What about a nice Code Challenge?

Matteo Garza Matteo Garza avatar Ana Radujko Ana Radujko avatar

4 minute read

During the latest Venerdì Protetto (held on March 8, 2024), we had to change slightly the schedule we’d planned. We had to face a new schedule with very strict time constraints. So we decided to… do something new, and try a Code Challenge!

But how did we do it?

We searched for something already done on the internet, and most suitable for our needs. So we tried the most obvious solution and went for… Advent of Code!

Advent of Code Christmas Tree Such a nice ASCII Art Christmas Tree for a challenge… in March!

Advent of Code - Private Leaderboard

Advent of Code is an Advent Calendar, written by Eric Wastl, the creator of pages like Vanilla JS and PHP Sadness. Every day a little coding puzzle is proposed, with increasing difficulty, obviously Christmas-themed.

Advent of Code is one of the most famous and well-known code challenges around the web, kept every year since 2015.

There are two nice features, useful for our purpose:

  • You can have a private leaderboard, with a specific ID, where everybody can join.
  • It’s language agnostic: for every challenger, a different input is proposed, and you just have to find the correct output. So everyone, independently of what job they can do, can subscribe. Even a non-strictly-technical person can join and try to guess a solution.

Setting the challenge

How did we prepare the challenge? It was quite straightforward.

  • On the very day of the challenge, we randomly chose a year, from 2015 to 2022. We excluded the latest year because it was too close and someone could try to remember the solutions.
  • We asked the challengers to form four-person teams
  • The challenge is: how many points can you get in 2.5 hours?
  • and that’s it!

A leaderboard managed how the points were computed and all other tedious stuff.

All teams were free to solve the puzzles in the order they wanted (this was crucial for the winning team!) but had to keep in mind that the difficulty ramps up from day one and they could get stuck in a strict time box.

Wheel of Years If you have to extract something randomly, why not do it in a fancy way, like the good ol’ Wheel of Fortune?

Suit up!

Six teams were formed. They were stderr, Tori Automatici (“automated bulls”), Ittasinanta, Loans&Lions, Daje (“go!” in Roman dialect), Alco1isti Anon1mi.

The teams were formed in a quite heterogeneous way. In fact, on the same team, there were backend developers, frontend developers, data engineers, QA analysts, and so on.

Most of the challengers were newcomers, who had never participated in an Advent of Code before, and this was the main difficulty of some teams, one specifically. The other ones were made of veterans of this challenge, and they proceed like the wind.

On your mark, ready, steady, go!

The challenge was very intense, and until the last 10 minutes, it was a head-to-head between the first two teams.

Every single team used the mob programming technique to solve problems. The entire team focused on a single problem. One person actively wrote the code, and others suggested solutions. This is a very interesting way to share knowledge, especially in a never-tried setting. This is also very useful for team building.

All teams… but one. The winning one. The winning team (mainly composed of colleagues from the same area) used a different approach: everyone took a problem and tried to solve it. They switched to mob programming only to solve difficult issues. This approach allowed them to score the latest winning point by solving a problem a little further from the one every team was stuck into.

Wrapping up

Here it is, the final score of the challenge.

Leaderboard Advent Of Code March 2024 All glory to Daje team!

Besides of the mere numbers, everyone enjoyed the day, considering it tough but fun. Also, it helped people from different teams, and with different skills to meet and get to know each other.

The challenge sharpened up collaboration and the strict time-box helped the team to focus on what matters. The side effect was that when the time almost expired, someone gave up because they were unable to focus anymore.

From the organizational point of view, this was a success, even though it’s a bit rough around the edges and in need of some further fine-tuning.

And remember: Rule #1 of every challenge is to give a very valuable prize to the winner!

The overview of Venerdì Protetto is available here.

comments powered by Disqus