For quite a few years now, Redgate has had the pleasure of taking a group of software engineering interns to work directly within our product development teams during the summer months. These interns are usually 2nd year undergraduates in computer science or similar discipline.
The other quality coaches and I provide support to our development teams, and this year we decided to provide some training sessions for interns to help them learn about software quality.
These sessions were really successful and received well by the interns. Following this, Jeff Foster (Head of Engineering) approached us and said Anglia Ruskin University were looking for guest lecturers on their Computer Science degree course, and would we consider moulding the sessions into a lecture. Sure… why not!
Fast forward a couple of months and there we are, myself and Jose, stood in front of ~70 2nd year computer science students at 9am. Both Jose and I have delivered presentations at international conferences but delivering a lecture was a first for us, and it felt kinda cool! I only vaguely remember 9am lectures, because it was a very long time ago, but also because… well… 9am!
The title of the lecture was “Quality in Software Engineering” and the premise was really to give the students some high-level knowledge of what quality is, and where quality applies when creating software. (spoiler: everywhere!)
We started off by getting the class to spend a minute thinking about what quality means to them in one or two words. We then horrified the students by randomly picking them to share their thoughts, although they did get a small bag of Haribo for sharing! We had answers like reliable, good looking, strong, easy to use, it works, all of which are right because the point of this exercise was to show that quality means different things to different people. This was a message we repeated numerous times through the session.
The rest of the session covered some of the fundamental quality principles in Agile development, in particular the focus on small feedback cycles. We related this to other areas, not just code. But in context for the students, getting a piece of their code peer reviewed would be a fairly easy way to get feedback. If you can’t explain the code clearly enough, then it’s not good quality!
Other areas we covered included the relationship between testing and quality (something we could give a whole different lecture on!), tips for code quality and how it fits into a devops environment. We also gave a brief and honest account of Redgate’s Agile journey, explaining how we claimed to be Agile from 2008, but it’s only really since 2017 that we’ve truly embraced the principles (thanks to Chris Smith for his great Agile journey slides!).
The hour went surprisingly quickly, and we had quite a few questions afterwards mainly focused on our intern programme, and we have since heard that the students have been talking about it and motivated to find out more.
It was a really great experience for us, and something we would certainly be keen to repeat.
You can see our slides on slideshare.