In 2017, I attended my first hackathon and had such a good experience that I wanted to do it again*. In 2018, again a part of team admin/b (this time with Dan Solovay and Erica Stockwell-Alpert), we dove into xConnect with a mission to make the world a more civil place (which you might not have guessed from my twitter feed and the number of Swear Trek gifs I posted during the hackathon).
*I even wanted to lead a team in 2018, but was unable to do so for stupid reasons. My town holds a Daddy-Daughter Dance every year for kids in elementary school. Both 2017 and 2018, the dance was scheduled for the same night Sitecore Hackathon was scheduled. Obviously, the dance comes first, and I can't really lead a team if I'm to show up two hours late. The stupid part this time was that the dance was postponed for weather reasons, so I could have led a team anyway.
I then wrote up a lengthy blog post about my experiences... and never published it for some dumb reason. I just stumbled upon the draft when going to write a 2019 Sitecore Hackathon post. Waste not, want not; this post is a combination of my observations and recommendations from the two years.
Our effort in 2018 was titled "Civil Discourse Module", and I thought it was a pretty cool idea. The "CDM" was a commenting module that would scan submitted comments for previously-defined words that are not conducive to civil discourse (e.g. curses, politically-charged words). It would then highlight those words and give the user a chance to correct their language. Unfortunately, we didn't finish, which was a bummer, because (like 2017) I think this could have been a really cool tool. Failure is the ultimate teacher, and it sure taught us some good lessons this time.
In 2019, I led* a team for my first hackathon from my new employer, Rightpoint. With me this time were "Sitecore Snacks" Chet Potvin and "Sitecore Gabe" Streza. This year we honed in on Universal Tracker (UT), a brand new product from Sitecore to replace the existing tracker and allow for aggregating user behavior from just about any device. Our increasingly frustrating efforts to set up UT lead to our final idea of Universal-Less, a simple app to aid in setting up a local instance of UT (in the vein of Rob Ahnemann's SIF-Less). I'll let Chet explain more about the product in his yet-to-be-published blog post (or you can check out our submission video), but suffice it to say, again I feel that we came up with a really cool idea that could live on past hackathon.
*To say I "led" the team is a bit of a stretch. Yes, I recruited and organized the team (as well as the other Rightpoint team, JSS Start). But once the hackathon starts, I found that our team needed little leading and only occasional nudges to stay on target.
Thinking of doing a hackathon? Here's what I've learned that might help you.
Preparation: The most important lesson I learned was to be prepared. 2018 was the first hackathon using Sitecore 9, and as you all know by now, installing SC9 using Sitecore Install Framework isn't as easy as firing up SIM and clicking a few buttons. In 2018 we wasted an absurd amount of time simply getting SC9 running on our local computers. However, by 2019 I learned my own lesson and confirmed I could spin up new SC9.1 instances at will with SIF-Less.
But don't be evil like this guy.
Prepare specifically for SIF: It's been covered to death, but SIF is a beast. Get one little thing wrong and the process will fail, potentially leaving you in a half-installed state that you have to clean up before trying again.
- I really like the promise and idea of SIF, but the tool is cumbersome for developers who just want a local SC9 instance. Consider using the aforementioned SIF-less, a tool built by Rob Ahnemann to ease developers' pain from installing SC9.
- Guessing the Topic: Sitecore Symposium is always a few months before the Hackathon, and you can be sure that the Hackathon categories will be related to the top cool/new things that Sitecore shows at Symposium. Both 2018 and 2019 were no different; new entries like xConnect and JSS (2018) and Universal Tracker (2019) were present as well as the existing-but-still-exciting SXA. Spend a little time reviewing the high points of Symposium so the Hackathon categories are not foreign to you.
- Iterate, Iterate, Iterate: When I was getting my masters in engineering management, the professor had us run something called the Marshmallow Challenge. Basically, your team will have 15 minutes to build a structure out of tape, dry spaghetti, and string that will hold a marshmallow as high as possible in the air. We all had a blast (and some teams even ended with a working structure). The interesting part was when the professor showed us that the 2nd best performing group (behind structural engineers) was elementary school children, because the kids mercilessly iterated over and over again, quickly discovering what worked and what didn't*. Hackathons benefit from the same rapid iteration; quickly try things, see what works, and what doesn't, then move on.
*One of the worst-performing groups was CEOs. Interestingly, when the CEOs' administrative assistants were added to the CEOs, the group performed remarkably better.
Be Flexible: Brainstorming ideas ahead of time is a great idea, but be ready to throw those ideas away if they don't work. We came up with some general ideas ahead of time, picked one at the start, threw it out once, refined it, then finally settled on one.
Be fleixbile... but maybe not this flexible.
Be Decisive: However, don't be so flexible you waffle back and forth never settling on a plan. 24 hours isn't that long, so once you settle on an idea, attack it without looking back (at least, till you hit a wall and have to backtrack).
- Be Comfortable with Awesome Mediocre-ness: Twenty-four hours and three people is not enough time to build the next Unicorn or Glass Mapper. You have time to make an MVP (minimally viable product) at best, a happy-path PoC at worst (well, more worst is not finishing; according to Jeff L'Heureux, over 50% of 2019 Sitecore Hackathon teams were disqualified or did not finish.) Take your grand ideas and stuff them somewhere (if you must, put them on your Github's issues page for future consideration) because you won't have time to do them.
- Feed the Beast: 24 hours is a long time. Bring plenty of food. Snacks are good, but nutrition is also valuable. Some of you may be able to survive for 24 hours or longer on Doritos and Mountain Dew, but those days are way behind me. Trail mix is my personal favorite, along with chocolate-covered espresso beans for extra alertness (deployed tactically as needed).
- Perhaps most importantly, HAVE FUN: Hackathons are your own time, so make sure you are enjoying yourself. Tweet the #SCHackathon hashtag with gifs and jokes and pics, laugh with your teammates, joke with other teams in the Sitecore Community Slack, hide easter eggs in your Github docs*, and smile.
*OK OK, you're right, putting links to music videos from the 90's isn't exactly hiding easter eggs.
Still excited about Sitecore Hackathon? Good! I'll see you in 2020.