Hackathon Best Practices
A "hackathon" is a highly intense weekend event where developers, designers, and entrepreneurs get together to create an app based on the hackathon's general theme. AT&T hackathons typically last two days, where you have 24 hours to create and present an app. The repetitive nature of the hackathon enables you to learn much faster through iteration and minimal distraction. We provide lots of tools for you to use while building apps, along with expertise from partners and staff, excellent speakers, prizes, and tons of food.
Hackathons are a great way to get your creative juices flowing, learn new things, and meet great people. It's also a venue where you can get support from seasoned professionals who are on hand to help you build your app on the latest technologies. Whether you've been to a ton of hackathons or are getting ready to attend your first event, these best practices can help you make the most of your time and maybe even help you win some fantastic prizes. Beyond these best practices, the best tip we can give you is to have fun!
Many people come to hackathons with an idea of what they want to build, and that's great. If you don't have a project in mind, join up with one of these folks and lend your skills. Maybe you find yourself in a team where a couple of people have ideas for an app. How do you decide which app to build? Embrace the theme and try to build something that uses one of the sponsored APIs or kits at the hackathon.
There are plenty of experts on hand to help you if you encounter any challenges. While using the API or developer kit doesn't guarantee your app will win, you've got a much better chance of winning if you build a product that both embraces the theme and uses the kits or APIs from the sponsors. If winning is your main goal, choose an idea that could win in multiple categories. For example, if there are sponsors at the event promoting a specific phone and API, build an app for that phone (not the one you prefer) using the sponsored API.
Smaller teams consisting of three to four people tend to work best. Typically, you should have a frontend developer, backend developer, designer, and a team leader/project manager. Pick people with domain expertise who can backup opinions with facts and those who can produce quickly. Identifying what each person will be doing is a valuable timesaver and will help prevent a lot of overlap in the work. Ideally, you want people whose skill set compliment yours. It's also important to have one person on your team who is comfortable speaking in front of crowds so that they can present the app at the end of the event. To fill this role, look for someone who is charismatic.
Once you meet with your group and decide on the app your team is going to create, map out what is needed to build to it. Use this as a guideline to identify what each member of the team will be working on at the hackathon. During this process, it's important to be honest about exactly what you can produce. It might mean scaling back some of the features of the app, but it's better to have something to present at the end of the hackathon.
Create and Stick To A Timeline
Immediately select someone on the team to be the timekeeper. This will help you stay on track. Remember, you only have 24 hours to build an app, so time management is critical. Once you have a goal set and have assigned tasks to different members of the team, break it into two to three-hour chunks of time that will work over the weekend. This will help keep the project on track, build-in automatic check-in times, and give you a chance to take breaks after spurts of work.
When you're building an app at a hackathon, the key is to make sure the function works. It doesn't have to be perfect. Say, for example, you wanted to integrate Facebook into the app and at the end of the allotted time period for that task it's working, move on. Don't spend valuable time adding more Facebook integration features.
We bring lots of things to hackathons to help you develop great apps, but when you have a hundred people in a room all with laptops and various other devices that need to be charged simultaneously there's a good chance there might not be enough outlets. In addition to bringing your laptop, consider packing a travel power strip with USB ports. This will allow you and other team members to charge all your devices from a single plug-in. You may also find bringing along a mobile hotspot (you can also create a hotspot with your phone) to be a useful tool. We provide Wi-Fi, but remember there are a lot of people using it simultaneously and having your own connection to the Internet could be helpful.
App Design Tips
When designing the app, start by mapping out every function of the app; deciding this information in advance can save valuable time during the hackathon. Some things to consider are how people will be using the app. Think about the size of your potential user's hands/fingers. For example, if you're designing a public safety app many first responders wear gloves, so an app with a bunch of small buttons might not work for them. Center the design around the user's needs. Now is not the time to add "nice to have" features, you're solving a problem. Your app should do that in the simplest way possible. Keep the app simple, functional, and make sure it has a logical flow.
Here are some references that can help with app design:
Know Your Team's Limitations
Hackathons are all about learning new skills or how to work with a new technology. If you haven't worked with a new technology or a particular API before, be honest about your limitations. Make sure that you have a good understanding of how to implement everything you plan to use.
Ask for Help
There are always plenty of experts on hand at our hackathons to help, and all you have to do is ask. They all just want to see you succeed. Even if you don't have technical questions they can still help provide documentation and tools that will help you complete your app.
So you've built an app, and it's time to present. The person in your team who you nominated to do the presentation should practice what will be said about the app and doing the demo. Practicing will also get the timing down, help alleviate any nerves the presenter might be facing, and provide some inspiration in the way its presented.
A good presentation is one that explains what the app does, the challenge it solves, and the technologies used. Clearly state that you used a particular API on a specific platform to accomplish goals A, B, and C. When doing a demo of the app, demonstrate the complete set of features. Be sure to speak clearly and accurately.
We've compiled some resources that could help you when getting ready to go to a hackathon or during the event.
Rapid UI Prototyping
There are a number of tools that you can use to rapidly prototype your app. Here are links to some resources most commonly used at hackathons:
- http://www.framerjs.com/ - Overview Video
- http://proto.io/ - Overview Projects
- Invision App - Overview Video
- Cloud Servers - Heroku, AWS, Rackspace, CloudScale, SoftLayer, NodeJS (Joyent)
- Databases - SQL, NoSQL, Hosted SQL (MongoLab), Hosted NoSQL
- Automated Scaling - RightScale
- Backend As A Service (BaaS) - Stackmob, Parse, Kinvey, Microsoft Azure, Wikipedia List
- AT&T - AT&T Only - http://developer.att.com/apis/sms
- Twilio - Global - http://www.twilio.com/
- Orange - Global - http://api.orange.com/en/api/sms-api
- Nexmo - https://www.nexmo.com/
- Trumpia - http://trumpia.com/
- CallFire - http://www.callfire.com/
- ClickaTell - http://americas.clickatell.com/
- ClockWorkSMS - http://www.clockworksms.com/
- Location - Geoloqi, Google Maps, ESRI, AT&T, Geonames.org
- Device to Device Messaging
- Restaurant - Yelp, Foursquare
- Font - Google Fonts, Fonts.com, Fontstack
- ESPN - http://developer.espn.com/docs
- CBS - http://developer.cbssports.com/documentation/api/files/sports
- Yahoo Fantasy Sports - http://developer.yahoo.com/fantasysports/guide/
- Sports Data - http://www.sportsdatallc.com/
- Comprehensive APIs