By Bess Ho (Mobile Architect, Archimedes Ventures)
My winning luck in hackathons has been generating interest and curiosity from my peers, so I've been asked to blog about making it at major competitions and hackathons.
I won the "Best Healthcare" award at my first iOS Dev Camp in 2009, then I won again at iPad Dev Camp in 2010. I won at Muther Hackathon a month ago before I entered iOS Dev Camp 2011. These are not the only awards I have earned in my career. I mention these competitions because these mobile events are recognized widely by a fast-growing industry with the best and top 400+ developers competing.
Honestly, I am too shy to talk about it in public. Winning is not everything. I never expect to win. I have a group of friends who are truly champions, winning all top prizes in major hackathons.
I consider myself a newbie and enter each hackathon with a humble learning mind. I am thrilled to learn from and work with the best developers in the room. Most of the time, I focus my efforts on making a useful, good design and a quality app. Getting my app design out there for real time responses from a few hundred in the live audience and a panel of well-established judges makes that much more valuable.
What’s iOS Dev Camp?
Each year, iOS Dev Camp attracts 400+ developers to compete in a 3 day event. iOS Dev Camp is the biggest developer event in the world. The camp starts on Friday night at PayPal campus.
I call it a shopping night. This is the night I shop for an idea, a team, and an API.
Friday at iOS Dev Camp
On Friday night during the networking hour, I spent time checking out each table. I checked out each product and asked the most knowledgeable representative very specific questions. I signed up for every thing I could possibly sign up. I asked each participating vendor if the company would provide iOS SDK Library and documentation.
I went to the pitch session to shop for an idea. After taking notes, I narrowed it down to a few ideas that I would be interested in spending 3 days on. At the end of pitch session, I joined the team for the idea I liked the most.
Our app idea is a running app that changes your music to match your running pace on the iPhone. This app is not an easy app at all -- it requires development on certain things that iOS audio frameworks won't support.
After finding a private space, my team broke the ice by introducing ourselves and giving our brief backgrounds in iOS. We had never met each other before -- total strangers. I asked specific questions about each of our experiences in specific iOS frameworks relating to our app idea. Quickly we divided our individual contributions based on skill, experience and interest.
It was 10:30pm at this point. We had roughly 1 1/2 hr left before the venue closed for the night. I asked our team fellows to kindly stay until midnight so we could get a head start. We began to research on what we could do and what we couldn't do on iOS SDK based on our app idea. I volunteered to work on the graphic artwork and UI at home until 5am. I forwarded my Xcode project to my team could take my code in the morning.
Saturday at iOS Dev Camp
Like any hackathon, there was always something happening in each team. In the middle of Saturday afternoon, my team decided to question the app idea. My team wouldn't think our app idea was unique enough to compete. Instead of staying on this discussion, I decided to make myself useful and attended the eBay session. I explained I could explore and add rgw eBay API into our app. While I was in the session, I continued to code the app. In this kind of competition, it is important to keep coding and not lose any time.
Our team spent the next 3 hours going back and forth on app ideas. I shared my learnings from the eBay session with the team after I returned. Every guy in my team was discouraged by not finding the perfect app idea. I encouraged our team to stay on the same app idea and make it to work. I suggested we worked around the technical challenge and iOS limitation. I was able to keep our team moving again and forward in early evening. We regrouped and divided our effort for the remaining tasks.
In the next 3 hours, I focused on learning and integrating the eBay API into our app. At the same time, I was helping my team members to research working solution on their parts. Team work is an important element in hackathon.
Just before midnight, we combined and integrated our working code into a single Xcode project. We discussed scenarios on the remaining unsolved tasks. I volunteered to continue working at home getting the app as ready as possible for Sunday. In addition, I prepared the entire presentation slide, the iPad for showing the slide, the iPhone device to demo the app, the portable speakers to demo the music, the arm bangs to verify and demo the app, the mp3 music to demo the music switching... I forwarded my last version of Xcode project and a list of "done" and "to-do-list" to our team at 5am.
Sunday at iOS Dev Camp
Our team worked on the final integration. During lunch, we put our app on iPhone and tested the app in the arm bang. Our team took turns running around to test the motion sensors while we waited in the long line for lunch. We captured every moment to work on the app. In our last hour, we couldn't finish a key part on the main screen. If we couldn't get this part to work, we wouldn't be able to show the eBay API -- the ability to buy songs from the app. In the last 15 minutes, I asked for help because we couldn't take the chance to break our code. Our mentor at iOS Dev Camp in the same room rushed to help us add a global delegate. We fixed another UI issue in the last 5 minutes. At this point, our team didn't rehearse once.
When we joined the audience, it had already started. The judge called my team up shortly after we just found our seats. While in line to demo, we discussed what we would say or do on stage. A few minutes before demo, we were still changing our order and roles. Onstage, each team member was able to deliver their own part well with our agreed-upon time frame. Each demo is limited to 3 minutes. I was running in spot on stage to highlight the product feature. In the last 15 seconds, I wasn't giving up and stayed until I showed our functional eBay feature. It seemed like we did capture lot of energy from the audience on stage.
After our demo, Nike and eBay representatives approached our team. It was "this" moment that we learned our app idea was not a flop but an instant "hit". At the end, we were so surprised that we won the "Best Healthcare" award. My team was very pleased with our unexpected win and such positive responses.
What It Takes to Build a Winning App - Best Practices:
Entering a major hackathon is similar to founding a startup. We may not start with the perfect app idea or perfect team. It is important to respect your team members and value each contribution. Help your team members by sharing resources. Be flexible. Identify bottlenecks.
Accept challenges and limitations. Ask for help. Even though I wanted to spend more time coding a new API, I decided to stay up two nights to complete the UI and fill in the missing designer role.
Like a startup, we must pivot our app idea many times during the development. We keep our product to Minimum Viable Product (MVP). We stay agile, scrum and extreme programming until we complete the beta prototype. We validate the app with CustDev and use cases.
I have seen many teams fall apart at a hackathon due to disagreement and fighting. Our team almost fell apart in the middle of hackathon while questioning our app idea. Sometimes all it takes is one team member to step up and inspire the team not to give up. We wouldn't have won at iOS Dev Camp if we give up too early.
At each hackathon, I work with a different team and a complete different app idea. Each app is built entirely during the hackathon. It is not easy to compete among the top and best iOS developers in 3 day event. It trains you to be a better developer and a more focus startup founder. It trains you to be a strong team member and an effective leader. Most importantly it builds lasting long term friendships and your network by working closely in a collaborative environment.
It's not luck alone to build a winning app at a hackathon. It is determination, of not giving up too soon, along with hard work.
Photo credit: PayPalX Editor's note: Got a question for our guest blogger? Leave a message in the comments below. About the guest blogger: Bess Ho is a Mobile Architect and Instructor. She has helped and advised many early stage startups on iPhone, iPad, and cross-platform mobile and web apps. She has received awards and honorable mentions from iPhone and iPad Dev Camps. She has guest lectured at Stanford, spoke at mobile sessions at Web20 Expo SF, Where20, Mobile Play, Silicon Valley Code Camp. Bess is a contributing author for "Sams Teach Yourself Twitter API in 24 Hours". Follow her on Twitter at @bess.