Introduction to deCODE:
deCODE is a hackathon presented by the Legacy Conference, an event for would-be entrepreneurs. At deCODE, startup companies are paired with participants, mainly students, to work on real-world challenges. Unlike most hackathons, this one is guided in the sense that the startup defines the scope of the work and coaches the participants. However, participants still have a say on how they approach the challenges. This is a great opportunity for the participants to get a sense of real-world design problems while working closely with industry insiders. The participating companies, like Klipfolio, use this event to get to know more developers, get their name out there, practice their coaching skills, and spend some dedicated time delving into the challenges ahead.
This blog is about our experience at DECODE’16 and the value that you may gain from participating in this type of event, either as a hacker or an industry coach.
Team Klipfolio’s project
In our current dashboarding product, users monitor particular visualizations and KPIs important to them. Users take the required actions when the KPIs fall outside their targets or when the visualizations do not show the expected patterns.
The goal of our project at the DECODE'16 hackathon was to experiment with and learn more about developing an alerting system. In our context, we want to monitor a stream of values looking for a set of defined metrics based on a set of defined rules. If the values meet the conditions, as defined in the rules, a notification is sent. Having alerting in place for monitoring use cases allows hand-off monitoring and helps users to take actions immediately. In our deCODE final demo presentation, we called it an an “Autonomous Data Monitoring System”.The above diagram shows the data flow and components of the system. The two green boxes in the diagram are the target microservices that we worked on during the hackathon.
So how did the event go?
We actually started the night before the first day on the slack channel that was created for us by the organizers. We used polling on slack to decide on the main technology of choice. The team decided on using Node.js. With the technology decided on, we started sharing some reference material over slack to get everyone going that very night.
After introductions and the project intro, we divided the participants into two groups focusing on the target areas defined for the project (see the above diagram): 1) Rules service 2) Notification service.
Each group brainstormed and came up with a list of tasks. Some participants were already familiar with a Kanban board and for the others, we explained the concepts and helped them to set a board up for their project using sticky notes. This was a good coaching opportunity to show participants how projects can be managed and tasks can be broken down in an effective way. Later a few of the participants told us how observing the use of sticky notes and the Kanban board approach was a good learning experience for them.
After the teams were up and running, we brought the groups together to discuss the interface between the two services and the payload schema. We suggested that each group select an ambassador to facilitate the integration and conversation between the groups in order to arrive at an end-to-end green path working demo by the end of the first day. We also discussed the microservices architecture and how each team would need to behave like a customer of the other’s service.
Then the groups got to work and started the implementation. After just a few hours, the groups started to gain some momentum and make progress on the main parts. We had a break at 2:00 PM so that we could listen to a presentation at the Legacy Conference. Afterwards, we challenged the groups to come up with an integrated end-to-end demo before dinner. They were up to the task and by the end of the day we had a working demo ready for refinement on day two.
It’s worth mentioning that on both days of the event, Klipfolio CEO, Allan Wille, paid us a visit and had some one-on-one conversations with team members. He was impressed by the way a group of strangers from different universities were able to collaborate on solving a real-world problem.
On day two, the groups started early in the morning in a different room as per the organizer’s instructions. They focused on moving the implementation forward before pausing at our request to brainstorm on what the demo would eventually look like. They had many great ideas but in the end they decided to:
- Create a slide deck to talk about the project goals/value and set the context
- Show a live demo of the app
- Use Twitter as the live data source
- Use the following demo script: User sets up a rule to monitor a Twitter account for a specific hashtag and sets the notification to be sent to a slack channel whenever a tweet containing the defined hashtag is tweeted.
The brainstorming session helped the students understand how they wanted to present their work and keep them focused on their target demo.
A few hours later, we checked in on their progress. It turned out that while things were moving forward, there were some technical challenges around the Twitter API call limits as well as the usage of a library called “angular-form-schema”. Klipfolio coached them through some of their technical challenges and helped them to decide where to compromise to make sure they’d have a working demo.
Even though we scaled back on a few technical items, the groups managed to develop a working demo. It was was all the more impressive given that they had only two days to work on it and they had never worked together before.
How did deCODE help students gain real-life experience?
The following points stood out for us as the learning points for the participants:
- Kanban/Scrum style agile project management
- Brainstorming and sticky note sessions
- Dealing with API integrations and design
- Node.js coding and async style patterns
- Public speaking and demo
- Modular system design
- Deadline pressure
- Team building
As you read, the candidates were exposed to the above topics in this two day workshop, which is quite impressive.
What did the Klipfolio team learn from this event?
We found this was a great event and we would definitely like to attend and host similar events in the future. The main benefits of this event for us include:
- In-depth exploration of the problem area: alerting
- Networking and brand recognition
- Mentoring and coaching practice
- Team bonding
Tips for participating in similar events
Here are some takeaways for us from the event that we might be of interest to you, if you are thinking of attending a similar event:
- While setting the context, give freedom to participants to choose what they want to do
- Have a project definition that can be shared with candidates before the event
- Have the tools you need for brainstorming sessions e.g. sticky notes
- Participants are there to learn, so use the two days to coach them
- Create a kick-off presentation to set the context on day one
- Settle on the technology of choice quickly
- Unblock and lead the participants when necessary but remain hands-off
- You are representing your brand, be yourself and be at your best
- Give employees the opportunity to use the event to practice coaching
Given the overwhelmingly positive outcome of participating in this event, we are determined to be one of the sponsors again next year. What’s more, we are seriously considering participating in other similar hackathons, both for students and professionals.