Teaching The Last Ten Yards
I’m teaching CSC301: Introduction to Software Engineering for the second time next term, and would like to do a better job than I did this time around. I’d like to have at least one lecture on the “last 10 yards” of software development, i.e., getting stuff into production. In my mind, this includes making the software installable, administerable, and (remotely) diagnosable, building and testing the installers (or whatever you’re using for deployment), designing it to be upgradable, building and releasing upgrades, and so on. I’d like to be concrete — I don’t think high-level handwaving is very useful, since third-year students won’t have enough practical experience to translate general guidance into what they should actually do next — but I don’t want it to be yet another RPM tutorial.
So: what should I teach? And what should I set as an assignment? A lecture is 50 minutes, so that’s 20 slides with half a dozen points each (multiply or divide by some made-up factor to translate code examples into bullet points). What do you do to translate “works for us” into “customer is using it happily”? And if you have seen any lectures on this topic, I’d be grateful for pointers…
Thanks in advance.