Agile development means fast, practical delivery of software while DevOps handles its practical rollout to users. Put together, they’re both sides of the same coin
DevOps aims to shorten the systems development lifecycle and provide continuous delivery with high quality software. We look at how DevOps is complementary with agile software development.
DevOps and agile – non-compete
David Huntley, continuous improvement director at workforce platform Distributed, says of the two: “DevOps and agile are not in competition, they work hand-in-hand to ensure everyone is working together as smoothly as possible. There are differences between the two concepts though.”
Huntley explains: “Agile encompasses everything upstream of development – it’s about working more closely with the wider business in order to develop a product that is fit for market. Meanwhile, DevOps is about working downstream with development and operations teams to ensure that new software works in production.
“In other words, agile is about getting software out the door quickly and DevOps ensures it’s done safely and reliably, which is why the two complement each other so well.”
‘Agile is about getting software out the door quickly and DevOps ensures it’s done safely and reliably’David Huntley, continuous improvement director Distributed
DevOps x Agile – fusion
Michael Cade, senior global technologist at Veeam, says: “DevOps and agile frameworks were developed as standalone concepts, but have become increasingly fused together. While DevOps can be described as a culture and is process-driven, agile is more of an outcome-focused approach. Another way to look at it is agile is more outfacing toward customers, whereas DevOps is a set of internal practices.
“While these practices can be deployed independently, many teams use them in tandem due to their natural synergy. For example, agile’s short iterations and need for customer engagement are made much easier with the speed and automation that DevOps brings, while agile frameworks can help DevOps teams to better communicate their priorities, helping to justify the associated automation costs,” says Cade.
DevOps vs agile – risks
But there are risks associated with both DevOps and agile, warns Cade.
“Agile projects are difficult to predict or evaluate due to continuously changing requirements and priorities. Whereas DevOps risks come from misunderstanding the term or not possessing suitable tools. For some people, DevOps is mistakenly seen as a collection of software for continuous deployment and integration – resulting in a failure to change the underlying structure of the development process.”
Cade adds: “Change is happening faster than ever with these methodologies. Having a backup strategy alongside the DevOps and agile principles and processes not only provides the ability to recover data fast when a failure occurs, but also the ability to migrate and clone data to use in other pipelines for test and development.”
Kristin Baskett, director of product marketing at DevOps development platform Copado, says: “Agile and DevOps are two methodologies with similar goals, to make software delivery better – better for the teams doing the development and better for the end-users interacting with the code in the wild.”
She says: “The Agile Manifesto was published seven years before the ‘birth of DevOps’. The first tenet of the Agile Manifesto is ‘Individuals and Actions over Process and Tools’. Funnily enough, the first tenet is also the gap that DevOps came along to fill.”
The Agile Manifesto, a brief document published which states four values and 12 principles for agile software development, was published in February 2001 after a brainstorming session involving 17 software developers.
Adds Baskett: “The individuals participating in the agile process were predominantly engineers, developers, product and release managers, etc. They are the ‘Dev’ in DevOps. DevOps is the bridge that unites these developers with their IT operations counterparts – the folks taking care of applications in production including service management, performance management, monitoring, security and incident management.
“Also important is the realisation that the critical customer feedback loops needed by developers to take on a product-centric delivery approach often come from IT Ops practices.”
DevOps encompasses and extends the practice of agile to break down silos across the entire software delivery lifecycle.
“When ‘Individuals and Actions’ are united through DevOps, you can then turn your eyes towards the tools that accelerate software delivery,” says Baskett.
“Solutions that enable automation such as CI/CD [continuous integration and continuous deployment] and testing through the perspective of agile user stories are the key to solidifying the human aspect of continuity, transparency and fast iterative improvement in software delivery.”
Harbinder Kang, global head of developer operations at Finastra, says: “The growing pressure for the continuous delivery of services is driving the adoption of DevOps tools and practices, as well as agile methodologies, to enable the fast delivery of applications to market.
“Long lead times for new features and applications are increasingly unpalatable for customers today, whether they be individual consumers or large-scale enterprises. Furthermore, there is an expectation that core features will be upgraded seamlessly, without any compromise to reliability and security.”
To break out of traditional methods of delivering software, such as waterfall, organisations are therefore using a combination of DevOps tools and agile frameworks to break down products into micro-services, that can be delivered, managed and updated on a continuous basis, says Kang.
“DevOps is undoubtedly an effective means of accelerating innovation, but an agile framework that organises teams around the delivery of micro-services, and provides total ownership of their applications, is also essential,” Kang says.
Build it, run it?
Chris Astley, head of connected engineering at KPMG UK, says: “A primary distinction is that DevOps is impossible to do without being agile, yet it is possible to be agile without DevOps. The key difference is that in DevOps you take the view ‘if you built it, you run it’. This means that the same team who created a service must be responsible for operating it.
“Of course, in an agile methodology you could still split build and run stages and do the build in an agile manner, then hand over to another team for run.”
He adds: “What’s more interesting are the operating model changes you need to carry out to make DevOps really work, the key thing being that you’re conducting operations activities in an agile methodology.”
This in particular will be very alien to most large enterprises who are used to strict information technology infrastructure library (ITIL) methodologies for their run stage, says Astley.
“They will find their operations activities appear disorganised and lack structure. But this isn’t necessarily true – it’s more that the normal structures IT leaders look for have been replaced with ones they don’t recognise.
“For example, change-advisory boards [CABs] are replaced with sprint planning. Helping leadership understand that no amount of structure or good organisation has been lost is critical to the success of moving to a DevOps model.”
The ultimate guide to DevOps: everything an enterprise needs to know – A strong DevOps strategy can help to break down the silos between business and IT, necessary to maintain productivity, efficiency and security in this new age of remote working, which is why Information Age has produced this DevOps guide
The most vital roles to fill in DevOps – What are the vital roles when it comes to DevOps? With a growing IT skills shortage, Antony Savvas considers the most important jobs in the sector
The most important DevOps tools for tech workers – There are so many DevOps tools out there to help you deliver, it can feel overwhelming. Github or Gitlab? Openshift or Kubernetes? Antony Savas talks to DevOps experts about their favourites
Establishing a strong DevOps pipeline – Having a strong DevOps pipeline is increasingly important for business creating software inhouse. What can CTOs do to ensure a steady flow?