DevOps is neither a market trend nor a buzzword in the industry. In my opinion, it’s more of a genuine concern due to teams working in silos. The era of sequential development and long, drawn-out software projects is slowly fading. Business demands continuous delivery of new features or functions, which requires a far more streamlined approach. This article looks at the real role of DevOps in driving agility and also introduces three different maturity levels in addressing the DevOps needs.
Is DevOps a real need?
It is fairly easy to observe whether a new technology or a market trend is just new or whether it arose from a real need from an ailing business. DevOps ("the rising star") is a conglomerate of people, process, and tools used to achieve large business goals and needs.
Some arguments for DevOps:
- Agile software development has increased the frequency of new feature functionality release, thus decreasing the release preparation time.
- Virtualizations, cloud, and mobile have also increased system complexity.
- The demand for integrating with third-party applications and customizations has also increased and added to the mix.
While Agile software development seems to have solved most of the historical issues faced by the development teams in an organization, this solution has actually moved the problem into operations. So the problem to the company remains mostly unchanged. By bringing in one solution, we were able to solve the problem of one team, but we created some new challenges for other teams.
In a traditional organization with numerous teams for development, testing, and operations, software development methods such as Agile do not provide integration between cross-functional teams.
The numerous steps involved that cut across multiple domains, such as development, testing, and infrastructure teams (platform, network, and database), as well as operations, make the deployment complex and error prone. The biggest pressure point for an operations team is the release frequency, which is one of the popular and appreciated practices of the modern Agile software development method. So while development manages to survive the crazy need of time-to-market and continuous innovation, operations continues to struggle in this journey.
To add to the complexity, the use of public and private cloud is increasing, leading operations to manage application instances deployed to services instead of managing servers, backups, and hardware faults.
So the dynamics of operations is changing, even more rapidly than in the past. Some operations professionals have been merged with the development teams. But in most cases, it is important to increase operations (Ops) efficiency and reduce the production risk; it is necessary to improve the overall collaboration between Ops and the development teams.
This is, in a nutshell, the goal of DevOps.
What is DevOps?
DevOps is an approach that brings software developers together with the operations folks so that creating, testing, and releasing software can happen more rapidly, frequently, and reliably. It is gaining the attention of more and more organizations.
DevOps is about enabling rapid delivery to the end customer by embracing a set of capabilities that deliver with speed, quality, and value. We can safely say that DevOps is a way to put Agile practices into operations by adopting Agile values and principles. As Agile states, testers are as equal in the development phase as developers. DevOps says that build and operations professionals should no longer be hidden in the corner cubicles.
The paradigm is changing: Agile software development and increased use of public and private cloud services are reshaping how operations teams function by removing inefficient and unsuitable work processes. The adoption of Agile software development methods results in high-frequency deployments into production, thus increasing pressure on operations.
As a result, DevOps is designed to improve the effectiveness of the operations team, whose pace has to be aligned with that of the development team. Release management and automation of software deployments help organizations address the urgency of getting the products into the market when there is demand for them.
Success story: CTO of a technology firm
We have an enterprise technology firm where no one is sure what is going wrong; however, each individual is positive that the situation isn’t his or her fault. Fortunately, the CTO of this firm realized the reason for his team`s predicament. He says, "When I looked at people behind their desk trying to guess on their own, without communicating with other disciplines, I was amazed. Disciplines, like developers, DBAs, network engineers, and IT operations, had no insight into what each of the other teams were doing."
To help remedy this problem, he physically relocated teams so that they work together on the issues.
It was the start of his move toward DevOps.
By being able to see what the development teams were doing and get new insights, the operation teams became more motivated and enthusiastic. They brought their perspective to solve the problems, which forced the developers to think like end users of the products and services they were building. This convinced them even more that the DevOps model will help solve a lot of day-to-day problems.
They say that this approach (or culture, or movement) produces faster delivery of features in a more stable operating environment. They also say that the DevOps model means continuous software delivery and faster problem resolution, which leads to more satisfied users.
Success story: CEO of a cloud-based technology firm
An enterprise that moved to DevOps six years ago initially wanted to shed its IT development problems, such as issues with product quality, long production release times, and inefficient use of the IT staff. Champions of DevOps approached the CEO, and the CEO in turn convinced the board of directors to freeze production for six months.
The company had shifted everyone’s attention to learning about and preparing to move to DevOps. The firm also flew some of its leaders to Silicon Valley to understand this model from companies who have already championed this approach. They also invited other company CTOs to their headquarters to educate their staff on the process. Leadership also focused on training their staff, restructuring their work flows, and also reorganizing their teams so that they work together in more tight alignment. Every individual felt that they belonged to one team with one goal. Today, six years later, the company deploys 100 times a day and is able to react to changes rapidly.
Challenges and impediments
Moving to a DevOps culture is not an easy game to play. In fact, it can be highly disruptive, and it won’t happen at all without the support of the CTO, the CIO, and other top IT executives of the firm. They have to champion the cause to make it successful. IT leaders must be able to articulate how the DevOps model will bring improvements, and they must be able to sell their vision to people who rank below them.
Typically, some will resist when asked to do their job a little differently. However, juggling with their staff and hiring either new talent or retaining the best talent, or developing new niche skills in some of those employees who once used to work in isolated cubicles, will help them actually understand each other’s work and how their contribution will help in developing and shaping the final product.
For instance, if they want to create a collaborative culture to make the DevOps model work, leadership needs to break down silos and foster communication among developers, testers, and operations. This may require a lot of changes, buy-in from everyone in the organization, and adjustments in the work flow model. It also requires supportive strategies, such as putting people from various departments physically in a colocated place. If they can`t be physically colocated, then provide them with collaboration tools. This may require some amount of investment as well. Leadership may also need to invest in some automation and monitoring tools (many free, open-source tools are on the market).
Critical fail-safe environment
It is critical for the CIO and CTO to create a safe environment for technologists to take on new challenges without having to worry about whether their missteps or failures could be catastrophic. They have to create an environment in which every failure is considered as a learning opportunity. This is a big cultural change that not every organization may be ready to adopt. This kind of shift is one of biggest reasons why the CIOs, CTOs, and other IT executives must champion DevOps, if they really want it to be successful in their organizations.
In addition, corporate policy and procedure must also be in line to support this approach. For example, the CFO must align corporate finance and project funding with the continuous deployment model, or else money will be a bottleneck in the whole mix.
I would say transformation to DevOps is both grassroots and top–down. I would also call it "BizDevOps," which is Business + Development + Operations.
The pillars of DevOps
Experts agree that bringing DevOps in an organization takes some serious amount of attention and investments. Using the top–down approach, right from the CIO and CTO to all the lower ranks of IT, means that professionals must be dedicated and involved for the organization's journey to be successful.
The process of moving from a traditional approach to DevOps will involve a lot of time and the effort of many in an organization. It may involve hiring new resources with niche skills, and it may even require hiring a dedicated Agile coach.
The focus is on teamwork
and taking responsibility and finishing work. The real effort will be the transformation from sitting together to working together. This is not black or white; it has its ups and downs. It needs ongoing attention in aligning priorities, sharing information, and communicating openly.
DevOps has been put forward as the "next big thing" for organizations to use when dealing with their development needs. However, poorly designed and implemented DevOps strategies can lead to less stable applications, greater unplanned downtime, and less user satisfaction.
Organizations must do the following:
- Use tools that enable DevOps.
- Aim to provide what the business needs in a timely manner.
- Maximize the business value.
- Enable continuous delivery of new feature functionality.
- Migrate to a new technology stack/architecture as and when needed.
DevOps is an approach that brings business and technologists together and allows communication and collaboration, closing the loop for feedback from all sides.