As promised to the attendees (all 10 or so of them…!) to my riveting and speculative session at the Agile 2008 conference yesterday, below is the link to my slide deck in PowerPoint 97–2003 format:
Agile 2008 – Who’s Teaching Best Practices?
I’ll write more on the feedback I received – it was definitely an engaging conversation that was lively and went a half-hour over the “official” closeout time. The majority (all?) of attendees were either professors or masters/phD students who worked with professors at institutions from across Canada, the US and Europe. Basically things broke down into two broad categories:
a) Methodology – I hung a lantern on this one: Yes, looking at course catalogs or calendars is highly speculative and not “scientific”. What was more interesting, however, were comments that suggested that descriptions are deliberately and intentionally vague in many institutions so as to afford instructors and professors flexibility to teach topics not specifically outlined. It was also mentioned that the process for changing course descriptions was so difficult (read: bureaucratic) that it was best to go with the most bland and inoffensive wording so as to avoid dealing with the gatekeepers.
b) Role of the University as Developer of Leaders not Technique Instructors – This one caught me completely off-guard as I didn’t expect it from folks who are idenitifying as “pro-agile”. There were a lot of comments in this area which essentially distill to “it’s not our job to prepare graduates for working with a specific technology or technique – we teach them how to think and lead”. The corollary to this is that this is what colleges and “practical” technical institutes should do.
Although I understand where this is coming from, I’ve got a few issues with this response, as I am sure many readers might: There were no apologies made for the elitist tone. While I agree there is a need for CS/SE students to be able to learn how to think in abstractions (Joel Spolsky writes on this in his blog), there is also a compatible reality that students should be able to apply the abstract to some concrete tasks – very much what agile/iterative/lean processes do and their corresponding best practices.
I found it completely foreign to hear that there was absolutely no interest in teaching courses specific to best practices. They could be taught as a component of a course, but it was felt that to add this on to the typical coursework would be unworkable.
Time to think things through…
I acknowledged that my methods were imperfect, my conclusions very rough – however, my personal experiences with university grads as interns suggested to me that there was a potentially interesting connection between what students were learning and what was actually expected of them in the real world.
Attendees posited to me that if industry wants this to change, they need to pony up more cash and reinstate or bolster their own internal training courses. In effect, the responsibility for teaching agile/iterative/lean SDLC and best practices like refactoring code so that it’s readable and of value is not in the domain of the university. Never should be, never will be.
Despite this reaction, I’ve been given a lot of good feedback, and I have to take time to process it and begin to address some points more thoroughly, perhaps in a future posting.