A colleague and I had the good fortune to talk about Agile software development to a bunch of very attentive students at NTU (http://www.ntu.edu.sg) last week. Early on in the presentation I found myself needing to pivot internally during the presentation and make some assumptions that I had been internalising clear to the audience to help them understand why we were stressing some of the points we were. To help clarify these assumptions I said something like:
“There are three big factors that are virtually impossible for a university IT degree to give its students exposure to… scale, risk and legacy”
The reason I felt I needed to say this was because my colleague and I were repeatedly talking about the difference of approaches towards requirements’ management and deployment (amongst other things) between the almost mythical “pure Agile” environment and the definitely mythical “pure waterfall” environment.
But as a university student, it’s hard to appreciate the significance of these changes because they’ve (a) never been asked to work on anything at scale and (b) there is very little significant risk with anything they do.
Sure, many students do group projects of 5-6 people working on a system over a period of 10 months, but that probably only consuming 10 hours per week of their time and the impact of that project is generally very low outside the immediate team. This is not an environment where they are exposed to fairly common “real life” situations like multiple teams, distributed work, multiple stakeholders and the like.
This is no fault of the university – it is what it is.
And many students do feel very personally involved in their success at university (and probably have parents who would be disappointed if they didn’t do well), but that’s not the same as significant personal, financial and legal risks that a lot of large scale development projects take onboard. Students may in fact have higher degrees of personal risk than many IT professionals do, but the amount of risk drops of fairly sharply after that.
Again, this is not the fault of the university – it just is.
And finally, I seem to remember little but green fields’ development from my days at university, so the problems caused by working with legacy systems were nothing I became aware of until much later in my career. I’m sure some universities do mitigate this risk somewhat in their subjects, but I’m equally sure these cases are few and far between.
So, dear NTU students, you probably struggled to understand what the big hoopla is around this whole Agile stuff. You work in an environment with very clear requirements, at most one stakeholder, no notion of multiple environments to deploy to, and little risk if things go wrong. Agile specifically addresses a lot of the problems you don’t yet have :-)
But unfortunately, you’ll find out why this stuff is important fairly soon. Good luck with your careers!