Last week was the annual open day for the 2nd year group project at the Computer Science School at the University of Nottingham. The open day forms a significant part of the group project module as it calls for the groups to present the software they’ve built over the last few months at a mock trade show, complete with posters, demonstrations, branded t-shirts and plenty of attention grabbing cake or sweets.
7digital were represented at the open day by Leon Hewitt and Paul Shannon, which is 7digital’s second year in attendance, except this time we were judging a slightly different prize. After previous prize sponsors decided to sponsor elsewhere we were asked, along with Esendex (a Nottingham based technology company and the UK’s leading specialist business SMS provider) to potentially provide some goodies. As we’re quite friendly with Esendex and share a similar approach and passion for software quality we thought the best solution was to pair up and jointly sponsor a prize looking directly at the quality of the software produced by the students.
The 7digital and Esendex Prize for Software Quality
We defined criteria based on the principles and practices that we use to make well crafted software. As this is the first time the students have to form a team to complete a project we didn’t just focus on the actual code either, looking at the following areas:
- Knowledge Sharing
- Team Organisation
- Code Quality
- Code Architecture
Knowing that in previous years teams generally had 1 coder, 1 UI coder, 1 documenter and someone else to manage all the work, we’d hoped this emphasis on sharing might encourage better collaboration.
We had access to the reports and source code repositories of all 26 teams, splitting the work between the two judging companies to arrive at a short list of 4. We didn’t expect perfectly clean code with great test coverage and well prioritised work flows but we did see flourishes of quality software in various teams.
Overall the quality of the software was an improvement on previous years, reflecting the extra effort the school have been putting in to talking about quality practices and agile methodologies. I heard that using test driven development is now a requirement on one of the MSc modules which is a good step forward.
Another prize on the day was given to the best overall project and that team produced a software version of a chain reactive performance arpeggiator. They also had well structured, tested code and used a Kanban tool to manage their work in progress but it wasn’t quite enough to snatch our prize.
The winners of the Prize for Software Quality though were a team of 5 that produced a Greenhouse Appliances Control System. They used unit testing and had well named classes in a decent project structure. The key part of their project that stood out for us though was the collaboration they’d had with their customers and how well the team had self organised. You could tell that the team, who didn’t previously know each other, had formed a great relationship which showed in the quality of the software they produced.
As I’d been talking about software development being as much about people as it is about the code, the fact the winning team had found a customer (their University’s bio-sciences department) that had an actual need for their software seemed to help them enormously around prioritising and delivering features. A key point I noted was that they delivered an early, working, version of the software before most other teams which allowed them to get feedback from their supervisor and new customer. This helped them only produce the features needed, and appeared to give them chance to spend time on making the parts they did make at a higher level of quality. They also managed some pair programming which was evident when you could ask any member of the team about the software and they could answer with confidence.
One final aspect of this project that we liked too was the greenhouse simulator they made to test the tool during development was then further evolved to be a part of the product – adding another dimension and use case to the tool as a whole.
While we’d been discussing the importance of software quality and the methodologies we use for some time at the university we’d never had the influence of some of the bigger partners the university has at the alumni talks. This year though was different. Well done to the organisers as they managed to get alumni from Facebook, Google and the BBC. The real coup d’état for us (and Esendex) was that they all spoke about test driven development and software quality – falling over each other to recommend JUnit and Moquito. With much more well known names repeating our message, it really increased the effect of our prize and our motivations for creating it.
We had a great day out and are really pleased to strengthen our relationship with the University of Nottingham. Seeing an emphasis in software quality making its way into the early days of people’s careers in the industry is refreshing and bodes well for the future. As an organisation with greater than 50% technical people we’re grateful that graduates have access to teaching and practice around this better way of writing software so that we can seriously consider expanding our team with even more graduates in the future. As a society though, given software is even more prevalent in almost every aspect of our lives, I’m really pleased that future software will be written with quality in mind as the next generation of developers are inspired by the examples they’re able to see at universities like this.