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.
We never lose! Teams for the win!
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!”
What did you like best about CoDe Academy?
“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!”
Thanks to github
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!