DevOps is such a hot topic in the last couple of years. Everybody likes it. What’s not to like about high agility and empowering the guys in the trenches? If you’re starting a new Internet company, there is practically no question: use a small team with a bunch of open-source and cloud technologies, automate your development and deployment cycle for continuous delivery, and voilà – you are practicing DevOps. Granted, discipline and practice are needed – but in a small, single-app environment, it’s relatively easy. But what about most of the real world, where people are working in complex existing environments?
But it’s not an equal balance between these three: development and testing are relatively easy to connect, with the advent of test automation. And with most of the low-end manual testing work being automated, the remaining work is easily merged into joint dev/test teams.Before we go on to discuss DevOps in the enterprise, let’s look at what DevOps is trying to do at its core: DevOps is about bridging the gaps between three professional disciplines – development, testing and operations. Breaking down organizational and professional barriers between these disciplines accelerates the build-test-deploy cycle and enables growing an agile business.
But what about operations? This is a completely different beast. It takes a different state of mind to operate a system than to build it. It also takes different skills. And it’s real easy to mess things up if you give developers the keys to the kingdom, but don’t develop in them the extra sense of responsibility that comes with that. There are very few organizations who have successfully married dev/test with operations, and almost all of them are young, internet-native companies. Their success is based on building a DevOps-oriented culture across the company from an early stage. But for many companies considering adopting a DevOps strategy, making such a radical cultural and organizational change is simply not an option.
Unique Enterprise Issues
Add to this the unique problems of enterprises. Enterprise companies not only have a ton of applications – many of these applications are based on third-party software where the “dev” part of the cycle isn’t even there to begin with. They also have incredible organizational barriers to change – with key people having conflicting incentives and interests, and with geography and organizational distance getting in the way of common culture-building. With constant financial pressure causing some work to be outsourced – you get an environment where bridging even the gaps between different IT groups is just too hard.
So what can enterprises do today to spin the wheel faster and faster with fewer resources – i.e. to reach the DevOps nirvana? They need to redefine DevOps so that it works for them. This is what we call enterprise DevOps. Just like regular DevOps, enterprise DevOps is all about communication, transparency and automation, but the stakeholders involved and the means of pursuing these values are different. The question is not how to turn your enterprise into Facebook or Twitter – that’s not going to happen. It’s how to drive these these core values within the organization and make it better. As enterprises embark on the DevOps journey, they will use a mix of Internet-native and enterprise-native technology. It’s up to enterprise IT leaders, together with their vendor ecosystem, to lead the path.