Teaching Graduates DevOps (Explained as movies!)

John Contad
5 min readMar 2, 2017

--

My current company runs a graduate program. I run 3-month rotations and have them on my team for that time so they can learn about DevOps.

My current graduate has described her run with us so far as “my best rotation yet”, so I’d like to take the opportunity to take a look back at the many approaches and experiments we’ve tried as far as teaching DevOps goes. It’s been an interesting journey — ‘DevOps’ is pretty ill-defined and is composed of so many domains that it took us a while to map out how to relay that knowledge.

Note that this is also not an end state. There’s still a lot of room for improvement. Think of this as “the story so far” — a recap of what we’ve put our grads through.

Oh, and we’ll talk about it in terms of (awesome) movies.

Approach 1: The Sarah Connor

When Graduate 1 (“Brenda”) accepted our rotation, she noted that she “wanted to be thrown on the deep end”. And so we did: with a rotation composed of responding to alerts, being on pager, and pairing on system services without provisioning context. “Sink or swim.”

In very much the same way, Sarah Connor had to cope with an ever-changing state of affairs. Yes, she came out of it very skilled and highly badass, but here’s the thing: Terminator is not a movie about teaching. It’s a movie about adaptation.

The “sink or swim” approach is the first approach I usually see people try — mostly because people learned “on the job”. And that’s fine: this kind of teaching provides a lot of kinesthetic, hands-on experience. But in terms of being able to teach high-level (“How do you design a service?”) or low-level (“What does a HTTP packet look like?”), this falls a bit short. While Brenda has been able to learn those things on her own or with other rotations/mentors, a part of me thinks that we could have done way better.

+ Needs little prep time
+ Very hands-on, kinesthetic
+ High returns of experiential knowledge
- Pairing-heavy
- Sessions are monolithic/can’t be modularized
- Limited range of information fidelity

And so we tried again.

Approach 2: The Karate Kid

Graduate 2 (“Ben”) accepted the next rotation. And in the grand tradition of dialectics, we tried an approach that was the complete antithesis of Brenda’s: a focus on modularized fundamentals.

In the very same way, Daniel (from Karate Kid) learned karate not through actually doing live karate, but by waxing cars and pounding nails. But this kind of falls apart for the same reason that it falls apart in the movie: Daniel doesn’t figure out why waxing-off is important until way later on.

It’s an overcorrection, yes. The rotation was composed of isolated, bite-sized sessions that he could do on his own — maybe a DNS server here, a database there — followed by a a lot of whiteboarding. We put a lot of time into low-level knowledge (“What is BGP? What are collision domains?”) and high-level (“Whiteboard me a highly-available system”) with a firm focus on principles over incantation. But this was at the cost of practical basics.

There was also the problem of effectively displaying growth — not just for the mentor, but for the grad: when everything is separated, how do you know that you’re getting better?

This also had the unfortunate effect that a fatigue sets on when you’re not contributing to the team, or actually slaying cards. There’s a lesson here: in that the feeling of being able to contribute to the team is highly important. Output matters.

Dude doesn’t even know how to use vim well. (Heh.)

+ Repeatable
+ Can be assigned to schedules
+ Can be self-driven
- Low on experiential knowledge
- Takes time to prepare
- Fatigue from not being able to contribute to team

Once more, with feeling.

Approach 3: The Rocky Balboa

Graduate 3 (“Milla”) accepted my latest rotation — and so I came into it with a purpose: what if we could somehow meld the good things about teaching fundamentals, while at the same time providing morale boosts in terms of goals? What if Milla could see how she’s improving while she’s learning? Is there a middle path here?

One of the reasons Rocky is my favorite movie of all time is the training montage. Everybody loves the training montage. In the scene, you could see Rocky being jubilant as he ascends the steps to the city hall, as he realizes that he could finally go the distance.

In the same way, we made sure that Milla could have a visible output on what was getting better. We devised a DevOps kata of sorts — by asking her to explain what a service is composed of. While the sessions were still modularized, each one still contributed to a system that grew in complexity and resiliency. We made sure that she saw previous iterations, and could clearly see what the difference was with past-Milla and now-Milla.

In the same way, we also had her do team work — while prefacing each task with an explanation of how it all works. As of the time of writing, she is now handling the deployment of our Base AMI.

+ Best of both worlds
+ Structured, but flexible
+ Contains actual work
+ Provides fastest understanding of how things work
+ Clear delineation of growth
- Takes a long time to prepare

But then again, a twist!

Twist Ending: Kung Fu Panda

I love Kung Fu Panda. But most people think of it as a story about Po. To me, it’s more a story about Master Shifu.

In the movie, Master Shifu starts as a cantankerous, angry trainer — and then softens up as he himself learns from the process of teaching Po.

He has the most character growth in the movie. He changes the most.

We look at the process of teaching DevOps in the same way. While the learnings for the grads are the primary objective, we’ve come to learn things about ourselves and our work in the process. What is DevOps? Why is DevOps? In the midst of it all, within blaring datacenters and pinging alerts and endless graphs, this DevOps thing isn’t really about technology, is it?

Maybe it’s about people. I don’t know.

--

--

John Contad
John Contad

Written by John Contad

DevOps. Stories. Guitars. Motorcycles. Melbourne.

No responses yet