This week we had the first CoDe Academy, hosted at NTNU in Trondheim. We had 64 students sign up for the event - and given this is the first week of summer vacation, you have to admire their dedication!
We created CoDe Academy to stronger ties with students and faculty in the university. We believe the best way to create such a friendship is to share valuable learnings from the industry. So we took our best training material and crafted a course aimed at teaching students the best modern software development practices.
We base the curriculum around our CoDe Storyline. We want to teach the world the best way to develop software, based on everything we have learned as an industry. That means that we want to work on groomed tasks, test our software automatically, use powerful version control systems, define infrastructure as code, and - of course - automate our entire process.
We start by digging into agile thinking. It is strange to think that the biggest problem we have solved in the last 20 years is to answer the question - how do we know what to work on next? Well, there are many ways teams solve this problem - but the common theme in all modern agile planning is to refine tasks that are small enough to create momentum and prioritize them according to value. That is why Agile Task Management is our first port of call.
Now that we know what to work on, how do we do our work? That is where Test-Driven Development comes in. We want to make sure we have actually created the software we thought we were making!
Ok, now we have working code - how do we share it with others? This is where git and github come into the picture. We teach git. And I mean really teach git. Students learn everything, from first principles to advanced branching strategies.
Where are my tools? Now we can share our code - how about we share our environments!? The next stage in the process is to make sure everyone and everything is based on a common environment. We teach students how to define development and runtime environments based on docker, so we can develop, build, test and deploy a consistent product - all based on code.
Ok, now we have code, we can share it - but how do we play nicely with others?? That is where continuous delivery and automation fit in the story line. We show the students how to automate the integration, build, test and deployment of their software using jenkins as our automation engine.
So now we know what to do - let’s put all we’ve learned into practice! The final day of CoDe Academy is to work in teams to create a complete development environment for a project, and to develop it according to agile practices.
Students take responsibility for planning work and sharing code with github, writing tests, developing and testing with Docker, creating a build and test infrastructure in jenkins, and automatically deploying to production. What a wonderful week!
“Friday! Friday was the best day, with teamwork, tasks and challenges. Very fun day!”
“I think it’s really cool that we got a full week of professional lectures in real world technologies!”
“I learned skills i did not know I needed. Great! i also learned that the skills taught in this course is applicable to my fields of interest. Also, the teachers were helpful and inspiring.”
“This week gave me a whole new perspective on software development: it can be automated and it can be done in a way that is really powerful. Also the idea of test-driven development is a really powerful idea: You think about your class or unit of code as a black box and by writing the test you say “I want the class to behave like this”. So you fail the test, write the code, refactor it, and repeat. I love it! It’s such a structured and nice way to do software development. So thank you guys for introducing me to these two ideas in such a good way!”
And once again - we must give a shout out to github for making this possible. Without their support as technology sponsors none of this would be possible. So here’s to our octocat friends!
What testing steps should you include in your Continuous Delivery pipeline? Don’t just string together existing manual processes - use simple, collaborative tools to design something better!
Pipeline - The Game that Delivers!
A new card game to design Continuous Delivery pipelines
Continuous Delivery at Kamstrup
Kamstrup partnered with Praqma on their journey to Continuous Delivery
Jenkins is one of the best adverts for open source and at Praqma we have been using it since the very beginning. We enjoy giving something back to the community by hosting Day of Jenkins, and this year’s event was packed with exciting developments. Read on!
Celebrating Jenkins and open source collaboration
Day of Jenkins [as code] - A summary
Continuous Delivery and DevOps are here to stay and not because they’re being practiced by trendsetting unicorn companies. The fact is science tells us that these approaches work and this year’s conference gave us lots of examples.
Continuous Delivery and DevOps - Not Just For Unicorns
DevOpsDays Copenhagen 2018 was a great success. Inspiring talks and a pleasant community. I had the pleasure of being the host of this event. I decided to kick off the event with a song about DevOps. See the video and lyrics here.
The DevOpsDays Copenhagen 2018 Song
A whole new (DevOps) world
Once again the contributors and major players in the Git ecosystem are gathered. Read along for news, announcements and stories from Git Merge 2018.
Report from Git Merge 2018
Blogging from the Git Merge Conference at MACBA in Barcelona
A developer that pushes their changes and goes on a celebratory walk to the water cooler is done. But, they’re not done done, their changes have yet to be thoroughly tested, added to future release notes, properly peer reviewed and more. These are pains we want to rid the software industry of, and here’s how we do it.
A Continuous Delivery storyline
How we tell the Continuous Delivery story
We strive to continuously improve, so the 8th gathering in our Continuous Delivery Alliance will feature all the good things from the 7th meeting in a slightly evolved format.
CoDe Alliance goes code camp
Continuously improving our format
We had our 7th gathering in the CoDe Alliance a few months ago and have worked to distill and evolve many of the good ideas that came out of our sessions. Our aim is to turn our interesting discussions into tangible projects and running code.
The 7th gathering
What’s next for the CoDe Alliance?
Immutable infrastructure as code reduces inconsistency and makes deployments faster and easier. We can provision immutable infrastructure with Packer & Terraform. Let’s use them to provision Jenkins Windows build slaves.
How to provision Jenkins Windows build slaves using Packer and Terraform
An immutable infrastructure approach
Albert Rigo shares his thoughts on the Atlassian Accelerator Day in Copenhagen, and how he learned to quickly and comfortably scale Atlassian Data Center, upgrade with zero downtime and stop spending his weekends upgrading JIRA.
Atlassian Accelerator Day in CPH
A day to learn how to scale fast and upgrade without downtime
Hear about upcoming events in Scandinavia, latest tech blogs, and training in the field of Continuous Delivery and DevOps