Only a year ago, I was a CoDe Academy student learning about Git, Docker and Jenkins. This year I’m teaching Docker to 24 students at CoDe Academy 2017 in Aarhus.
Continuous Delivery Academy? Sign me up!
I was a computer science student of Aarhus University and I’d worked as a student developer for a couple of years. Our senior developer was only a year older than me, but he seemed to have so much more knowledge. So, when I saw the post on AU Computer Science’s Facebook-page about a one-week crash course in best-practice continuous delivery and automation, I signed up immediately.
5 months later and I’m at the Academy. Lars Kruse (Partner at Praqma) is speaking and we’re 30 minutes deep into “The Bonnie Situation” watching clips from Pulp Fiction, hearing about aspiring to be the go-to-guy when companies want a better way to work. Lars refers to the Wolf as the problem solver, and Praqma’s employees as Wolves. It’s sounds awesome. The moral is professionalism through easing workflows.
Software developers are paid to develop software. We code, we test, we might fail, we iterate, we fail or deliver. Sometimes we fail several times before we can deliver. This is tedious. Humans are inherently bad at repetitive tasks; we get tired and bored. On the other hand computers are inherently good at repeating well defined steps, and fast.
“Imagine working on an issue and delivering it by the press of a button, going for a cup of coffee, and if it works, it’s deployed, and if it doesn’t, you’re notified. Imagine you or your co-developers can’t break the build, even if you try! ” My eyes were glowing. The feedback loop shouldn’t be longer than the time it takes to get a cup of coffee?! We can deliver code at the touch of a button that can’t break the build?! Awesome.
Young Padawan becomes Jedi Master
But, what I really wanted from the workshop was to learn about the automation tool, Jenkins. I felt slightly stupid displaying knowledge of Git and Docker to the teachers - why was I attending if I already knew that stuff? - but on the last day we finally got down to talking about automation. They joked that if they ran out of teachers I could always help out when they ran the Git exercises.
Today, one year later, I’m helping out with all the exercises. I’ve lectured the first half of a Docker workshop to students from all sorts of computer related studies, and in only a few hours all 24 were toying around with containers. They were SSH’ing into clouded AWS instances, running containers interactively, attaching, detaching and even hosting their own boilerplate websites from nginx images. During the second half, I watched in awe as they built their own images and were building code automated by Jenkins, raising their hands in victory!
Learning the skills that the industry needs
The workshop isn’t about developing the perfect pipeline, it’s more of a crash-course in tools, war stories and best-practices. I come from a basic knowledge of Linux and Docker, but even a student that’s never touched a terminal will be building a basic robust pipeline by the end of the academy - it’s amazing. Obviously, there’s more to the pipeline of a company than what can be taught or built in a single week, but having seen, built and worked through an example encapsulating the steps, it goes a long way to replicating the experience.
War stories is more than just a cool term, some of them actually are “fun” horror stories of what we should have done differently in the real world. Hearing war stories gives us real life examples of how better practices could have rescued nightmare development scenarios. Students that spend their holidays with extracurricular exercises in best practice are interesting to companies that want the best graduates. Sponsors during the week held talks about how they have set up their delivery pipelines, what they’ve learned, and what they’re doing to develop code better. It’s advertising, but it’s also genuinely reassuring to find that the things we’re learning and teaching are being used, very much, in industry right now.
The Happy Developer
I met Praqma for the first time one year ago. I’d signed up for CoDe Academy 2016, simply curious about Jenkins and automating deployment, but what I ultimately ended up with was a deeper understanding of delivering code. I discovered the concept of the happy developer by spending time on the fun parts of development and not the tedious ones. We joked, next year I should be there, with a job at Praqma, teaching. I don’t take a challenge lightly, and plan on teaching for years to come.
After attending the academy as a student I wrote a very concrete blogpost about implementing Praqma’s abstract “praqmatic workflow.” They viewed it as a job application. I went on to apply my acquired knowledge as a consultant and taught a couple of senior developers how to work with Git. I even managed a small project before I finished my Masters’ degree and finally applied properly at Praqma.
The blogpost I wrote can be found here.