Bringing DevOps to the Classroom

Teaching up-and-coming programmers the principles of agile development is one way to avoid "educational malpractice."

Bryan Behrenshausen

As coordinator for the Minnesota State Digital Curricula Initiative, Charles Betz faces a unique challenge: How to teach DevOps (agile, relentless, fast) in an academic context (inflexible, deliberate, slow)?

But Betz has found a way—and it's been successful enough that he's ready to share it. He'll do just that at this year's DevOps Enterprise Summit during his presentation, "Influencing Higher Education to Create the Future DevOps Workforce."

Betz, an instructor at the University of St. Thomas spoke with Opensource.com about working with the next generation of student programmers.

DevOps culture and academic culture seem to move at vastly different speeds. Why is that?

There are good and bad reasons for this. Change is expensive, and, speaking as a teaching faculty member, we can't radically refactor our courses every semester and still give good service to our students. So academia will always lag industry. But there is a difference between moving at the same speed, a few miles back, versus moving more slowly and falling further and further behind. The problem today is that the gap is increasing. Academia has not had a complete understanding of the interrelated changes to the digital economy. It's no longer enough to teach a little Agile as part of project management courses. I think we need to look to the master curricula guidance that comes from the ACM, IEEE, and AIS, and start asking those major professional organizations to up their game a bit. It's not like there isn't plenty of evidence coming out of industry lately!

However, I disagree a bit with those who think that "things will always be changing too fast." We are seeing a generational—tectonic, if you will—shift in fundamental principles and I don't think it's always "flavor of the month." For example, I don't see infrastructure as code going away any time soon. I'm quite comfortable baking that into my courses. Nor do I think we're going to go back to the bad old days of waterfall, or stage-gated project management, or disregarding culture. The important changes are here to stay and can be engaged with by academics. Even if we're still teaching on VMs and not Docker yet (which is where I'm currently at).

Why is DevOps important for students today?

Well, it's clearly how the highest performing digital shops are running nowadays. Software education stopped at "code complete" for many years, especially when software was being stamped on CDs for delivery. Now it's delivered as an operational service, the customer outcome is experienced that way, so covering the full lifecycle is essential. Of course there are deeper reasons as well, like the need for fast feedback in product management, and the move away from big open-loop batches of work. The biggest issue I hear from hiring managers? Students are still coming out of programs unfamiliar with source control. That's just educational malpractice. We've got not one but two courses now at the University of St. Thomas covering DevOps (one higher level and more contextual, one more detailed).

You've developed materials for other trainers and instructors, too. What's your goal in developing them?

I guess I have multiple goals. Certainly, there is an aspect of sharing that reflects I think the better cultural aspects of being an academic. Personally, developing the material requires deep learning and investigation, so I grow in my career. And of course, there is a marketing aspect to it. I'm currently finishing up the first graduate-level survey text on IT management grounded in Lean and Agile, and I hope for some attention to that work.

What can we expect in your talk about the DevOps Enterprise Summit?

There are two major parts (and I'm going to have to talk fast!).

First, this will be the first official presentation of a report I've developed with colleagues in the Minnesota State system on next-generation digital curricula. We've had great participation in this report and as far as I know it is the first systemic educational response to Agile and DevOps. By the time I speak, that report will have gone out to over 300 faculty and deans at dozens of universities and colleges across Minnesota. I have to give Nicole Forsgren and Gene Kim a big thank you for agreeing to be on the advisory board for that effort.

Second, I'll touch on some of the pedagogical challenges and opportunities we have at the micro scale in the classroom, with some notes on my IT management class at the University of St. Thomas. One thing most academics don't seem to realize is how powerful a tool virtualization can be in the classroom; I've developed a full continuous delivery pipeline using Vagrant and Virtualbox with Jenking and Artifactory... that will run on a laptop! We sure do live in interesting times.

Bringing DevOps to the classroom was authored by Bryan Behrenshausen and published in Opensource.com. It is being republished by Open Health News under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0). The original copy of the article can be found here.