Skip to main content

DevOps as a critical investigation of our fucked up business culture

I was having dinner with a friend the other night, and we were talking about a bunch of things, including the state of the current culture of the Technology Industry, which is where we all work... me, my friend, my spouse, most of my social circle, etc. And we were talking about definitions and the corporate tendency to take interesting philosophies and turn them into undifferentiated pablum designed to keep labour fighting amongst themselves. Take, for instance, "Agile". It started, I understand, as a philosophy to help developers work together better as teams instead of a mass of individuals, as the modern codebase has for the most part moved beyond the idea of the artisanal coder, carefully banging away at his (almost always his) codeforge to craft the perfect piece of individual bespoke software for the discerning, carefully chosen consumer-slash-patron. As software development turned into a team sport, and the experience of coding became an assembly line function, the question was "how do we convince rabid individualists to work better together at a fundamentally creative process?" So the idea was to use this concept of Agile: light, nimble, heavily-communicated, careful processes that encouraged folks to work as teams and keep each other in the loop about what was working, what wasn't, and what they could do about it to get stuff out the door. There are a ton of tools that can be used to facilitate Agile methodologies, but the actual tools aren't nearly as important as everyone understanding the philosophy.

Of course, as is usual, the people who make the money and the people that have MBAs and the people who run the companies as a profit center for shareholders often don't understand (or can't be bothered to understand) this philosophy; it doesn't have anything to do with them (they think) and also their bottom line is "what shipped, when, and how much can we charge for it", not "are the people who do the work cooperating with each other to be creative in a way that minimizes difficulties and maximizes creative opportunities". Which often leads to the teams that are utilizing Agile methodologies to try and sum up the concepts in a 5 minute recap as part of a 30 minute meeting, and one-sheet recap emails, and "executive summaries" and then we end up with people who use "Agile" as a verb, and now Agile doesn't actually mean anything, it's just another buzzword to be tossed around during sales pitches and recruiting calls. And there are lots of people making moderate amounts of money by writing books and giving seminars and doing corporate training gigs on "how do to Agile" which is fine, I guess, if you can't be bothered to take it to heart and build the tools that help your team work best, because the philosophy and methodology is more important than the specific tools. "Agile: where the stories are made up and the points don't matter" isn't just a funny line; it's both a disappointment AND a core tenet of the methodology (and yes, both can be true, because the point of view on that core tenet is what matters). Context matters.

And that brings us to the Next Big Thing in labor cost reduction productivity: DevOps. This is a great one, because it sounds sexy and it's a portmanteau (and IT loves portmanteaus) and from the corporate perspective it means whatever they want it to mean, especially if it means "we don't have to hire those pesky Ops people because they're expensive and annoying and notoriously difficult when it comes to releasing the Big Feature Rollout". You are already paying for the developer's time, and a hefty amount too, so now you can just add them to the pager rotation and have them do support functionality, because labor costs are fixed and work hours are infinite. The thing is, that's not what DevOps is about.

My understanding (having worked in IT for a couple of decades) is that DevOps, like Agile, is a philosophy, rather than a concrete item. DevOps doesn't mean that all your coders should be sysadmins and all your sysadmins should be coders, and if you think that you're going to be perpetually disappointed in both. DevOps means that everyone in your organization has an understanding: that software must be developed in a way that is easy to support and maintain (especially in a degraded or failed state), and that deployment of software is a key step in the lifecycle of the success of a company. DevOps means a breakdown of the mythical wall between departments, and an understanding that that wall was always imaginary anyway -- that the teams working together are stronger and better off than the teams working against each other. It's not actually a new concept; the operational and development team being colocated in the same physical space (and sometimes the same physical body) goes back to the invention of mechanical computing and the work that Admiral Hopper did with the original thinking machines. The "tiger team" concept at NASA in the 60s was a definitive example of the DevOps concept. Not everyone has to know the same things or work the same way, but they do have to work together and they must have an understanding of the concepts and capabilities of the team as a whole.

