The Agile Design of a Hackathon Team
The Agile Design of a Hackathon Team
Tom Radcliffe explains how forming a Hackathon team resembles Agile teams in software development companies and what you can learn from both.
Join the DZone community and get the full member experience.Join For Free
You've been hearing a lot about agile software development, get started with the eBook: Agile Product Development from 321 Gang.
Hackathons have been growing exponentially in recent years. You can find hackathons for everything from foodtech to fintech as developers seek out opportunities to test their skills and companies scout for talent. When these desires come together at a hackathon, you can find yourself on a caffeine-fueled ride that can last all night or even all weekend. We're talking long hours of intense coding to the point where it becomes tough to keep your eyes focused on debugging, especially if, as day gives way to night, coffee gives way to beer.
Hackathons attract passionate people from a wide variety of fields, skill sets, and experience levels, and not surprisingly that means they'll be used to different tools. Not everyone will be proficient in the same languages, and not all languages are suitable for every project being worked on. These disparate backgrounds and skill sets are frequently useful when trying to build something strong, and it always helps to have different kinds of eyes on the same problem, but the issue is how to bring them together in a functional, productive way.
Polyglot integrated development environments (IDEs) are just the kinds of toolboxes you should bring with you to a hackathon. They work with an array of languages and frameworks, provide automated assistance, offer version control, integrate with other tools, and allow real-time collaboration. These are also the reasons they provide such great collaborative environments in an enterprise context, so if you're lucky you can switch your mindframe smoothly when you go back to work, because you're already working in an IDE.
At the Hackathon
When you're trying to consolidate into a team, you don't want to worry about whether or not you all have the same language skills. In fact, it's better if you don't. Really, you want some team members with no language skills at all if you're gauging how the general public could use what you're building. but either way it's good to have someone with some presentation skills in the group, and that person might be a total novice when it comes to programming, so it helps to have an IDE that supports a huge diversity of languages and supports those languages with syntax error notifications.
Let's say someone on your team has a great idea and wants to lead the project – you're probably going to find yourself using their language of choice, and there's a good chance that it won't be one you're an expert in. Fortunately, there are debugging tools and syntax error notifications in many IDEs that will help you keep pace and continue coding even when the expert steps away. Everyone should take a break occasionally if you plan on succeeding. And you might not have a choice depending on the sheer volume of coffee you drink throughout the day.
Some IDEs like Komodo allow you to check for add-ons and plug them in quickly instead of spending time developing them yourself. Always take a moment and see if you can save yourself time by incorporating something that exists instead of building it from scratch. Any time you can save now will pay dividends when you're feeling the strain of exhaustion. There's also a shared toolbox so you can drop relevant tools in there for the whole team to use, marking yourself as team champion if you find something that moves everybody forward. IDEs outperform simple editors every time.
The sad reality is that we all have to sleep, eventually. Or we can at least benefit from a change of location. Choose an IDE that's available across all major platforms so, if you need to, you can swap computers and keep going. You can collaborate in real time from separate corners of the room, or from separate bars or apartments around the city, and the automated eyes of the IDE never get tired. There's source code revision control if you make sleep-induced mistakes, and quick bookmarks let you mark where you were when the expert passes out (the crash from coffee and energy drinks is steep and sudden) so it's easy for those expert eyes to pick up right where you left off.
The finish line is in sight; you're covered in candy crumbs and coffee stains, your eyes seem to be looking vaguely near – but not at – your screen, and they're the special kind of bloodshot that's usually reserved for zombies or the possessed. This is the time when debugging tools and syntax error notifications are going to come in handy, and when real-time collaboration will be the most useful, but if you have an IDE like Komodo you can also run code in line for quick checks. You can test selections from your own code to check yourself as you go, which will prove itself invaluable while the expert is head down on his side of things.
After the Hackathon
You've managed to survive the hackathon and you've come out of it with a great idea. Now what? First you should probably have a healthy meal and sleep for 16 hours straight, but after that you can invite people to jump on and edit with you in real time. Just send them a message and start iterating so you're ready for deployment that much faster.
But even if your idea was a massive failure and everyone booed you off the stage, and you have to go back to your normal job, you can use these tools there, too. A hackathon is basically an even more accelerated agile development environment, so all the tools you have in your IDE are applicable to your daily work life.
IDEs are great for enterprise development teams because they let developers experiment quickly with different languages and find the best one to suit their needs. Giving developers choices instead of forcing them to use a specific language is always a better approach, and IDEs provide a wide array of languages to work with collaboratively and seamlessly. They let developers track changes and have source code revision control, so they're free to experiment without worrying about breaking something. And if you decide to scale up for a big project, you can add a remote freelancer without a problem because of the ease of collaboration. If you're looking for a great IDE, Komodo has all these features and a multitude of others.
Opinions expressed by DZone contributors are their own.