It should come as little surprise that our most successful client engagements feature an effective mix of innovation, competitiveness, and teamwork. Achieving this balance is not without its challenges, and DevOps has been essential to our success in exceeding expectations. Whereas technology projects have typically required significant tradeoffs among speed, quality, and cost containment (“pick any two,” as the old joke goes), DevOps makes all three a possibility. To fulfill our commitment of providing exceptional customer satisfaction within reasonable timeframes and at a reasonable cost, DevOps provided us exactly what we were looking for—a structure to deliver better quality more rapidly.
What is DevOps?
“DevOps” has become a buzz word and many definitions have been put forth. AWS defines it as “the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes.” This speed enables organizations to better serve their customers and compete more effectively in the market. While DevOps does not introduce anything “new” to Development and Operations individually, its culture and practices identify innovative means of maximizing efficiency and accelerating time to market. DevOps practices accomplish this by finding and taking advantage of commonalities among Development, Operations, and QA teams. The ability of DevOps to exploit this intersection of capabilities is frequently represented as a Venn diagram:
Development and Operations teams have traditionally been “siloed,” resulting in practices that were both manual and slow. In contrast, under the DevOps model, teams leverage the technology stack and tool set that allows them to evolve applications quicker. The schematic below illustrates how combining Development and Operations and associated sub-processes replaces static and cumbersome “siloed” processes with a continuously operating train.
DevOps is a cultural change—a new mindset complementing a set of tools and technical practices. These practices provide communication, integration, automation, and close collaboration among all the stakeholders needed to develop a solution.
Benefits of Marrying Development and Operations
Development and Operations teams have traditionally worked at cross purposes because their performance measures have not been well aligned. The development team was evaluated based on the business value they deliver to end users, while the IT operations team was measured on the stability of the production environment they maintain. This misalignment of objectives results in delivery inefficiency and delays. The DevOps culture aims to bridge the gap and remove these inefficiencies.
DevOps seeks to accomplish this by removing the silo approach and providing an enterprise with the ability to develop and release small batches of functionality to the business or customer in a flow process called continuous delivery (CD). Continuous integration (CI) of new features into already-built applications and deploying those features continuously and seamlessly came to be known as CICD pipeline. DevOps is integral to every value stream, and, by definition, is integral to agile or scaled agile processes. Agile approaches and efforts cannot succeed without a strong DevOps arm.
From planning through delivery, the goal of DevOps is to improve collaboration between Development and IT Operations by developing and automating a continuous delivery pipeline. In doing so, DevOps:
- Increases the frequency of deployments: Automation of operational and testing tasks reduces the risk of error and lengthy test cycles, leading to increased frequency of deployments.
- Allows for safer experimentation: The DevOps culture features a built-in failsafe mechanism that fosters a safer environment for experimentation.
- Accelerates speed to market: DevOps relies heavily on automation to provide speed, consistency, and repeatable processes.
- Shortens the lead time for fixes: Improved solution quality and repeatable processes help to productionalize the bug resolution process—making it both shorter and more reliable.
- Reduces the probability of release failures: DevOps emphasizes an “automate everything” mindset which takes away hitherto practiced manual processes and dramatically reduces the probability of release failures.
To achieve the benefits promised by DevOps culture, the organization will typically need to enhance architecture, infrastructure, and adopt the agile lean mindset across the enterprise to support deployment readiness, release, and production.
DevOps has been a successful story for RiskSpan, enabling us to be instrumental in implementing enterprise-wide agility for a number of clients. Adopting the lean agile mindset has helped convert old waterfalls into streams of agility. DevOps has allowed us to successfully cater to our clients’ needs and bring high-business-value products to market faster than our clients ever thought possible. It enables firms to grow teams in a seamless way that integrates cross-functional groups and aligns with long-term strategies.