(1) Can Agile survive as DevOps becomes more ubiquitous?
Agile methods in software development have been in use for the past two decades and the last four to five years has seen the rise of DevOps methods. Has DevOps replaced agile? To answer this, let's take a closer look at Agile, DevOps and the respective reasons to use these technologies.
Agile is a philosophy that found acceptance against the waterfall model as organizations increasingly struggled to match the right level of quality in relation to speed. While agile is often a “thinking” prevalent in anything that a company does with speed, for this piece we will limit ourselves to the use of “Agile” in IT.
(2) Agile is about speed
The drivers for increased use of agile include:
- Excessively long time-to-market for products and applications
- Inadequate customer orientation and interaction
- Over-engineered products where most of a product’s features may not be used
- High project failure rate
- ROI below expectation
- Inability to respond quickly to change
- Inadequate software quality
Key digital trends that have caused an increased use of Agile include the following:
- More continual integration fueled by digital transformation
- Complex integration that uses multi-channel, omnipresent commerce, making it necessary to integrate multiple channels, devices, and wearable technology.
In agile engagements, one knows the time and resources available and needs to estimate the features that can go into a release. Two popular modes of agile include (i) Scrum (prioritizes the highest value features and incremental delivery once every two to four weeks) and (ii) Kanban (pinpoints bottlenecks to avoid hold-ups)
In sprint planning, the team selects the story points depending on various factors, including the availability of resources and user story complexity. All the members of the sprint team (cross-functional teams) are involved in this process (developers, business analysts, testers, configuration teams, build teams, the scrum master, and the production owner).
Once the user stories destined for the sprint are finalized, they are analyzed. Then, developers work on the design while testers write the test cases and share these with business analysts for review. At the end of each sprint, the team discloses the user stories selected during the sprint to the product owner and gets a go or a no-go ruling. After the demo is complete, the team gathers for the retrospective. Once reliant on co-location, today’s advanced tele-presence infrastructure makes it possible to work in distributed agile models without a co-location dependency.
(3) DevOps removes the boundaries between Dev, QA, and Operations
This ultimately leads to an IT process that supplies a continuous stream of IT updates to the end user. DevOps is all about delivering technology to businesses in an uninterrupted, non-disruptive fashion. DevOps focuses on automated deployment processes and clear communication between operations and software development teams.
As per the World Quality Report 2016-17, there are various challenges in applying testing to Agile and DevOps environments. Two of the biggest risks associated with these environments include co-location and a lack of required skills. That said, organizations have been able to find solutions to these challenges. Organizations use different techniques to speed up cycle times and use agile development. Some of these tactics include predictive analytics, BDD/TDD, continuous monitoring, automated test data generation, and test environment virtualization.
(4) Agile vs. DevOps
Agile is all about cycle-time reduction through shrinking the entire development lifecycle and automating various stages. Agile focuses more on individuals and interactions than on processes and documentations relevant to traditional development. DevOps by nature would have multiple teams able to employ various agile or non-agile principles to deliver continuous development, continuous integration, continuous testing, and continuous deployment by leveraging automation.
(5) Conclusion – Agile and DevOps are not the same
In an ideal world, DevOps engagements should follow Agile methods. However, even Waterfall or other iterative models can leverage DevOps by integrating Dev-Test-Ops. As a result, it is not appropriate to think that Agile is contained within DevOps or is a subset of DevOps: both can stand on their own.
Main Author: Renu Rajani, Vice President, Capgemini Technology Services I P Ltd, email@example.com
Contributing Author: Manish Goyal, Solutioning Program Manager, Capgemini Technology Services I P Ltd, firstname.lastname@example.org