Industrial mentoring in software engineering
Through the Department's collaboration with industry, we provide an innovative course that teaches software engineering to second year computer science students.
The industrial mentoring programme involves over 200 students working in small teams of six over a 12 week period with the support of a professional software engineer who mentors the team. Students build, test, modify and refactor an open-source multi-user, multi-threaded, client-server application with thousands of classes, more than 2000 test cases and over a decade of commit history.
For many students, it will be the largest software project they have worked on to date as they make the challenging transition from greenfield software development to brownfield development.
As part of the course, students use a toolchain of Eclipse, Git (GitLab), JUnit, Apache Ant, and Jenkins, to manage build automation, test automation, issue tracking, version control and code quality. The course has been designed specifically to prepare students for the realities of modern software engineering.
The following organisations have supported us in designing and implementing this scheme: ARM, Avecto, Barclays, the BBC, Blaize, CDL Software, CodeThink, Code Computer Love, DataCentred, Digital Bridge Ltd, EGN Digital, Farm Digital, The Hut Group, IBM, Koder.ly, Morgan Stanley, NCC Group, On The Beach, Rental Cars, Sage Group plc, ThoughtWorks and Zuhlke.
These employers have contributed to the industrial relevance of the course unit for our students by giving them access to an industry professional who can discuss (among other things):
- The range of career options available to graduates with particular flavours of computer science degrees.
- The realities of being a software engineer in today’s industry.
- The skills and knowledge needed to compete effectively in the current jobs market and to succeed in the future.
- Typical tools and techniques used by software teams.
- Specific technical insight, on questions like what makes a good test, and what makes a good commit message.
Mentors primarily interact with their teams by coming into the University to work face-to-face with students for one or two sessions, although other forms of communication are also possible. We ask mentors to meet with their teams twice in one semester, with an optional third encounter at the end-of-semester assessment showcase.
How to sign up
If you'd like to get involved in mentoring, please get in touch with the Department's industrial and business contact by following the link below.
The mentoring scheme is run once each academic year, in semester 1. Within a single semester, we ask mentors to interact with their teams at the following times:
- First session: week 3 of teaching (October) - We’ll ask mentors to come into the University to meet with their teams and kickstart the mentoring relationship during this week in October. By default, mentors will come to the University for a 1 hour period, during which time they will spend an hour with the team assigned to them.
- Second session: week 7 of teaching (November) - We’ll ask mentors to come to the University for a second meeting with their teams during this week. Ideally, mentors will be able to come for a 1 hour visit, and will meet with the same teams they met earlier. However, we recognise that this commitment might be difficult for mentors to make, and therefore we’ll offer a number of other options for this second meeting. If a mentor cannot visit the university in week 7, other arrangements can be made.
Mentoring could be beneficial to employers in several ways, including advertising their company, building relationships with students, and - importantly - improving the quality of the entire cohort by helping to embed good software practices early on. It can be beneficial to junior developers to put mentoring on the CVs as it demonstrates continuing professional development (CPD), that allows mentors to progress in their careers as well as mentees.
An optional showcase session at the end of the semester will provide an opportunity for mentors to assess all the teams presenting (other than their own mentees), which will provide contact for employers with a wider group of students for recruitment.
To prepare mentors for the scheme, a short mentor guide is available. If you were not able to attend one of the mentor orientation sessions face to face, the slides are available which give more background to the general aims of the mentoring scheme.
We will ask our students to take the initiative in asking questions and posing topics for discussion, and will give them guidance in preparing to get the most out of their mentor’s time. But we’ll also give mentors a “crib sheet” detailing issues that the students are currently facing, just in case a mentor has to deal with a particularly shy team.
Mentors can discuss their own personal experiences in the software industry, as well as giving careers advice and help in preparing for job applications and the recruitment process. They can describe the toolsets in use in their own and other organisations, and the skills needed of a good software engineer. They can talk about different software processes and dealing with team working challenges.
Mentors can also provide technical help, subject to the following important caveat:
We ask that mentors don’t make any attempt to help students directly with their assessed coursework, for this or any other course unit.
It would naturally lead to an unfairness in the assessment process if some teams receive direct help from an experienced and talented industry professional while other teams do not. More importantly even than that, we want our students to become independent problem solvers, who are not fazed by a seemingly difficult challenge.
Mentors can help students by suggesting how they might go about looking for a solution if they were working in a real team, rather than by giving answers directly.