A few short months ago, I was managing an operations team at another firm. There had been a sea change in executive leadership over the summer, and the DevOps transformation that I'd helped to kick off was quickly being unraveled by the sorts of executive shenanigans that can ensue when a C level departs and leaves an opening. I was open minded to a change in scenery and got the call of a lifetime from a Red Hat recruiter.
So you might think that evoking the word “politics” might mean there’s going to be a rant coming. There will be nothing of the sort. Politics is not necessarily a belligerent act in the corporate world, though it’s often perceived that way. And while sometimes there are people who engage in a bit of belligerent politics to improve their own situation instead of the organization that they serve, those guys are pretty easy to spot and are usually well known as assholes anyway.
We’re not here to talk about the assholes today. We’re here to talk about good, competent people who struggle with consensus sometimes for very understandable reasons.
Let me throw a couple of words out there with some handy definitions to help frame the rest of this conversation.
DevOps: I’m totally going to steal from Wikipedia on this one, though I owe it to all of you to do a better job with it myself in a future blog post.
DevOps (a portmanteau of development and operations) is a software development method that stresses communication, collaboration and integration between software developers and information technology (IT) professionals.DevOps is a response to the interdependence of software development and IT operations. It aims to help an organization rapidly produce software products and services.
Politics: In the corporate sense, I’m going to say this:
Corporate politics is non-transparent decision making based on a difference in agendas between interested parties.
If you look at those two definitions, you might see how corporate politics can cause friction in a DevOps culture. DevOps favors transparency, alignment on values and agendas, and decisions made openly and collaboratively.
People who have been around the block a few times can usually smell politics. But how do we react? Uh oh, this manager is blocking me from succeeding, and he’s looking out for himself. Shields up! Do you dig in, engage in maneuvering to get around one another, and start building rivalries? It’s completely understandable; this is, after all, how things got done in 20th century business.
Often when this happens, it’s simply a difference in agenda. Or perhaps the same agenda, but different perspectives of how to achieve the same goal. The answer to both problems is the same: get it out in the open. Seek understanding. Get the interested parties to the table, have a face to face conversation that is blameless and inquisitive. What is your agenda? Why do you believe this is the right course of action? How does this help the organization to succeed at its mission? Hopefully, this is low-hanging fruit, and a simple conversation can reveal important knowledge that wasn’t previously known to all parties.
But it might reveal the difference in agenda is due to a difference in vision, which is a fundamental failing in leadership. Subordinate leaders need to have an understanding of their role in the overall success of the organization. They need to optimize the whole. If they are merely focused on their little fiefdom of the organization, and not on how that helps the whole organization to succeed, a change in perspective is really needed.
Gene Kim may have said it best in The Three Ways of a DevOps culture.
The First Way emphasizes the performance of the entire system, as opposed to the performance of a specific silo of work or department — this as can be as large a division (e.g., Development or IT Operations) or as small as an individual contributor (e.g., a developer, system administrator).
If two leaders in an organization have gridlocked, have talked it out at the table, and still can’t agree on the collaborative way forward, is this not a failing in The First Way?
The first priority must be for all leaders to be aligned on the goal. Until then, there’s just a bunch of hand waving and concessions without really building the foundation for powerful and ongoing collaboration towards shared success.
Then, and only then, can a conversation about the gridlock be had meaningfully with with the objective being to determine which path most effectively moves the organization closer to the goal.
These conversations should be had openly, without secret knowledge being used to leverage power for localized victories. Major stakeholders from all functions should be able to participate. Managers can’t make these decisions alone, in a vacuum, without also engaging other stakeholders in the conversation.
And above all, respect must be maintained and nurtured. There must be an inherent trust that the people around you all want the organization to succeed, and are doing what they think is best to assure that success. Celebrate your hard-won collaborations with some time to blow off steam together. Enjoy a beer together, or go out to lunch. Don’t frame your relationships solely around resolving conflicts.
We were planning on having Gene Kim come out tonight to give a talk to a packed room in Durham. Unfortunately, Gene has fallen ill and we’re off to “Plan B”. I’m putting together some slides now to deliver a DevOps 101 talk. Mark Mzyk, Nathan Walls, and myself will each be delivering a talk.
I’d been neglecting this blog for a good while because it seemed to mostly be a source of comment spam, which was a drain on my time to police.
Recently, I had someone from a big recognizable powerhouse of an Open Source company approach me about an important position they were trying to fill. Apparently they had seen my blog here, and it had something to do with their interest in me. And here I only thought a small number of illumos and Tor users had been following.
There are some big changes coming in the world around me soon, and I expect I’ll be better able to write about technology and the tools I’m working with again. Stay tuned.
WordPress has been the source of too much spam for me. I’m close to shutting off comments and I’ve already effectively quit writing here.
I’ve been indexing some resources privately and it’s become apparent to me that it would be useful to be able to refer other people to the original sources that are informing me. This is by no means exhaustive, and I do intend to return to this entry periodically to update it.
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation by Jez Humble gives software development teams a roadmap to the elusive “Easy Button” for releasing and deploying customer-facing software multiple times per day. Agile practitioners should see this as a logical and unassailable conclusion to “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”
The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win by Kevin Behr, Gene Kim, and George Spafford – It starts off a bit slow, just setting the stage for a complete project disaster. But it does pick up quickly and becomes a bit of a roller coaster ride. While it’s framed as a fictional book, I have heard from one of the people mentioned in the book’s acknowledgements that this is a true story with just enough massaging to change the identities of the guilty parties. This is being hailed by many as a modern day version of Goldratt’s “The Goal” and I find it to be a great story illustrating the transformative process that leads to a DevOps culture. Plan on reading it once as a story, and then a second time to more studiously understand The Three Ways.
The No Asshole Rule: Building a Civilized Workplace and Surviving One That Isn’t by Robert I. Sutton
Burgess, Mark – “The Promises of DevOps“
I’ve been suffering for many years, 10 at the very least, with untreated hearing loss. I do my best to compensate by reading lips, or mentally filling in the blanks in conversations based on context, but the lack of hearing precision does cause a lot of problems for me at home and at work (not to mention socially!)
My hearing loss has gone untreated largely because most employers provide health care plans that exclude hearing aid coverage, and the way the industry works, hearing aids cost thousands of dollars. But now I work for an employer that provides fairly decent hearing aid coverage in the health care plan, and I’m getting this taken care of.
The process is a little off-putting because I feel like everyone involved is hiding information from me. I’m a tech specs kind of guy. Let me review and see what I’m buying. I’m a smart guy; I can handle it. I initially tried looking into Audicus, who sells hearing aids online, but that experience triggered every fight-or-flight instinct in me. They have so overly dominated the search engines with their astroturfing that I’ve found it very hard indeed to find any kind of honest third party review of their products or services, and their contact management system more or less nags you once you initiate contact with them (in a very clumsy way, mind you). I had to contact them to ask basic things like whether or not their hearing aids included a telecoil.
I’m playing the waiting game now. Some Phonaks are coming my way, pending the approval of my health insurance carrier, to the tune of about $5,000 out of the insurance company’s pocket. Another $200 is coming out of my pocket to add a telecoil, and if I want ear moulds that is going to be another $150 out of my pocket.
I did get to demo a set of hearing aids at the audiologist’s office, programmed to my hearing loss profile but at a conservative sound level to avoid accidental damage without the benefit of a full custom fit. I must say, the quality of sound that I was hearing was remarkably improved. I’m very much looking forward to completing this process so I can have their benefit of the hearing aids for more than 5-10 minutes.
Until late 2010, I’d been using pretty much entirely open source software on my personal desktop and severs. This mostly worked pretty well, except very specifically with regards to my photography work. At that point in my life, photography had turned from a minor hobby to a major obsession. My suite of tools (GIMP, digiKam, ufraw) was becoming increasingly tedious to deal with at the time, so I took a big leap and bought a Mac Mini to run Adobe Lightroom on.
To be honest, this setup worked really well for my photography workflow. Some other aspects of the Mac desktop were a bit of a mixed bag. Yes, it was more polished (except Bluetooth, which to this day is almost as klugey on Mac as it is on Linux). But it was also very closed, and with the rise of iCloud, I had some very serious concerns about what my computer was sharing about me behind my back.
My photography has tapered off as I’ve focused more on my career in systems engineering. I rarely go into Lightroom anymore. So I don’t have a huge compelling reason to be on a Mac anymore. The Mac Mini is feeling long in tooth anyway, and it was time to start looking at something a little faster. I also wanted something more portable this time around.
So I decided to start my exodus from OS X (or, as I’m starting to call it, my OS eXodus).
I still have an iPhone, an iPad, and an AppleTV to think about. I spent years ripping all of my CD’s and DVD’s into iTunes. My collection far exceeds anything that the Mac can reliably handle on its own, so I have a SmartOS server running Netatalk which houses all of my iTunes content, and iTunes reshares that to the AppleTV. I’ll deal with these iOS devices further down the road. For now, the Mac itself needs to be replaced.
So I hopped on the big auction site and found a Lenovo Thinkpad T410. During my years of consulting at IBM, I built a huge respect for the Thinkpad as a workhorse laptop platform that can take some abuse and provide a sensible array of features. The T410 that found was a late 2010 model, same vintage as my Mac Mini, but better specs. It’s got a Core i5 processor, 4GB RAM (upgradeable to 8GB), and a 320GB hard disk. Price? About $290 + shipping.
When it first arrived, I did try to give OpenIndiana a chance to be my desktop OS of choice but I’ll be perfectly honest: OpenIndiana is nowhere near as ready to be a desktop OS as it is ready for server duties. If it gets remarkably better, I’ll try it again. In the meantime, I went with Xubuntu Linux (the Xfce flavor of Ubuntu) and it’s working very nicely on the Thinkpad. Everything more or less “just works”.
Except Bluetooth. It works, kind of, but it’s really inelegant and temperamental. But then, my experience with Bluetooth on the Mac is also kind of a mixed bag.
I do miss the Mac’s trackpad, I’ll be really honest about that.
But I’m getting all of my other apps moved over, and so far so good. I still have to work out what I’m going to do with regards to my media library and my photos. I suspect I’ll keep the Mac around for these functions for awhile, but use the Thinkpad for everything else.
I had to fiddle around with this a bit and thought it might be useful to others. I’m using a Joyent SmartOS zone as a file server for my Macs at home, and Netatalk is really the best way to share files to a Mac from a UNIX system.
Real quick, here’s how it was done:
./configure --with-bdb=/opt/local --with-init-style=solaris --without-pam --prefix=/opt/local
servicedir” and change it to:
servicedir = /var/svc/manifest/network/
make && sudo make install
vim /opt/local/etc/afp.confand add your shares
sudo svcadm enable netatalk
Special thanks to rmustacc in Freenode/#illumos for helping me get the SMF manifest installing to the correct path. I hope some of you find this helpful.