A recent survey shows 78 percent of companies run part or all of their operations on open source software.
I think just about every company today is looking for ideas that allow it to develop innovations that align with customer expectations. If you work in a customer-facing area, there is simply an expectation now that there will be continuous improvement and continuous development. This is where I see DevOps really starting to take hold.
For a startup, it’s very easy to begin in the DevOps mode, because you’re launching from scratch. For enterprises, the road is quite a bit steeper. You have to change your ways, change your mindset, and change a process that’s tried and true. Not to mention that a lot of the controls already in place to prevent disasters — change controls, change advisory boards, change processes — often run counter to what DevOps is.
I believe the right DevOps attitude to take is, "If changes are painful, we should be doing it more often to get better at it so it’s not painful anymore." It also requires a much greater level of individual and team accountability. Compared to the traditional IT mindset, which is about trying to minimize change, question change, and manage it to a point where the number of overall changes is reduced and we lock down the environment, it’s not hard to see that the two approaches are on a collision course.
So where do you go from here if you work in a traditional enterprise? A few approaches I’ve seen:
1. Set up a DevOps Center of Excellence. A lot of companies will establish a separate center of excellence (COE) group to drive DevOps initiatives so they can thrive. Friction is inevitable with the rest of the organization because those COEs are operating in a wholly different way, but healthy friction is essential in making DevOps work. This team will also be needed to plant the seeds in other parts of the organization where DevOps is appropriate, helping those teams to demonstrate the business value in this new mode of operation.
2. Find skills from within as well as outside. The skill set to do successful DevOps is very hard to find. Not surprisingly, people that want to do DevOps prefer to work for small startups or in places DevOps is more or less the only way you do things. To find staff for your enterprise efforts, you need a few veterans who have lived and breathed DevOps before, but you shouldn’t overlook bringing up some of your star internal performers and building their skills to the point where they can handle the DevOps mode of operation.
3. Communicate the mindset in memorable ways. If you work in software development, it’s probably easier to jump into a continuous development mindset. Less so for operations staff. To bring them into that thinking, I say things like, “Guys, think of this infrastructure as code now. So forget about racking and stacking and think about it as, for example, these five lines of code will now set up this portion of our data center. Now make those processes repeatable."
Success in DevOps is a matter or prioritizing and figuring out the pace of change that’s required in specific customer-facing functions. A key part of your job is matching those needs with capabilities that you can build in a logical, iterative way.