Google Hash Code — When failure teaches you much more than winning does
By: Joseph Assaker
Tags: Lessons Learned, Hashcode, Learning, Failure, Competition

To be quite honest with you, this losing experience has taught me much more than last year’s winning experience could’ve ever taught me. This isn’t to say that last year’s winning wasn’t fruitful, in fact it was quite the contrary. However, when things go great, and the end result is a win, we often tend to overlook the mistakes committed, and overestimate our performance. For instance, last year we were super efficient in terms of time and resource management, but given our win, we kind of took it for granted and never questioned if it happened because we enforced it, or just by chance or instinctively?

In contrast, this year has been a disastrous attempt, and all the weak points suddenly shined brighter than ever in front of me! I even questioned the correct stuff we did and made sure I understood why they happened and how to reproduce them. So, without further ado, here are the most valuable lessons I’ve learned from this failure:

As the Competition is only limited to 4 hours, teamwork is vital.

This is one area where we nailed it. Teamwork, as you might have guessed, is absolutely vital in such a competition. In fact, I’d go to say that, in my opinion, one of the most important indicators in either winning or losing this competition is the team members’ level of agreeableness and degree of accepting others’ point of views.

As mentioned above, our team was luckily formed of people with such constructive attitudes. That being said, this kind of paradoxically back-fired and I’ll explain why in the next points.

The phenomenal importance of leadership in a team.

Leadership. Leadership is what we were missing in this land of agreeableness overflow. I can’t stress enough the importance of having a team leader. A clear, decisive, authoritarian and respectful voice is what it takes to actually benefit from this agreeableness and openness in the team. Otherwise, you’ll just end up with a fragmented team, with each member throwing his/her idea, having everyone consider everyone’s approach and no one actually making the call on which approach to double down and focus on.

This feat was easier to achieve, rather instinctively, in last year’s competition as we were working together physically. We all knew what everyone was doing and it was easy to notice time pass by with us just staring at each other and not taking action. So, we would directly call for a mini-meeting on our beloved whiteboard, share ideas and augment them quickly, take decisions and take consequent actions. Thus, it was rather easy to share this leadership responsibility.

My team and I (on the left) making sure that we all have the same understanding of the problem at the start of the competition. Also, we had a TON of candies on the other side of the table, and that’s a secret tip to maintain your energy for 4 hours!

Accomplishing this feat this year, without previous preparation, was very challenging. Our team was physically-fragmented and audio communication is all we had. We would discuss idea, after idea, after idea, and never notice time passing by. Being physically distant, and each having a different approach in mind, it was exceptionally hard for someone to take the lead and responsibility of forcing shorter discussions and generating faster actions.

Looking back at it, taking the responsibility of leading the team to a suboptimal solution, beats the hell out of not taking any action at all.

Do not waste resources on solutions that are taking too much time with poor prospects.

There are sometimes where an idea just hits you, an idea that would definitely boost your score if it works, and it just “feels” rapid and easy to implement. But in some of these cases, especially in competitions such as Google Hash Code, such ideas tend to just reveal their complexity over time. So, you get stuck in this rabbit hole, where you’ve already invested so much time into this idea, you feel that it just needs a bit more, and eventually it just devours a ton of precious time from you and your team. Don’t let that happen! Set a hard limit to the implementation of an idea, if in 10–15 minutes the thing is still not figured out just scrape it and move on.

I know it can be hard to let go of ideas, especially when you’ve only had a handful of minutes to try and implement them, but keep in mind that the whole competition is 4 hours, and there’s absolutely no time to waste!

When applicable, solve conflicting ideas by relying on actual data.

Accepting others’ point of views, especially when they might contradict ours, is an essential skill to have both in this competition and in life. In most cases, a team leader should step in and decide which approach trumps the other and move forward with it. In some cases however, especially in the later stages in the competition, ideas will further and further diverge and it’ll be hard to make a call on the better one. If you’ve had a great start, you might have a small leeway to try both ideas, so why not do it! Let each member having a different idea implement his own idea (of course with a time limit) and later on let actual resulting data decide on which approach was indeed better in this scenario.

In fact, we applied this technique in last year’s competition and we ended up merging the 2 tested ideas together to come up with our best solution that won us the 1st place in Lebanon!