I had the great pleasure of participating in the first Hawaii Annual Code Challenge, held from August 27-September 24, 2016. The goal of HACC is to “engage the local tech community in the modernization of Hawaii State Government” through a month-long hackathon to develop solutions to a pre-selected set of problems faced by community organizations. Here were the choices for 2016:
|Oahu Community Correctional Facility
|A more efficient way to schedule over 300 visits per week by over 8000 approved visitors
|Hawaii Farmer's Markets
|A centralized portal providing information regarding 200+ markets statewide;
|Hawaii Agriculture Food Products
|Increased visibility and access to locally grown products
|Department of Health
|Help people with disabilities to compete more effectively for jobs.
|Help homelessness outreach teams respond more effectively to community referrals.
|Department of Community Services
|Provide a yelp-like application that enables the elderly and their care providers to find services.
I’ve been involved with many hackathons, but several things about HACC make it stand out:
A focus on helping pre-selected community organizations. Many hackathons adopt one of the following two organizing principles: (1) create an app to illustrate a viable business model; or (2) create an app to exercise a technology recently developed by the sponsor of the hackathon. While both of these approaches can be fun, it is refreshing to have a hackathon focus on specific, important community problems and ask the technology community to addresss them as best they can, regardless of whether the solution would appeal to a venture capitalist or utilize some new tech hack.
A month, not a weekend. Many hackathons are 24 to 48 hours long. Such a short duration limits how ambitious a team can be. A month provides more time for research into problem areas, stakeholder engagement, and application refinement.
It’s about Hawaii, not Silicon Valley. Many hackathons have an implicit focus on what would sell in Silicon Valley. HACC is all about Hawaii. I love that.
I went to the HACC kickoff event just to see what HACC was all about. Within a few days I found myself on a team with McKay Davis, Cam Moore, Kelemete Seto, and Mike Peacock. We took on the challenge of creating a scheduling solution for OCCC and implemented a system called Kipa using Meteor and Semantic UI.
Here is a one minute video illustrating the essential features of Kipa:
I am pretty happy with Kipa:
First, we put a lot of design effort into usability. We invested significant time during the month to learn about the OCCC visitation process. One important insight: visitors are usually not technically sophisticated, and may only be able to access a computer at a library. However, a survey we conducted of actual OCCC visitors revealed that most have cell phones with text messaging and would like to use that to communicate about scheduling. Kipa recognizes these constraints and uses SMS whenever possible for communication.
Second, as with virtually any scheduling scenario, there are organization-specific scheduling “gotchas”. As one example, we learned that the 10:00am and 10:30am slots are reserved for female detainees. To enable Kipa to adapt to current and future scheduling peculiarities, we implemented an extensible set of “hooks” to support scheduling constraints.
Third, the application exploits the reactive nature of Meteor, and works well across platforms (desktop, tablet, mobile).
For details on Kipa, including a walkthrough of the system, screen shots, and access to the code, please see the Kipa Home Page.
See the DevPost HACC Submissions Page for links to all the project submissions for HACC 2016.
I am already looking forward to HACC 2017, and encourage every ICS student to participate. Here are some thoughts that I hope will make your experience better.
1. HACC is a super efficient way to build your professional portfolio. Why do HACC? Because in just one month, HACC can provide you with a new, significant project for your portfolio (see mine) showing how you worked in a team to build an interesting solution to an important societal problem. You don’t have to participate in HACC purely out of altruism for Hawaii; you can also do it out of self-interest. Participation in HACC will improve your marketability and maybe even help you land a higher paying job after you graduate.
2. Pick one project and commit to it. Some people participated in two or three HACC teams simultaneously in 2016. After seeing the results, I don’t recommend it, because during the “crunch time” (i.e. the last week) you’ll have to split your time between multiple projects just when each project (and team) is hoping for your undivided attention. I think it’s better to put all your eggs in one basket and create the best possible single submission.
3. If at all possible, build a team that includes a videographer. Now that you’ve watched my little screencast about Kipa above, compare it to this video from the winning team:
Wow. There’s just no doubt about it: this video is stunning and head-and-shoulders above every other team’s video submission. The video is not just technically impressive; it tells a story about the project. The actual Ohai application only implements a few static HTML page mockups, but the team did a superb job of communicating stakeholder requirements.
4. A mobile CRUD app is the baseline. Most of the competitive submissions implemented a CRUD application that could be displayed on a smart phone. Any student who has taken ICS 314 will have more than enough background to satisfy this baseline criteria for success. If you haven’t taken 314, find someone for your team who has!
5. Augment your mobile CRUD app with some special sauce. A month provides you with enough time to develop your app beyond CRUD. For example, Kipa extends a mobile CRUD app for OCCC scheduling with three special sauces: (1) reactivity, (2) text messaging for communication, and (3) an extensible constraint system.
Fortunately, the ICS degree program provides a wealth of material for you to apply to your HACC project, including: security, recommendation engines, advanced visualizations, concurrent programming, machine learning, robotics, game mechanics, medical informatics, etc. You might even consider using Raspberry PI or Arduino boards to craft an Internet of Things solution.
6. Try to have users. A month is plenty of time to build an initial version of your application and obtain user feedback. Depending up the organization and application topic, you could release your initial version after two weeks, and grow a community of 10, 100, or 1000 users by the end of the four week hackathon period.
7. Get ICS credits for HACC 2017. I plan to offer a 3 credit ICS 499 Independent Study course in Fall, 2017 for students who wish to: (1) participate in the Hackathon during August and September, then (2) continue development of the application for the remainder of the semester. Contact me if you’re interested.
8. Build it for Hawaii and for your portfolio, not for the judges. It’s hard to be a judge for HACC: they have very little time to evaluate the submissions, and (at least in 2016) there were a lot of final submissions to evaluate. I learned from veteran hackathon participants about “strategies” to make the submission more superficially appealing to judges. My advice: don’t play the “game”; just build the best possible system that you can in the time you’ve been given.