Any organization's first principle after instantiation by default becomes 'secure the continued existence of this organization', or the organization itself fails. And so, sixty years later, we have the cultural mythos of the 10x software engineer deftly whipping up the perfect solutions to any given software problem and then dumping those brilliant lines of code onto the surly, recalcitrant systems administrator who either refuses to make the change, or does the change and somehow fucks it up. (And note, please, that the "creative" work is done by an 'engineer' while the "maintenance" work is done by an 'administrator', and let's not talk about salaries and job titles right now or this will turn into an even longer screed and I'll get distracted by the whole "full stack" thing and we'll be here all night.) But that's almost never how it works, on either end; it's a myth from soup to nuts. In my entire career, I may have known exactly one engineer who would be considered "10x", and he was always, always cognizant of the difficulties of deployment in a live environment. Conversely, I've only ever known one surly sysadmin, and he was so disruptive to the team morale that he didn't make it to his 90-day review.

DevOps, like Agile, is a philosophy. It's not something you can enter on a spreadsheet or write a purchase order for, no matter what the C-level executives would like to believe. It's an understanding that your managers have with their team members and your team has with each other and with the organization as a whole. It's not something that goes on an audit list and gets checked off during the rundown. And the failure of organizations to understand that is both costly and pointless in the long run.

Comments

Popular posts from this blog

What I Did This Weekend, And Why It Mattered

A while ago some friends of mine pointed out to me online that they were involved in a kickstarter that was live, so I went to check it out. And it was a kickstarter for a gaming convention in the Bay Area in October, and a whole bunch of people that I cared a bunch about were going to be involved and wanted it to succeed. And I was a bit flush that month, so I said 'fuck it' and I backed the kickstarter and that got me a ticket to BigBadCon 2018.

And so I had a ticket, and I made reservations, and bought a plane ticket, and everything was looking up. And then I broke my foot. And now I was mobility-limited. And then my mom died. And I had to go out of town and deal with all of that basically the week before the con, which included taking a bunch of unpaid time off from work. And I thought really seriously about not going, but then I was like: no, there are cool people there that you haven't seen in literal-years. And you've already spent the money. So I said 'fuck…

JoCoCruise: Remembering the Feeling

We drove up to Seattle, because there are no direct flights from Portland to Fort Lauderdale, but there are from Seattle to FLL. Here's the tricky bit: the nonstop Alaska flight from SEA to FLL is a redeye. It arrives at 6AM local time in Florida. Programming note: this was not a great idea.


I'm just too old to do redeyes; I can't sleep and I can't go without sleep and this makes me very, very cranky. Our next trip out to Fort Lauderdale will have to be done differently, for sure. The flight had several mechanical difficulties which resulted in us not taking off for more than two hours, including 90 minutes sitting on the tarmac at the gate while they double-checked everything to make sure things weren't going to break. That was actually fine with me; the longer we waited to take off, the later we landed. (I have a whole bit in my talk about Support about five nines and moving parts and the 737 so I'll spare you the repeat and let you watch it yourself here.) M…

So Here's The Thing: Far Cry 5

I have never really been a big player of the Far Cry series. First-person shooters aren't really my bag, unless they're the wrapper for a really cool story or RPG-alike game that I really want to play. The closest I came to really getting into FPS are games like the new Fallout series, or some parts of Mass Effect, but given that those are mostly over-the-shoulder games, I was never really the audience for the FC franchise.

This was especially true given the troublesome politics of the FC series games: the protagonist was some rando silent white dude avatar with a gun fetish and a remit to kill as many brown people as possible. This is also, btw, why I don't play games like Call of Duty or SpecOps or those other sorts of FPS games. So when Far Cry 5 was first announced and it was going to be set in rural Montana and the big bad was going to be a religious cult figure, and more than that the player would have the option to play as a woman of colour, suddenly they had my inte…