Written by:  

Daniel Koops

Pre-hackathon 2018

Last Tuesday I attended a trial of a continuous delivery (CD) hackathon that will be hosted by Itility on 21 March. It’s not just a silly event to show of your coding skills: you can actually win prizes including a 5 day, all inclusive, train journey to Berlin ending at Europe’s leading interdisciplinary technology festival: Tech Open Air (TOA). 

You can not only win one of these tickets and be part of the Itility Hackatrain team, there is also the opportunity to win a software traineeship at Itility’s HQ.

The goal of the hackathon is to setup continuous integration (CI) tests for a small NodeJS project and to build a continuous deployment (CD) pipeline that automatically deploys the project to test, staging and production environments when pull request are accepted. The CI tests will be limited to build a production build when the linting of the source code succeeds. 

CI/CD has many advantages, one of which is speed and quality. Traditional software deployments can take weeks or months to complete as software changes are collected in a big release, tested for defects and regressions on a staging environment and a lot of people in different teams were needed. When teams work together to automate the build and deployment, environment provisioning, and regression testing processes, developers can incorporate integration and regression testing into their daily work and completely remove these phases. When developers have automated tools that discover regressions within minutes, teams are freed to focus their effort on user research and higher level testing activities such as exploratory testing, usability testing, and performance and security testing.

Hackathon trial

During the trial we collaborated with a small team of 3 persons to work on the assignments, that consisted of 3 mandatory user stories and one nice to have bonus user story. In the beginning I was a bit skeptical about the achievability, but the project and the assignments itself were fun and the instructions simple enough so we did manage to setup a pipeline rather quickly. As a seasoned developer I’m used to having an automated continuous integration software street for my day to day activities. Often this was provided by one of the other team members and I would only do some fine-tuning where needed. My personal experience in setting it up from scratch was very limited; I still deploy my personal hobby projects with a combination of Ansible on some preconfigured VPS systems.

Conclusion

Hackatrain winners hackathon 1 v1.0 070318-1So this was my first time setting up an enterprise grade deployment pipeline. It was a lot of fun, especially when you see it in action with a successful deploy the first time. Our team completed 3 of the 4 goals in the given time: I’m very proud of my team as we won not only the hackathon trial but also enjoyed a good dinner, enjoyed some quality time with like-minded experts, drunk some beers and achieved eternal glory!