Turning sheep into racehorses (using hackathons)

There’s a great talk by Dave Thomas, “Developing Expertise: Herding Racehorses, Racing Sheep ” I’ve heard about in one of my favourite talks by Erik Meijer. Mostly it’s about treating less experienced people in a bit different way than “seniors” and making it possible for the former to posses all the knowledge they need. I’d like to tell about this from my perspective, basing on the working with completely unexperienced young programmers in much more extreme environment than regular job - hackathons.

So… among people I’ve met there were, for example, ones that have never been on any hackathon… There are people saying that it doesn’t make sense to write some software in a hurry and spending the whole night by the computer to win something negligible is just stupid. Also ones that are always looking for the next “hackathon-like” competition available.

that’s me!

I’d say that I’ve got all the traits that allow me to enjoy hackathons: I’m able to work for a long time without sleep (and definitely the best time to work for me is 8pm-2am, which is usually the time of the hackathons’ coding phase), I’ve probably got ADHD (I basically act like this guy) and amount of different “signals” during such an event is just about alright, so I can just get into a flow and focus on the project. Normally I seem to generate this “noise” by myself - with music, talking to others, having breaks and doing something else or working on several things at the same time and so on.

I’ve got also a few years of experience and - partially thanks to “ADHD” - for years I’ve been doing “something” with almost all technologies that I’ve heard about, which is very helpful when you’re supposed to create something completely new out of nothing, without preparation.

Finally, I’ve spent several years teaching others mathematics and programming and I’m quite used to explaining all the things over and over. So when my friends (much younger and less experienced than me) asked me to attend some hackathon with them - modestly speaking

  • I was probably one of the best fit they could find.

hackathons are crazy

I’ve been on six hackathons already and I’m going to attend two more in the next month. It’s enough to notice things that repeat on all of them, specific patterns of behaviour, how lack of sleep affects people and how they feel about the whole event. Sometimes it’s even funny.

On every hackathon you’ll most likely notice:

  • resignation, when people realize they don’t know, how to approach project they’d like to create
  • blaming each other, when there’re too many bugs than expected and close to the presentation a team doesn’t have anything working
  • teams where members are “going to sleep for a while” and never coming back to their desk
  • lack of self-belief; people that think it doesn’t make sense to show “broken” software and vaguely mentioning idea they had instead of doing live demo.

The best approach in my opinion is to just keep coding and show, whatever you’ve managed to finish.

It may not be perfect, it may not be complete, you might have no frontend… but you made part of your idea alive! I mean, tasty and shiny slides win sometimes (they simply look better on the organiser’s webpage ;)), but the whole value is in the working parts and most of the people around understand and appreciate it. Really! I’ve seen that many times. People will approach you and ask about technology stack you’ve worked with, your experience, your plans, other hackathons you’ve attended. Having a working project is just better for you. In the end, you may keep it pinned on your GitHub account and it’s great start, if you don’t have any experience.

Every little implemented part is a success. As written in How to Build Good Software

Software is about developing knowledge more than writing code

and - stretching a bit the meaning of this sentence - it’s also true during the hackathons, this knowledge - about technology stack you’re using and about yourself - stays in you and might help you some time in the future. That’s one of the reasons I’m still attending hackathons - it’s a great opportunity to try some technology I don’t have time for at home.

we learnt a lot

The same behaviour I’ve described above I’ve noticed in my team. During our first hackathon, we’ve spent most of the time on environment configuration and Python&git “training”. We’ve implemented (at most) 30% of that we’ve planned. When reality missed expectations, my hackmates wanted to leave before presenting our work. We stayed and I strongly believed in our team. It wasn’t as bad - we’ve created a working Telegram bot that did something useful for us at that time and after all, we had a lot of fun :).

Every hackathon taught us a new thing and made every member of our team more independent. At the beginning, experienced team members were helping and doing things for “juniors”. During the most recent hackathons, we were truly a “development team” - in most cases everyone was able to take a task and finish it in a reasonable time. In 2018 we took a third place during the Codeplay hackathon organized by Asseco, which for me is kind of a reward for the many issues we experienced and our dedication to fight till the end on all of them. After that we’ve spent several months developing our idea and thanks to that experience, most of our team members were able to find a decent job as programmers.

Getting back to Dave Thomas and his talk, there’re no more sheep among us :). Now we’re trying to find more potential “racehorses” among our friends to split our team and share our experience with them. To become a racehorse - what seems to be really hard to realize for many people - you must simply keep moving forward.