What Is the Difference Between Agile and DevOps?
What Is the Difference Between Agile and DevOps?
Just as Waterfall gave way to Agile, more companies are now parlaying their Agile methods into DevOps. But what are they changing?
Join the DZone community and get the full member experience.Join For Free
Engineers build business. See why software teams at Atlassian, PayPal, TripAdvisor, Adobe, and more use GitPrime to be more data-driven. Request a demo today.
While we may all agree that the best run companies run on SAP, we may also agree that in the areas of development and testing, any “running” may appear more on pace with a country stroll. The monolithic waterfall approach to releasing features, fixes, and updates in traditional large-scale development is well-established, particularly in the world of SAP.
However, many leading global brands, including Facebook, Walmart, Sony Pictures and Zalando, are already adopting new approaches in an attempt to make their businesses more competitive and responsive. Namely, Agile and DevOps, two modern development methods that provide a rapid response to the digital disruption that is happening all around us, with the added benefits of lower cost, reduced risk, and increased quality.
As the benefits of such methods become increasingly evident, and their use becomes more and more common in enterprise applications like SAP, this article looks at some of the ways in which waterfall, Agile and DevOps differ.
The Waterfall Approach: SAP Standard Operating Procedure
In order to understand how Agile and DevOps differ from traditional ways of working, it may be best to start with a definition of the Waterfall approach, to level-set our discussion.
Waterfall development comes from the construction and manufacturing realm. It provides a highly-structured, linear path to an end product, granting that all systems are predictable and can be specified in advance.
In a waterfall model, project requirements are established up front, followed by design, then implementation, verification, and maintenance. It culminates in a “big bang” release. Ongoing business needs are assumed to remain similar throughout the process. Teams operate in silos, led by comprehensive documentation. Automation is often not involved, and quality testing is delayed until the end.
In the SAP world, given the high level of integration and large number of dependencies inherent in the software, Waterfall development has become the accepted practice.
However, with the right adjustments to culture, processes, and tools, SAP development may benefit from Agile and DevOps in creating the business agility required to operate most effectively in today’s fast-moving, competitive environment.
Agile methodology springs from the Manifesto for Agile Software Development published by a group of developers in 2001. It defines a more adaptive, code-centered, collaborative approach to software development than is evidenced in Waterfall, placing a premium value on:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
This relatively formal development methodology supports a number of popular frameworks, including Scrum, a team concept focusing on iterative actions completed in “sprints,” and Kanban, a lean methodology for managing work around human-based systems.
Unlike Waterfall, Agile development and testing occur concurrently, in process versus in sequence. Teams communicate closely with business owners and customers, involving stakeholders at every step. Documentation is light. Feedback is solicited frequently, and quality issues are addressed after every sprint.
Agile’s iterative delivery approach enables prioritization, proving value weekly, or even daily, while significantly reducing project risk. As opposed to the typical six-month Waterfall delivery timetable, that waits until the end for course corrections, Agile responds to specific, evolving needs with great agility in an iterative, ongoing fashion.
DevOps takes the Agile concept one step further. It aims to make IT more responsive to business needs by connecting cross-functional, multi-skilled teams in a collaborative ecosystem that integrates development, testing, QA, operations, security, and business stakeholders across the project lifecycle. This, in turn, supports continuous testing, integration, delivery, and deployment of stable, high-quality software, guided by continuous feedback – and enhanced by automation.
Gene Kim, renowned researcher, author, and CTO, describes “The Three Ways” of DevOps as:
- The performance of an entire system, delivering value from development to operations to the customer.
- The optimization of feedback loops to continually improve corrections.
- The creation of a culture of experimentation and learning to master continuous improvement and innovation.
Before an organization can adopt a DevOps environment, it must first embed an Agile development process within a collaborative people culture and support the program with the right technology to influence success.
One way of achieving this is through the CALMS model, a framework for incorporating DevOps into an organization based on Culture, Automation, Lean, Measurement, and Sharing. There are other ways, but suffice to say, where Agile is a prerequisite for DevOps, the reverse is not so. DevOps relies on Agile to work, but Agile remains iterative when employed apart from DevOps. DevOps is the way to enable continuous deployment of change.
The Benefits of Agile/DevOps in SAP
So, how do these methodologies help transform SAP, which we already established as a complex, interdependent system layered across the enterprise?
To begin, without DevOps, deploying even small changes to SAP systems can be time-consuming, often resulting in long release cycles, system instability and risk. Teams are disconnected, processes are highly manual and error-prone and, lacking visibility into the workflow, poor efficiency and large overheads persist.
In an SAP environment, DevOps builds on Agile to enable you to:
- Fail fast and respond fast, delivering requirements at business speed.
- Reduce risk and demonstrate impact, splitting releases into smaller batches.
- Avoid temporary workarounds, using a lean approach to delivery.
- Gain visibility and control, engaging all stakeholders on a daily basis.
- Recover fast, removing the risk and uncertainty associated with massive deployments.
Together, Agile and DevOps provide IT teams with the means to deliver change fast, in response to customer demands – ultimately creating commercial differentiation. In the world of SAP, the combined approach can be game-changing.
Overview of different development methodologies:
Opinions expressed by DZone contributors are their own.