What is Agile DevOps?
According to the Agile Alliance, Agile is about “thinking through how you can understand what’s going on in the environment that you’re in today, identify what uncertainty you’re facing, and figure out how you can adapt to that as you go along.” The concept sprouted exactly twenty years ago, but even though it took some time for organizations worldwide to realize its potential and usefulness, Agile has quickly transformed from merely a software development buzzword to a practice that is becoming a key enabler for digital transformation across all sectors and verticals.
The rise and rise of Agile DevOps
One particular area where Agile took root and has been undergoing rapid innovation is software development. Various DevOps practices and frameworks are slowly morphing into Agile DevOps as part of the next step in the evolutionary process. Gartner states that “organizations need to reach the next level in their agile and DevOps practices to accelerate development and enable continuous delivery of customer value.” The adoption of Agile DevOps will, the research and advisory firm says, enable infrastructure and operations leaders and application leaders to “stream management to maximize flow, improve delivery efficiency and drive innovation.”
“Agile development enables engineering teams to provide quick feature access to users, receive feedback, and incorporate that feedback fast. With DevOps, there are a few additional benefits, like reduced turnaround time in code to production through smaller, incremental updates. Operations and release management are included as part of the CI/CD pipeline. And generally, there are fewer surprises among the team when there’s a shorter, closer, and more iterative interlock process,” says Ravi Penikala, senior director of Engineering at OpsRamp.
“In short, we use Agile DevOps to make sure that our entire team is working closely together more regularly. It breaks down silos and facilitates quicker feedback loops throughout the entire software development and management process.”
Why companies are switching to DevOps?
DevOps encourages a culture of trust between team members and risk sharing. It allows teams to innovate constantly with the intention of enhancing the company’s goods and services. This encourages both development and operating teams to explore new consumer needs and to create innovations to meet them.
Why is Agile DevOps Gaining Popularity?
According to Digital.ai’s “14th Annual State of Agile Report”,which was based on insights from more than 1,100 business and IT professionals and about 40,000 Agile practitioners, consultants, and executives, a whopping 95% of organizations have some form of Agile process in place. However, only 18% have implemented Agile for all teams, and 33% of organizations have done so for more than 50% of their teams.
The fact that only 4% of organizations are not interested in adopting an Agile process indicates why the concept has the potential to become the next standard for enabling process efficiency. Even though Agile is presently used predominantly for software development (37%), it is quickly being adopted for other departments such as IT operations (26%), marketing (7%), HR (6%), and sales (5%).
There are various reasons why organizations are upbeat about implementing Agile for most or all of their teams. Digital.ai’s survey found that 70% of organizations believe Agile will enhance their ability to manage changing priorities, 65% believe it will enhance project visibility, a similar number believe it will enable further alignment between business and IT functions, 60% believe it will enhance delivery speeds, and 59% believe Agile will boost team morale.
According to the survey, 71% of organizations have highlighted the need to accelerate software delivery as the top reason for adopting Agile. 63% have or are adopting Agile to better manage changing priorities, 51% are doing so to enhance productivity, 47% are doing so to improve the alignment between business and IT functions, and 42% are doing so to enhance the quality of their software.
Figure 1 shows how organizations are measuring the success of Agile transformations. Customer satisfaction, time to market, business value delivered, cost, cycle time, and production efficiency are the top metrics used to measure the benefits offered by Agile processes.
Figure 1: How Success is Measured in individual Agile project (Source: Digital.ai)
Kubernetes Fueling the Adoption of Agile
As far as the improvements offered by Agile DevOps in software development is concerned, Anna Murray, Director of Product Management, Systems, at ASG Technologies, said that when Agile concepts were introduced, and Scrum and Kanban began to replace Waterfall project management for software development projects, the teams that went through this transition quickly realized that more automation was the only answer to many of the roadblocks to continuous improvement. Agile DevOps was the inevitable next step because it was, and IS, necessary to keep agile software development teams moving at the incredible speed in demand by today’s market needs.
“Growth of Agile DevOps is clearly driven by the pervasive impulse for increased efficiency, particularly in the terms of personnel – the impulse to do more work with less staff in support of competitive EBITDA commercials requires improved automated linkages between phases of innovation development,” she said.
Another major factor that spurred the adoption and enabled relevant use cases of Agile was the arrival of Kubernetes. James Spurin, product evangelist at StorageOS, said that Kubernetes, with its declarative interfaces and cloud-native methodologies, lends itself to the foundations of agile development within the DevOps manifesto.
“When Kubernetes is harnessed in conjunction with DevOps, organizations benefit from agile processes within a supporting infrastructure. Entire applications can be declared and managed as code and deployed in dynamic environments such as public, private, and hybrid clouds. Kubernetes also supports DevOps, allowing engineers to simplify high-impact changes with predictability and minimal toil.
“Agile DevOps continues to be a factor for the future success of Kubernetes and Kubernetes continues to grow as an essential component in the DevOps toolchain. The harmonious relationship provides a fantastic opportunity for future enterprise growth and agility,” Spurin said.
Is Agile Replacing Existing Practices Or Is It Complimenting Them?
Considering the role the Agile methodology has started to play in software development, one may wonder whether developer teams are using Agile processes as add-on functions to enhance process efficiency, cut costs, and improve cross-functional alignment, or is Agile raising its head as a modern approach to replace existing approaches to software development?
According to Synopsys, there are four main approaches to software development that are followed worldwide. These are the waterfall approach, the DevOps deployment methodology, rapid application development, and finally, the Agile methodology.
The waterfall approach, first adopted by manufacturing and construction companies, advocates a top-down approach to software development. It is composed of five basic steps, namely requirement, design, implementation, verification, and maintenance. The model calls for each of these steps to be completed before developers move on to the next one, making it a rigid linear model that tolerates no adventurism. While it enables managers to set out clear objectives and stable requirements, it is not flexible enough to let developers introduce changes based on the changing needs of customers or to re-design the software code.
The Agile methodology totally upends the waterfall model by prioritizing flexibility. Developers should welcome changing requirements, even if they surface late in the development cycle. It also calls for dev teams to continuously review their development cycle and make changes regularly to attune to customer demands and to increase their efficiency.
However, the contrast between these approaches gets blurred when we consider the Rapid development model. Termed as a “modified waterfall model” by some, it works as a simplified model that starts with identifying the customer’s requirement, and then carrying out user design and construction parallely until the end user is satisfied. According to Synopsys, this model is “most effective for projects with a well-defined business objective and a clearly defined user group, but which are not computationally complex.” Agile, on the other hand, enables developers to refine change management and curate their practices to attune to the most complex tasks.
The DevOps deployment methodology, which has ushered in a new era in software development, is, according to Synopsys, “focused on improving time to market, lowering the failure rate of new releases, shortening the lead time between fixes, and minimizing disruption while maximizing reliability.” It advocates a continuous integration and continuous deployment approach (CI/CD) to improve employee productivity and efficiency.
It makes no sense to replace the DevOps methodology with Agile at a time when the former is undergoing continuous refinement to attune to the needs of different organizations. This is why DevOps experts advocate the use of Agile and DevOps processes in tandem to enable developers to get the best out of both approaches.
According to Ritam Gandhi, the founder and director of Studio Graphene, Agile and DevOps are two cultural movements that evolved due to the need for businesses to boost competitive advantage. “For companies with customer-facing offerings, agility, product quality and speed-to-market are the names of the game. This means that optimizing the product development process is a priority for teams tasked with delivering business value to customers through carefully planned and well-executed software.
“The increasing conflation of these two methodologies is a natural development, despite the common misconception that Agile and DevOps cannot go hand in hand. They are both underpinned by similar goals (namely, delivering products of the highest possible value), but bring different benefits to the table,” he says.
Gandhi reveals traditional DevOps is focused on streamlining the software delivery process and ensuring agreed timeframes and expected outcomes are met. The rise of Agile over the last few years has grown out of a need for greater flexibility, emphasized by a more cross-functional approach, frequent testing and continuous feedback. While the latter allows teams to adapt to changing customer needs and market trends quickly, the overarching goal of DevOps is to stay accountable for delivery pipelines and deliverables.
“When done effectively, it is easy to see the benefit of placing Agile and DevOps along a continuum to optimise the flow, quality and speed of work. Before combining the two disciplines, teams must ensure that their different groups are able to work together efficiently: merging business operations, software development and support teams through a common infrastructure and values is a prerequisite for success. If teams do manage to bring about a cultural and operational change, they will likely feel the benefits of increased innovation and collaboration,” he adds.
What Does the Future of Agile DevOps Look Like?
According to Anna Murray, Agile DevOps will continue to evolve with new techniques because of practitioners’ ‘continuous improvement’ mindset. A good example of this is a recent term coined in 2017, ‘GitOps,’ where the DevOps automation is focused around Git as the source of truth in infrastructure as code environment. This is a great example of Agile DevOps practitioners looking at a part of the process that needs to be improved, and then solving that problem!
“The future growth of Agile DevOps will be in its broad adoption in environments that previously couldn’t see a path forward to DevOps. Agile DevOps tools will also evolve to continue bridging gaps between technologies, thereby freeing application development teams to focus on solving the business problems put before them,” she added.
Hemant Elhence, the president of Excellarate, also expressed confidence that Agile practices have already become mainstream. “Agile is now the default method for building software. These days, it is rare to find a well-running software team which is not following some form of Agile practices. Along with that, DevOps practices are quickly becoming the default way of delivering quality software.
“With all of the development happening on cloud infrastructure—public or private—adoption of modern DevOps practices has become table stakes for any well-running software organization. Industry now expects the quality and robustness of delivered software which is ensured by continuous integration and continuous delivery practices—a basic foundation of DevOps. Businesses that adopt modern DevOps practices will have the ability to accelerate innovation and get quality, user-centric products to market faster,” he said.