The Joy of DevOps (Or, Return of the Living Generalist!)

One of the things I have always enjoyed about what I do is that I have, from pretty much day 1 in the technology industry, worn many hats.

No matter what my job title said, I have always done pretty much whatever needs doing whether or not it crosses into what others might consider a discipline that’s not in my job description.

I like it that way. I enjoy picking up new skills, flexing my mental muscles in new ways and exploring the uncharted territory that is every new technology to rise out of the primordial ooze of Github (Or Sourceforge before it).

Way back in 1992 when I got my first job in the technology industry, I met a very wise man named Dale Dougherty (I hope I’m not mangling the spelling, it’s been over two decades! (If you’re out there Dale, give me a holler will you? I’d love to get back in touch) and when he asked what it was that had driven me into technology, and after I told him in the naescent, halting terms I could form at the time he smiled and said “Ah! You’re a generalist. Unfortunately, those are undervalued these days. It’s a great shame” or something to that effect.

Boy was he right. For the next 20 years I would end up doing tech support, sysadmin work, software development, and finally release engineering.

The industry began throwing up high walls and fences around places and processes we all used to take for granted.  ”You can’t do that, you’re not a developer!” “Only sysadmins get root and access to production machines!” “You’re a release engineer, not a developer!” Ad infinitum.

Fast forward to 2009 when folks came up with the DevOps manifesto, in which a positively radical idea is proposed: All these distinctions are useless. They do nothing to make organizations more efficient, and instead bottleneck and pigeon hole good people, keeping them from feeding their passion.

Needless to say, I love it here. I get to bring all the experience I’ve accumulated in 20 years hard labor in the code mines to bear, and it feels really good.

I’m building infrastructure in the cloud, learning about load balancing, high availability and I’ve just barely begun.

As much as the layoff I just went through was painful as they always are, that moment of dislocation pales in comparison to the satisfaction I feel in what I have accomplished in the few short months I’ve been doing this, and the incredible excitement I feel as my horizons have been exponentially broadened.

As I write this, I’m several thousand feet up, bouncing along over the clouds on my way to Santa Clara, California for the annual Velocity conference.

It’s an incredible meeting where some of the best and brightest in our industry come together to make the web go faster and more reliably, and I can’t wait to dive in and start learning :)

[Update: I'm posting this weeks later, because things get hectic. Such is life. Velocity was amazing.  Look for another post on that coming soon.]

This entry was posted in Geekery, Personal and tagged , , , , , , , . Bookmark the permalink.

4 Responses to The Joy of DevOps (Or, Return of the Living Generalist!)

  1. Bob McKee says:

    All that said, its funny how hard to find people good at ONE job. Maybe we specialize so “that other guy who has no clue what he’s doing” doesn’t fuck it up.

  2. cpatti says:

    You’re citing an extreme when IMO the reality is way more towards the middle.

    Sure, not everyone can be good at everything. However hyper specialization has also created a generation of developers who are totally clueless about the environments their programs run in, and that’s not good either.

    Sysadmins need to understand at least the operational aspects of the code that runs on the systems they maintain, developers need to understand the environments their code runs in, and everybody needs to have a better grasp on how the system as a whole works.

    The DevOps philosophy encourages that kind of understanding, and from where I sit, that’s absolutely a good thing.

  3. Bob McKee says:

    I agree that what you’re saying is good. The bar should be high. People should have more general knowledge. Yet, programmers fail FizzBuzz. Lots of programmers don’t know basic design patterns. Programmers make spaghetti code all the time. And these are the guys you want to give MORE responsibility? I keep hearing there are more programming jobs than there are programmers to take them, so these spaghetti coder will keep getting work. So maybe DevOps can work, and I REALLY want it to work, but I’m not sure it always makes sense. At a lot of places the bar might be much lower.

  4. feoh says:

    You bring up a really good point Bob, but I actually think we DO want to give them more access / responsibility.

    If you hire someone, and they’re a moron, best to identify that and weed them out sooner rather than later.

    Let’s say we give the moron root on production – you DO have backups in production, right? Let’s say he rm -rf’s / on a critical server… If you’re doing it right, you turf that server and re-instantiate it using Chef, Rightscale, or whatever, and your load balancer should immediately detect a downed server and take it out of rotation.

    See what I’m saying? You design your infrastructure assuming people ARE idiots, and then, when they break things, you treat it either as a teaching moment or as a moment of clarity and a sound reason for firing them.

    There was a great talk at Velocity about running Post Mortems, and a quote from that really applies here I think “Let’s all plan to be just as stupid tomorrow as we are today”. There’s a lot of wisdom in that, IMO.

Leave a Reply