In the spring of 2024, FrontValue went on a Hackathon to south Limburg. We were there to learn about all kinds of aspects of our daily job and how to get even better at what we love doing. The most important values of FrontValue are quality, knowledge (sharing) and fun. A Hackathon is the best way to combine these values. We’ve rented a big house in the south of Limburg where we are surrounded by wonderful nature and a luxurious interior.
The beginning
It all started with the idea of having a fun time together but with the main goal of learning new things. I’ve sat with a colleague to think of learning objectives. What do we really want to learn during these days, that we can directly use in our daily job.
The list:
- Experience a complete setup of an enterprise application
- Exposure to new technologies you’re not using day to day
- Software processes like scrum to manage priorities and have some structure.
- Communication between teams to align features and requirements
- Grow as a team
First day
Evening
On the first evening we gave the teams a short briefing on the assignment. The core concept is an application on top of the
and create a dashboard to show flight schedules, a map to show current flights and (still a secret at this point) a delayed flights overview. This application should be fully automated in terms of testing, deploying, publishing and upgrading.For these requirements we’ve started with a Nx Monorepo. In there we have two applications, one React and one Angular, and one library that contained shared components which are build on top of Lit elements. With only this small scaffolded project the team was divided into two smaller teams. A funny fact to notice was that some colleagues choose for their safe place in the tech they know, others directly choose the opposite and want to learn all secrets. With the base requirements the teams started eagerly on their designing phase and what needed to be built. Tasks where distributed over teams and they (thought 😅) they had a good plan to start and make the project a success.
Second day
Morning
The morning after we didn’t start coding (well most of us) and took off to first do a team-building event to get rid of the I’s and become real teams. The event was sheep herding, and we saw both teams growing every minute they spent with controlling the sheep (or was it the other way around?). This event gave me some insights into how people work together and how to quickly gain trust in each other. You need the people around you to control the sheep and guide them in the right direction. This is basically comparable to the product backlog where you as a team need to make sure stories are handled in the correct order with the result we expect. The same as sheep, stories escape, explode (not literally with sheep🐑) while working on them, don’t meet your expectations, etc.
Afternoon
After returning to our villa, the real hacking and cracking started and teams took deep dives into the new apis, monorepos, architecture and quickly started to book some results. What the teams underestimated was the time needed to get a production ready product instead of a manually deployed MVP. Within teams, you saw the eager need for DevOps growing because we need infrastructure to deploy, test and integrate all the pieces. As a developer of one of the teams I did see the need increasing, but I wanted the teams to find out themselves. One team started on the DevOps side, but the other team wasn’t aware. After a while, this resulted in a mismatch of what both teams thought they needed. And of course right at that time: DEMO time 🎉. As you might already see coming, the demo was a mix of “it works on my machine”, “I can show this small part, but it’s purely technical” and “this worked about 5min ago, why not now 🤬🤯”.
Evening
After a long day of coding we stopped for some nicely prepared Turkish dinner and celebrated Eid al-Fitr together with some of our colleagues who did the fasting. This dinner was interesting for two reasons. The first reason was the bonding that started during the day and the trust in each other which really, resulted in a great team feeling. Secondly, after some time, we still are developers who are solving some hard stuff, the technical talk started. Because both teams came teams together at diner, some interesting discussions started and the teams saw that they lacked communication during the day. It turned out that both teams were fixing the same issues and tackling the same challenges. For them this was the point where two teams didn’t really exist anymore. Both teams started to work fluently together and building things only once. Cross team expertise was bundled and right after dinner (till very late), the productivity started to really take off.
Third day
Afternoon
At noon on the second day, the next demo was planned. Compared to the first demo, this one was better organized and while there wasn’t a production environment running yet, there was way more to show. From the organization side of the hackathon we decided that besides the two applications currently being built, the Product Owner wants a third application integrated. This application should show the delayed flights, but it needs to be written with Vue. Quickly a new task force (as I like to call them) was pulled together, and they started.
After the demo, I started to notice something. People and teams became a little overconfident in the great successes they’ve created so far together. So while having lunch behind the laptops (that’s how developers lunch apparently), people started to become silos again. Focus on the result, focus on the deadline of 5 pm. “We can do this” was the team spirit, but the work started to turn into islands again. After a while I started to ask how the integration part of all the apps was coming along. Some people pointed at one of our colleagues, “he is working on it”. Apparently, he was working on it, but also was stuck for some time.
How could this happen after the great vibes and team feeling from the past 36 hours? Personally, I think that people started to feel the pressure of the deadline coming closer and closer. They lost the helicopter view on all the things that needed to be done, in order to have a fully functional application. Communication was “dropped” because that takes a lot of time, and we need the time to program. As you can already guess at 5 pm demo time… Every one of us was trying to convince the Product Owner to postpone the demo for 30 minutes (turning into 60 minutes). We were waiting for the final build to be deployed after about five other PR’s that were merged and deployed 🤞.
Final result
The final result of the two days of hard work was astounding, considering that many of us didn’t have experience with the technologies being used during the hackathon. Every individual project what was requested was there. In the app you can search for flights, track flights on a map and see delays shown on the screen. If you’ve read the previous sentences, you saw the words “individual projects”. They are all deployed from the Monorepo and accessible from the homepage. However, once entering the applications some of them were not completely working as expected anymore. This was also an important lesson learned by all of us. Even when you work your ass off to make a deadline, don’t forget to keep communicating about the overlapping subjects! It will benefit more in the end to have 90% of the features fully functional and working than having 100% of the requirements but only 80% is integrated and working.
Thanks FrontValue for providing this awesome learning experience and the fun we had together!
Are you also interested in joining our next Hackathon, feel free to
and who knows!