In what way is software development an academic subject?
A UK university is offering students the chance to study for an MSc in agile software. Now I know that this question is almost as old as software development itself, but it what way is software development an academic subject? While I concede that classroom teaching has its place I think that a hands-on approach provides a better framework for CompSci students to appreciate how agile methods address the real-world pitfalls of application development. (BTW Richard Gabriel's proposal for a Master of Fine Arts in software development has a lot to recommend it too.)
I feel quite strongly that proficiency in software development requires a significant amount of experiential learning. Each combination of team, technology and client that we encounter provides an opportunity for us to grow professionally and personally. (And this is a strong argument in favour of the Apprentice-Journeyman-Master model of Software Craftsmanship.) But how many job ads do you see where "significant diverse experience" is seen as an advantage, or even a pre-requisite?
In the continual rush towards 'the next big thing' - a rush that favours the optimism and energy of youth over the caution and steady pace of experience - the software industry seems to embody George Santayana's prediction that, "Those who cannot remember the past are condemned to repeat it." (Apart perhaps from in the *nix / hacker culture, where there is a sense of history, and older heroes can still be role models.)
Postscript: This article by Pete McBreen passionately makes the case that software development is not something that can be easily taught or learnt. In the end, it comes down to the fact that you learn to be a software developer by actually doing software development. Toy problems don't count. What you have to do is work on a project you care about—one that you become passionately interested and involved in. Once that happens, you'll discover that you can learn whatever you need to learn, and that learning a new programming language, while a time-consuming pain, is really quite easy.