For the last couple of years we have experimented with an internal hackathon format called “The Toggl Challenge”. We started out in 2012 in Berlin, Germany, and this year in Liguria, Northern Italy. The Challenge is basically a week-long company retreat, where we fly out to a pre-selected place to conduct some intensive coding. We use the following format:
- The main goal is to improve Toggl, either in creating a new feature or improving an existing one. The direct result of the Challenge would be a throw-away code, but we are assuming that it is possible to reuse experiences, technical solutions and feature ideas in actual production environment.
- Challenges take part on the first week of May.
- Locations are selected to be as close to our timezone as possible, we also try to minimize flight time to max 2-3 hours.
- We try to find either big apartments or a house which could accommodate us all. This is important to keep the close-knit feeling for our team.
- We have 6 days for coding, and two half-days for travelling.
- The event starts with a kickoff meeting where teams are formed and the challenge specification is introduced.
- There are very few restrictions for teams – they can choose their development platforms and processes. Working hours are totally flexible – it’s up to the team to decide how and when they code.
- The only thing that matters is that after the 6th day each team should present a working version (not a mockup, not a prototype) that has the required feature set.
Challenge is set up as a competition between several teams that are formed randomly. We keep teams balanced by making sure that each one has all necessary roles covered.
Berlin Challenge 2012
Our first challenge was held in Berlin, Germany. This city has a very vibrant cultural life, and it’s emerging as a leading startup hub in Europe. We formed 2 teams, 5 people in each, and tried to formulate very clear task objectives so we could pick a winner based on quantitative measurements. We slept in two apartments – one being a huge 250 sq/m loft in central Kreuzberg (hipster epicenter of Berlin), and another smaller one close by. Also, we rented seats in two co-working spaces to keep separate zones for working and not-working.
Using co-working spaces was quite similar to our ordinary life in the office, so we started doing 8 hour workdays almost automatically (with a few exceptions). Teams started out usually at 9-10AM and even on final days there was not too much overtime.
A week in Berlin was productive – both teams produced working versions with required functionality and had lot of fun in the process. In overall we concluded that:
- Teams were a bit too large, it was hard to keep the pace and focus with 5 persons
- It was really hard to pick a winner if you had 2 teams and no outside appraisal. It also appeared that our task objectives could be interpreted in several ways, which lead to a lot of arguing on the final presentation day. So we decided on a draw.
- Berlin as a startup hub is really fascinating. Lots of good places to eat, a lot going on all the time. Many good co-working spaces and extreme nightlife.
Italian Challenge 2013
This year in Italy, we made some updates to the process. We set up 4 teams, with 3 people in each. As we had 14 people, then we also had 2 wild-card members randomly assigned to 2 teams. The challenge objectives were more abstract, and winner was going to be picked by voting only. To make voting more interesting we set up 5 different categories + 5 bonus categories.
In contrast to Berlin, we were located at a very tranquil village called Recco, just on the coast of the Mediterranean Sea next to the city of Genova. We had a single house where we all fit in quite nicely. To stress the remoteness, our house was located away from the village ca 150m above sea level, and the access road to the village was so narrow and steep that everybody preferred to walk instead of using cars. As you can imagine there was not much going back and forth. Usually we took time to go to village once a day for shopping or occasional lunch or dinner. We also decided not to take additional co-working spaces, and worked in the same house.
It was a deliberate choice not to organize any official events for sightseeing or just for filling up the free time. This resulted in an ongoing smooth happening where ad-hoc events sprung up and spontaneous trips and treks took place, spicing up the whole Challenge.
As both living and working quarters were the same, then the whole development cycle was a lot more hectic than last year. There were a few almost-all-nighters, and quite often you could find people hacking away on either early mornings or late nights. Most of the teams tried to reach minimal working set of features as soon as possible, deciding to add more functionality later if time permitted.
The week passed by quickly, and soon it was time for presentations and voting. All teams were successful in presenting a working version of the required feature set. As people were given a lot of freedom, all teams had unique solutions which were very different from each other. There is definitely not a lack of creativity within this company.
Voting worked out fine – as everyone got their say on results, there was almost no arguing. Also, having 5 different category winners meant that all teams got enough recognition.
Why are we doing this? First of all, its a really good way for team building. Secondly, it’s a risk free environment to try out new technologies and development methodologies. Thirdly – we have several areas in Toggl that need improvement, and these Challenges help us produce many different out-of-the-box solutions within a very short time frame. Also, it seems that 6 days is a pretty good time limit for such an undertaking. It’s enough to produce working applications, and still reasonably short to keep you focused on the task.
What next? We definitely plan to continue. There are some vague ideas for the next Challenge, usually we start exact planning 3-4 months before the event. This period is enough to book flights and find our temporary HQ. Challenge task is usually specified 2-3 weeks before the event. It’s a group effort and everybody in our team knows the details well ahead. What creates a challenge is the team formation – you’ll not know with whom will you start coding as teams are set up only at the beginning of the Challenge.
I hope you enjoyed this read as much we have enjoyed both Challenges so far. The visible result for Berlin’s challenge was Toggl Timeline which was published early this year. Italy’s Challenge result is not yet public, but it will be at some point of time. We are certain that these events help us make Toggl a better tool and our team a better team.