You should participate in a hackathon at least once per year

The title of this blog post is what co-worker, author, and Microsoft F# MVP Jamie Dixie said to me. Recently there was an internal hackathon at my company, and Jamie asked me to be on his team. It took place over this past Martin Luther King Jr. 3-day weekend. Now that we’re done, and did our presentation – I whole-heartedly agree, and I’d like to make my case.

What is the value to me?
Well first, hackathons typically have money on the line. Sometimes it’s free software or services, sometimes it’s a few hundred dollars, sometimes it’s several thousand dollars. So even above the intrinsive value, there is always just straight-up cash which might incentivize you.

But really, the value is much deeper than that. The real value is that this is an all-out test of your skills… ALL of your skills. This will test your mettle, from top to bottom. By the end of the event, you will be pretty clear on what your strengths are and what your weaknesses are, because a hackathon is a super-compressed, entire delivery process of a software application. You cover:

  1. Organizing your work (OneNote) and communication (Email/IM/SMS)
  2. Setting up source control
  3. Setting up a database
  4. Gathering requirements
  5. Establishing a name and a logo
  6. Troubleshooting your first delivery to dev
  7. Doing many interative cycles, and working with other devs – and successfully handling merge conflicts
  8. Doing mini-demos with co-workers and getting feedback
  9. Updating documentation and working towards a presentation
  10. Arguing about what is / is not going to make it into the final build
  11. Cramming to make sure the final build is all tightened-up
  12. Doing a final release before the deadline
  13. Doing a presentation to the business about what you built

Like I said, this is like a super-compressed version of an entire release cycle. But instead of it taking several months and you having a separate project manager, this takes place over a couple of days, and you and your teammates wear whatever hat is necessary to get the job done.

So, the value is that you get a real-life test to see where you actually are with all of your professional skills. What better thing could there be to see what are your strengths, and what areas you need to work on? And, if you have a good team and have good “systems” in place, you might even win some money!

How to do well in a hackathon?
The way that I look at a hackathon, is that I want to put together all the “systems” that I have, and in which I am proficient – to solve the problem at hand. For example, here are some Systems I consistently use.:

  1. Have a place for source control. At work, I’d use TFS. Outside of work I’d use http://tfs.visualstudio.com
  2. Have a place to store files – like the logo.psd file. In source control, I create a src, docs, hlp, and bin. Src is where the VS solution goes. Docs is where I put .psd, .pptx, .xls, or any other project-specific files. Hlp is where I put any documentation or a Sandcastle help file project.
  3. Have a way to create/connect to a database. I am a big fan of code-first Entity Framework – and so I can unit test everything else, I like using the Repository Pattern on top of that. I put the EF models in a Models folder, and all of the repository stuff goes in Data.
  4. Have a way to communicate information – I really like using OneNote from a shared drive (at work), or via OneDrive outside of work, primarily because OneDrive knows how to handle two people updating it at the same time.
  5. Have a way to layout a website – nowadays, I use Bootstrap exclusively.
  6. Have a way to use icons – I use Bootstrap and Font-Awesome icons
  7. Have a way to get data to the client. Nowadays, I use AngularJS data-binding, controllers, and services to talk to ASP.NET Web API for data

and on it goes. The thinking being that as soon as you get the details of what you need to build, you don’t need to get bogged-down in where to start. You should already have a place to start. Using the above, I have: source control, database access, a REST API, a core website with the ability to get AJAX data, a way to have icons everywhere, etc, etc.

To me, not only is this the right way to start doing a hackathon, THIS is what is going to be tested. If one of these Systems fail, or doesn’t serve you well – you will know, and you will learn for next time. So, the added benefit of participating in a hackathon, is that is will thoroughly test all of the Systems that you think are great. You will find out whether they really are or not!

How do find a hackathon, in which to participate?
I have found this to be sort of hit-and-miss. There isn’t any one place to see every hackathon, everywhere – but there are quite a few aggregation sites. Just do a search: https://www.google.com/#q=find+hackathon

Also if you work for a large enterprise, like me – you might find that upper mgmt has discovered they can get a proof-of-concept done over a weekend, instead of spending a million dollars and it taking 10 months! So, many large enterprises now have internal hackathons to solve stubborn business problems which have previously been difficult or expensive to solve.

Lastly, if you participate in local user group meetings, you can often hear about local events from there. In the U.S., most Microsoft field offices host a monthly user group meeting and/or there will always be a local .NET user group meeting (for example) – or you can search for local meetups.

Bottom line:
I challenge you, dear reader, to participate in a hackathon at LEAST once per year. Test your mettle. Test your systems. Get a very accurate picture of where you are, professionally. And, you could also win some money or swag along the way too!

Oh, and we won’t know until Tuesday if Jamie and I won our hackathon – but as you can tell, I already got quite a bit out of the experience. So, any monetary award would just be icing on the cake!

Posted in Computers and Internet, General, Organization will set you free, Professional Development, Uncategorized
3 comments on “You should participate in a hackathon at least once per year
  1. Tinu Punnoor says:

    Very good info, Rob! Did the hackathon your organization conducted have any specific objective? Or was it like people can come up with their best ideas on any topic of their choice?

    Like

    • Robert Seder says:

      Tinu!!

      Old friend, how are you? I hope you and your family are well! Well, the internal hackathon was not-great. Instead of designing a proper system, someone thought: “wait, we can call it a hackathon and get most of a system built over a weekend?” – and worst, first place has to then finish building the app and bring it to production. So, the business basically gets an app built quickly, for free, but it’s a terrible deal for the participants. I won’t participate on any more internal ones (our team won first prize, and we’re still working on building the app).

      So maybe I should qualify my statement: everyone should participate in a public, proper, actual “hackathon” at least once per year. 🙂 Be well my friend!

      -Rob

      Like

      • Tinu Punnoor says:

        Rob – very glad to hear from you!! We are all doing great! Sorry to hear that the hackathon objectives in your organization were not clear. I keep hearing a lot about hackathons these days. One of my friends in Silicon Valley informed me that Intel conducted one recently on IoT and the winner would be awarded with a Mercedes Benz 🙂 I’m sure that it would be very challenging one with numerous participants due to the attractive reward. And I’m sure that Intel kind of firms conduct tons of them every year. Sounds like hackathons are very beneficial for all the parties involved if properly organized. I found a bunch of discussions on this topic in the social media. That curiosity led me to your blog post and it is very informative. Thanks much Rob, please keep writing. Have a great time!!

        -Tinu Punnoor

        Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Archives
Categories

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 2 other followers

%d bloggers like this: