Hackathons: Keys to success
Hackathon success tips
We call them hackathons, those 24, 48 or 72 hour sessions where you push yourself and your team to come up with an MVP sometimes to build on later as a basis for product launch or maybe to demonstrate to your clients or potential investors just to see if they can invest in it.
Hundreds of successful projects and even investor capital based start ups came up in this way, Others have also been just that, a hackathon that only succeeded in teaching your team ‘lots of lessons’ and left you wondering why you even participated in the first place.
Well, how can they be done right
As a software developer and tech entrepreneur, I have participated in both successful and ‘not so successful’ hackathons and as the tech learning enthusiast that I am, I chose to share some tips for you to employ the next time you ever plan a hackathon.
- Set realistic expectations
It is normal to be visionary and believe that you will have a product ready for launch after the hackathon, truth is that production class software is complex and cannot be produced in just a matter of a few hours. You will however be lucky enough to have something you can demo or build on later.
Without setting realistic expectations, most of your time will be consumed by attempts to re-prioritize issues and work on the most important ones, talking of a complex software, you may just end up with a work plan and not a product. Always set your expectations on an MVP, the least amount of requirements needed to have the product on the right path
- Build the right team
A good software project team is a mixture of coding, business domain and design expertise. Without these three, you have many loop holes for failure. Always ensure the composition of your team reflects this mixture. Write down your ideas, share them with the team and let the team establish a common vision before the hackathon , as a developer, Ensure your developers’ visions are aligned with the product vision and not just on useless issues like ‘how good I am compared to developer X in the team’.
- Know your environment well
It will do you more harm than good to build every thing from scratch especially when there exists tools you can easily plug into your development pipeline. Things like open source APIs for common tasks such as authentication, payment and e-commerce, chats etc. Remember time is a constraint and your focus is to have an MVP, not to showcase your talent as a kickass developer.
It is also highly valuable to have read out widely about the third party applications, APIs and even on the framework of your choice, this will minimize on the time you would otherwise waste reading out documentations and tutorials but allow you to focus 100% on your product.
- Religiously follow proper git flow
Version control is an integral part of software development, ensure your team religiously follows a proper git flow. I use the term religiously to imply that it is something you never avoid whether you believe in it or not.
Three weeks ago, our department had a 3 day hackathon to build an MVP for a product we aimed to gift our company as a christ mass gift, My assessment is that around 8 man hours were wasted on problems of inconsistent commits, waiting for git history re-writes and others that would have been easily avoided by following a proper git flow. — I learnt an important lesson that you should choose a convention to follow in your git workflow at the beginning of the project.
- Use Paas for deployment
It is no light issue that the web for the present and the future is sits on top of Paas platforms. Some free ones that I recommend are heroku and google app engine. Ensure however that you have reviewed the tutorials and API documentations for your platform of choice and ensure it supports all the features you need in your product. This will help prevent you from struggling to figure out system admin tasks and let you focus on your main objective of building an MVP.
- Never re-invent the wheel
Life isn’t supposed to be hard, there are frameworks out here that make life easy, be it back end or front end web development, data science and machine learning, automations etc, use frameworks where one exists. This will save you a lot of time and easily help you build a quality product by easily putting things together and adjusting their behavior.
- Build what you want now, not in Future
Sounds silly right, I know.
Why put your energy on building something that won’t add value in your final presentation, do you feel it will convince your investors, will it convince your management to put on more effort and give you the much needed ‘allocation for the next quarter’, If yes, please do it, otherwise, think of it in future, you will have sufficient time for it.
My advice here is that you envision the demo you want to have at the end of the hack then work backwards prioritizing only these features.
- Make it a great moment.
Hackathons are supposed to be enjoyable, not boring and full of pressure, take breaks and kill the pressure, get more and more meat for the carnivores in the team, let there be free supply of pizza, and not to forget, provide an oversupply of coffee, energy drinks and beer to those who need them.
Remember you only have one life to live and you decided to devote it to coding, why not have fun at hacking and changing the world with lines of code
Till the next time you have a hackathon, have fun.