By Yaniv Yehuda
DevOps is a natural evolution of the software industry, enabling organizations to do more with fewer resources while differentiating leading and successful companies from their competitors. Delivering products faster and with better quality has led to agile practices that are dramatically impacting how organizations deliver software. As agile delivers shorter and smoother development cycles—known as sprints—organizations are enjoying less risk by deploying smaller development packages with shorter delivery cycles. There is also a greater involvement of the part of development with understanding business needs and requirements.
Operations teams, however, are finding themselves struggling to deal with releases on a much more accelerated basis. This has created many software release challenges, as Knight Capital Group discovered when the organization suffered a $440 million dollar loss due to old software that was inadvertently reactivated when a new program was installed.
While agile has helped improve development productivity and quality, the next natural step of the software delivery evolution was to take agile to production—linking development with operations—which gave birth to DevOps. DevOps is a set of practices and principles intended to help development and operations work more effectively together. The challenge is how to effectively implement DevOps in a demanding business setting.
DevOps' aim is aligning development and operations roles and processes in the context of shared business objectives, and organizing them into principles and practices. DevOps is about the culture and about creating better collaboration between development and operations. It is about building well-defined processes and about being agile. DevOps and Continuous Delivery have been tightly connected and go hand in hand with efficiency, cost-reduction, better organizational performance, faster time to market, and risk mitigation. However, many are still confused as to what exactly DevOps is and what differentiates it from Continuous Delivery.
DevOps and Continuous Delivery share a background in agile methods and lean thinking: small and quick changes with focused value to the end customer. They are well communicated and collaborated internally, thus helping achieve quick time to market, with reduced risk.
The combination of 'softer' or flexible DevOps philosophical concepts that go hand in hand with a very practical set of continuous delivery best practices, means that the two are evangelizing about similar, but not identical, things.
DevOps is hot despite the fact that the term is broadly misunderstood. DevOps is not teams, it is not a bunch of systems administrators writing automation scripts, and is not just another software methodology. DevOps is an approach to delivering better, high-quality software more reliably that relies on a culture of teamwork and collaboration across all technical domains. But, most importantly, a DevOps mindset is a key enabler for achieving scale.