If you’ve been working in tech for a few years, you’ve probably seen a DevOps transition. The experience tends to be illuminating and often reveals volumes about company management. Restructuring in any company is a difficult process, but DevOps restructuring can be uniquely difficult. Differences in company culture and communication are magnified during a DevOps transition and often translate directly to differing levels of success. Some companies get there with only minor bumps and scrapes along the way. Others go through the expense and effort only to find themselves bleeding capital and talent as their org charts devolve into utter chaos.
The difference is the mindset. The key to DevOps restructuring is to reorient your development and operations practices. It’s more than just adding this team here and these roles there—if the changes you are making aren’t totally in service of the goal of delivering excellent software, your restructuring is doomed to fail. More broadly, this means that there is no one-size-fits-all solution for converting to DevOps, and neither is there a discrete endpoint where you can dust off your hands and declare the restructuring to be over and done.
That is the DevOps mindset: a perpetual commitment to live delivery of excellent software. Everything your teams do must be a step towards that goal. Some keys to achieving this are as follows:
Live Delivery
The most high-profile piece of the DevOps puzzle is the shift to live delivery—this is what may give your project managers nightmares as you announce the restructuring. Suddenly, your release timeframe is a matter of weeks rather than months or years. This adds to the usual headaches of software development—QA in particular—and requires you to solve big problems on minuscule timelines. Part of the mindset for this approach is a paradigm shift away from traditional testing and deployment methods. Accept that part of your resources are now dedicated to live QA and, further, consider those resources to be fluid. There will be times where development will need all hands-on-deck to combat a critical issue, and times when a release proves stable enough to divert some development resources to anticipate future need.
Perpetual Commitment
A world-class DevOps infrastructure is always forward-thinking and continuously improving itself. Simply focusing on what works today will surely doom you to eternally playing catch-up. It's all too common for organizations to claim the importance of agility but, in practice, remain set in their ways until external circumstances force change upon them. DevOps infrastructure is at its most effective when you are prepared for changes before they need to happen, so expect to continually tweak roles and responsibilities. What clicks for one project isn't guaranteed to work for the next. Managing a DevOps team is like DevOps itself; it requires sharp intuition, holistic solutions, and the commitment to change for the better must be perpetual.
Transitioning to a DevOps mindset is a daunting task and can take many forms depending on who you are talking to or working with. We’ve outlined some pillars to achieving the end goal of creating excellent software and plan to keep including important information regarding DevOps in future blogs. In the meantime, please reach out to us if you have any questions about getting started or want to trade philosophical points about how to work within a DevOps framework.