It is almost impossible to go to any IT conference today that has anything to do with enterprise resource planning (ERP) or product development in general and not hear someone talking about DevOps. It is the topic-du-jour and can make any self-respecting business professional nervous if, for some unlikely reason, they’ve never encountered it before. So what exactly is DevOps and what makes it so darn popular?
Like many business processes and strategies, DevOps is not exactly new. In fact, it is in many ways related to other recently coined methodologies including Agile and Lean and can even be seen as a sort of mash-up of those two.
Essentially, DevOps can be viewed as a cross-disciplinary community of practice dedicated to the study of the building, evolving, and operating rapidly-changing, resilient systems at scale.
Put another way, DevOps is the practice of infrastructure operations, software development and test engineers participating together in an entire software development lifecycle iteration – from design through development to production.
What makes DevOps so attractive and compelling is its commonsense approach to software development. After all, doesn’t it make sense to have the developers tasked with designing an application in early and regular contact with the people responsible for deploying it? Traditionally the coders and testers handled the “Dev” portion while the “Ops” folks implemented and managed things after the original concept was birthed as tested code. For years, business units such as R&D, IT, operations, and marketing were typically siloed, working away in relative isolation until they were ready to hand off their portion of the project to the next team.
The problem was, if an issue arose at some point in the development cycle, it might not be discovered until late in the project, often post-production, resulting in delays and wasted time and money. So why not have everyone collaborating from the very beginning so that, say, operations experts using self-service deployment, integration and testing tools could help app developers spot potential problems when they are still coding and testing?
It’s not hard to see how DevOps can be interpreted as an outgrowth of Agile – agile software development requires close collaboration between end-users, product management, developers, and Quality Assurance to fill any gaps and rapidly iterate towards a better product. This kind of streamlined efficiency adds speed to the entire process and enables the organization to better control costs and compete more effectively by releasing more features more reliability and predictably DevOps incorporates the operations staff into this cycle.
Why is it so hard for some enterprises to adopt DevOps?
The simple answer is – corporate culture. In many cases, business units and departments have been working in isolation for so long it’s difficult for them to see the longer view, to understand how their function can be closely related to other, seemingly disparate departments.
Change can be hard. Often a healthy dose of empathy is required to enable, for example, someone knee-deep in writing code to see how modifying an algorithm might significantly improve the user experience and reduce cost, even if it’s not the most elegant and deeply-satisfying way to do it. Overall agility and productivity must take precedence over territorial concerns. Having more empathy for others’ roles in solving problems and delivering better products is central to successfully adopting DevOps and achieving both short- and long-term business goals such as improving product quality, delivering a more reliable service, and providing functionality that is more in tune with customer needs.
Like Peanut Butter and Jelly: DevOps and the Cloud
Some things are simply meant to go together, and DevOps and the cloud are two of them. As we well know, the cloud and the software-as-a-service it delivers enable greater business agility by making IT infrastructure more flexible and scalable.
From a DevOps perspective, cloud deployment dissolves the separation between function and operation. Developers create and experience functionality delivered in the cloud as seamless aspects of a unified whole, effectively breaking down silo walls. While cloud users expect high levels of functional and operational quality, they also expect cloud solutions to deliver continuous change on top of that quality platform for continuous improvement.
Cloud computing, Agile development, and DevOps are interlocking parts of a strategy for transforming IT into a business adaptability enabler. Continuous improvement and digital transformation are yet two more strategies driving enterprise evolution and enabling organizations to more easily transform themselves and adapt to constantly shifting industries and markets. DevOps and the cloud are key elements that go hand-in-hand and that all developers will have to come to grips with sooner or later.
Image Copyright: 123RF Stock Photo