Alan Cameron Wills' WebLog

Domain-specific modeling, languages, software factories, ...

How to teach software development

Software development is teamwork. The most important techniques you learn for project success -- or get wrong otherwise -- are about working in teams. The methods that have made the biggest improvements in development success rates are not tools or technical stuff, they're about how people work together -- most notably, the agile methods. Tools are useful to support good ways of working, once you've sorted out what they are.

So it's unfortunate that most computing degrees, in most parts of the world, don't teach these teamwork aspects. If you're lucky, you get some stuff about agility, but actually running a project -- with all the practical stuff that entails -- not much.

Sheffield University in the UK is different. There, Professor Mike Holcombe has been running a course for some years in which the undergraduates get to work on real agile projects in a real company for real customers.  He uses group assessment methods, as applied in other disciplines where teamwork is a necessary part of the curriculum. His students are in great demand by industry, and “more Sheffield CS students than from any other UK University made it to the finals of the 2004 Microsoft Imagine Cup”.  

Why don't we see more courses like this? A big factor is that academics haven't often worked in a commercial environment. Lecturers are chosen for the number of papers they've written, so it's difficult (though not by any means unknown) for anyone to move from an industrial into a decent academic job. This is unfortunate in an engineering discipline -- one that owes its existence to the industrial activity.  Even though very many academics have close ties with industry -- well, it isn't quite like actually being on the job.

So Mike's methods haven't spread through Universities like the wildfire they should. Which is sad.

Published Tuesday, June 21, 2005 6:12 PM by Alan Cameron Wills

Comments

 

Richard Veryard said:

Alan

I agree absolutely with your criticism of most software engineering degree courses in the UK. Some university teachers claim that it is the students who insist on individual assessment and complain about group assessment. (Who's in charge of the process here?)

Many university lecturers also have no sense of scale, and are unable to teach their students the difference between a 100-line program and a 100 KLOC package.

But it is not so bad in some other countries. When I have taught courses in Denmark, my students are well accustomed to group assessment and have complained (mildly) about individual assessment.

cheers, Richard
June 21, 2005 7:55 PM
 

Bjorn Freeman-Benson said:

The "real projects in a real company" is nice, but unless the course has an educational objective, plan, and evaluation technique, then it's relying on the students to figure out how to learn rather than helping them learn. The key to teaching well is to figure out what you want the students to learn, how you are going to get them to understand the issues and the solutions, and how you are going to figure out if they did. Just throwing them into "the real world" is no more valid than just lecturing to them.

A colleague and I taught an interesting software engineering course where we simulated "the real world". The key difference was that we could tweak reality in order to teach them specific lessons. Of course, each of us had over a decade of real developer experience so we could simulate pretty well.

We were just using the same technique that airlines do when they use Flight Simulators for training rather than going up in a A380 and just hoping that an engine will fail in order to provide that (engine fail) lesson.
June 22, 2005 4:02 PM
 

M3P Working software daily said:

August 17, 2006 7:07 AM
 

More from XP2005 | Steve Freeman said:

September 23, 2007 3:49 PM
 

How to teach software development said:

November 27, 2007 7:39 PM
New Comments to this post are disabled

About Alan Cameron Wills

Microsoft Solutions Framework

© 2008 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker