Hackathons Are Life
Software Engineering Manager at Measurabl
Hackathons Emulate Real Life
"Because of the pressure to deploy something, teams cut through the bureaucracy of normal company-life and focus on fast release cycles."
Similar to a tamagotchi, hackathons condense looong periods of time. Because of the pressure to deploy something, teams cut through the bureaucracy of normal company-life and focus on fast release cycles. This forces you (as a teammate) to produce simplest solutions that gain the most benefit. Ironically, this is also the goal of daily company life. So why are hackathons different?
It’s easy (and admittedly fun) to over-plan and over-architect. Here’s the thing about complexity: It’s never worth it. Things (even simple things) don’t go as expected and become complicated. By limiting the time window for when you actually need to ship, you should put yourself into a corner and force yourself to shave off anything that’s not completely necessary - or, you fail to ship and are left with a smoldering pile of complex code the next developer is going to throw away.
It’s dangerous (but admittedly fun) to dive into the new hotness. It’s dangerous because not only are there tons of new frameworks coming out all the time, but you have no idea how the tools you use will evolve. On a hackathon scale, you won’t see the changes, but think about after the hackathon: We always think we’ll maintain a project. But then there’s actual work, and look at that pattern you’ve never used before, didn’t I need to update my computer’s RAM, oh no.. the dishes need to get cleaned… Life happens. By the next time you look at this hackathon project, your future self will have completely forgotten the context of what was going on during your sleep-deprived weekend and maybe not even be able to run the new hotness tool you setup in the last minute.
Use the tools you know and don’t reinvent the wheel.
(Sidenote: This does open up an interesting idea for testing the new hotness. When evaluating a new tool, framework, language, etc, do a hackathon with it. Evaluate how long it takes you to grok the documentation and make a more-complicated-than-hello-world app. Take that number and multiply it by 50 because that’s how long it will really take you. Ask yourself if you can afford that much time researching and learning this tool for a production project.)
While the other team was architecting…
While the other team was architecting, my dev partner and I spun up a WordPress site, made accounts for our non-technical teammates, and used the content they wrote (through the default WP REST API) to evaluate the current webpage. When the other team asked what we were using for our database, one of our "content writers" said we didn't have one. The solution was so seamless that the technology became invisible.
By choosing tools we were comfortable with (although this was the first time any of us made a chrome extension) and decreasing friction, we were able to focus on developing the hardest parts of the system that provided the most gain. Our solution was light, had about 50% of the features we set out to build, and will keep working without any intervention from my team.
The next time you're planning a feature at work: Try approaching it like a Hackathon. And the next time you go to a hackathon: Don't approach it like work.
Connect and Learn with the Best Eng Leaders
We will send you a weekly newsletter with new mentors, circles, peer groups, content, webinars,bounties and free events.