Thursday, November 1, 2012

The Kent IT Clinic

One of the things that many computer science departments struggle with is how to teach the practical aspects of being a professional computer scientist. At Kent we're very successful in running schemes with a year in industry, and typically more than two thirds of our students take a year out between their second and final years with us. They come back transformed, understanding how the principles that we teach them work out in "the real world" as well as having much sharper practical skills, in e.g. time management. Putting these two together it's no surprise that they have a six or seven percentage point advantage on average over the students who haven't taken a year out. A number of other CS departments have sandwich programmes like this, and they all report a similar effect.

Kent has something much more distinctive to offer, too. The Kent IT Clinic (KITC), founded in 2004 and based in the School of Computing at the University of Kent, offers IT consultancy services to companies local to the university’s campuses in Canterbury and Chatham. The industrial landscape in east Kent is made up of SMEs (and indeed micro businesses) and public bodies, and so the majority of the KITC’s clients are SMEs wanting IT services to support their businesses, rather than IT-focussed companies.

The novelty of the KITC is that the consultants are students in the final year of their undergraduate programme or the MSc programme in IT Consultancy. Students in the clinic are mentored in their work by an experienced consultant who takes the role of coordinator of the KITC, and the money received by the KITC in payment for its work goes towards paying the salary of the coordinator, as does a proportion of the students’ fees.

Students are not paid for their work; rather they receive payment in academic credit towards their degree. On setting up the clinic it was anticipated that students would also be able to work in the clinic for payment, but under this model KITC work competed with their credit-bearing work, and commitment to the clinic tailed off as the assessment load grew. The coordinator is responsible for the business side of the clinic, and academic supervision and assessment is separate.

Some of the students in the KITC have undertaken a one year sandwich placement, but others have not. Both groups of students gain from their KITC time, since the experience and skills gained there are complementary to the traditional industrial placement.

  • The students on sandwich placements tend to be ‘small cogs in large machines’, working in a managed environment in a team alongside more experienced permanent staff; by contrast the students in the KITC are ‘large cogs in a small machine’ working alongside in peers from the same background in a substantially smaller, less-managed, operation.
  • Sandwich students will often work on a single project during their year’s placement; in the KITC students will work on a variety of projects chosen so that together they satisfy the learning outcomes for appropriate module.
  • Projects are typically supported by a team of students who need to be self-managing; indeed projects can be somewhat more complex, calling on a delivery group as well as an internal systems team, for instance.
  • The group of students working on a project will get experience of the complete life-cycle of the project, from inception through costing and estimation to delivery, deployment and maintenance. 
  • The costing and estimation prove to be particularly challenging for students, since projects tend to differ from each other to the extent that existing data is of little use; on the other hand previous projects are presented as case studies within the taught modules that support the KITC.  
  • The students gain more exposure to the customer than in a larger organisation. They need to negotiate requirements and costs, and deliver to the customer’s satisfaction: students have learned that this can be somewhat capricious!

A number of challenges have been touched on above; the other principal challenges are discussed now.

  • Business demand is constant, but the presence of students is anything but. A typical undergraduate can spend the period October – March in the KITC, while MSc students are able to devote substantial time during May – August. Students will be part of the clinic for one academic year only.
  • Some months are not covered, nor are (substantial parts of) undergraduate vacations. It is therefore vital to manage the pace of delivery that the KITC can achieve.
  • Students are only in the clinic part-time (typically 10 hours per week during term time) and so it is crucial to manage customer expectations of what they can expect of consultants, e.g. in providing out of hours service.
  • The tunover of students brings its own problems. It is not unusual for a client to want maintenance or extension of a project delivered by a previous cohort; it is at this point that the quality of the documentation and code is really put to the test. Similarly, there is a tendancy to over-engineer internal systems, with consequent handover problems.
  • Because the KITC is formally part of the university rather than an autonomous entity, students need to understand ‘professional’ aspects of delivering consulting, such as writing contracts, indemnity insurance and so forth. The School of Computing has benn lucky in the support that it has received in this regard from staff from Kent Innovation and Enterprise, the university’s industrial liaison arm. 

A thriving SME – which is what the KITC is – needs a healthy pipeline of work: some leads forthcoming, some work signed up, some in development and some in delivery. Ensuring this within a small organisation is tricky, and it is particularly problematic with the varying levels of student resource just discussed.

  • Work has come in through a variety of routes: through KIE, word of mouth, repeat business and partnerships with other consultancies.
  • Being clear about what is possible for the KITC and what is not is a difficult call: some of the most successful projects it has undertaken could have been seen as the most risky too, for instance.
  • Ensuring the KITC has the expertise in place is also a challenge. Students will not necessasily have all the skills at their fingertips, but in some cases successful projects have been delivered on the back of students learning as they work. An expertise database is also valuable, but vulnerable to the students’ differing ability to self-assess.

Still, whatever the ups and downs, the KITC has been a fantastic learning experience for students and staff alike over the last eight years, and has given some two hundred students a chance to see how what they learn in the lecture room translates into business.


  1. Hi! I don't suppose you have any good ideas for a final year undergraduate project based on Erlang (possibly Haskell, but preferably Erlang), do you? I'd be really grateful for any suggestions. Let me explain a little further. I'm a typical web dev kind of Computer Scientist in that I do all the usual stuff: OO languages, JavaScript, etc. This year, however, I did a module on programming paradigms and it covered Erlang and Haskell (as well as some others). For my assignment, I choose an Erlang one, which I enjoyed doing very much. So much so that I now want to move away from the usual web dev stuff! Now, with my final year project looming, I'd love to take on an Erlang project, but I really don't have many ideas.

    Anyway, I'd be grateful to hear back from you.

    Many thanks,

    1. Hi Tony - why not email me and we can discuss this one to one? s.j.thompson at kent dot ac dot uk