By : Liat Palace (Director, Delivery Technology Office Agile/DevOps Coaching Team Lead – Amdocs) & Shirly Ronen Harel (Co-Founder & Agile / DevOps Coach -WeChange)
The Agile framework can work without the involvement of Operations, however DevOps cannot do without Agile practices and mindset. To support the rapid work environment change and the results we are striving to achieve, a sound application structure and solid foundation are mandatory. As DevOps leans on Agile, good Agile practices must take into consideration the end results and evolve into DevOps.
So what is the relationship between Agile and DevOps, and what are the differences between them? What do they have in common and what was added to Agile to achieve the DevOps culture and mindset?
There is no doubt that Agile has become a common practice for the last 10 years and produces great results, much better than any other “traditional” framework. It fits a fast-changing complex work environment better than any other development methodology. However, the current work environment keeps evolving, and so does the need to improve the provision of high quality continuous customer delivery.
If Agile added speed, with higher quality and the ability to address unexpected, complex work environments better than traditional processes, then DevOps now improves this even more.
We can say that while Agile was mostly bound to the development process, and did not cover Operations, DevOps serves as the handshake between Development, Testing and Operations to enable better collaboration among them. At the same time, DevOps, as an enhancement of the Agile framework, is also about improving stability and the ability to react to change, shortening the time from idea to production, ensuring better collaboration as a mindset and principle among all the parties across the entire business, increased use of tools, and maximum automation as a must.
The Agile flow:
Source: Moving to DevOps and Beyond
Following is a breakdown of the differences/additions/emphasize of the Agile and DevOps methodologies:
|The overall E2E service or software Smooth and continuous delivery to the customer
|· Continually releasing small chunks of working code
· Continuous improvement
|Focus on the end results and customer experience.
|Ensure Customer Satisfaction through efficient development, with early ROI and an opportunity for feedback
|Looking at the pipeline and feedback loop and creating a continuous improvement mechanism in the organization.
|The Agile Manifesto
|Extended implementations of Agile methods such as Scrum with Operations, Kanban with Operations, etc. Additional methods that should be put in place: Automation, testing, versioning, visualization, production monitoring
Entire delivery value chain integrated into one Agile system.
|Process implementations such as Scrum, XP and others
|Based on Agile techniques with the addition of continuous integration & deployment, tool chains, metrics, monitoring, virtualization, etc., as well as techniques to accelerate change and lower risk
|Tactical techniques such as standups, backlogs, grooming, scoping, sniffing, retrospectives, planning poker, and others
|Many tools are used. Expands Agile values and principles, and provides for integration and automation, from development to delivery to users.
Tools include: Jenkins, Git, Docker, Puppet, chef, TeamCity, OpenStack, Log collection utilities.
|Specific tools or apps to facilitate processes such as JIRA, Bugzilla, KanBoard, etc.
|In practice, “Done” is moved from delivery to the end user.
· Operations practices and tools are moved up, as early in the development cycle as possible
· Silos are flattened, and the value of incremental releases is allowed to flow to end-users without barriers
|Agile principle – Definition of Done – for working software
|· Entire value chain of delivery must buy into values & principles
|Functional requirements + customer feedback on development
|· All stakeholders must be part of Agile collaboration throughout application lifecycle
|Only Development team; customer views work increments via demos
|Main issue to handle
|Usually not considered
|The deployment pipeline
|· Test continuously
· Automate almost everything
· Continuous integration and testing is mandatory
|· Test as early and as often as possible
· Automate testing as much as possible
· Continuous integration
|Testing and Automation
|Continuous E2E integrated monitoring and optimization
|Process monitoring / production monitoring
|Development and Business undertake continuous planning using backlog with ‘end thinking first (OPS)’ and with OPS involvement
|Continuous planning and design; Scoping, discovery and grooming, planning and sniffing.
|Building the backlog
|Agile + acceleration via actions on the entire delivery cycle E2E
|Acceleration of Development, Testing and integration TTM
|Agile + improvement of quality via industrialization and automation of manual tasks as mandatory
|Embedded Quality, TDD, ATDD, upfront testing
|Agile + Emphasis on collaboration and trust
Testing is done at all stages by everyone involved
· Build something that has the quality of our brand written all over it
Reduction of silos
Value driven thinking
Culture of E2E
E2E shared ownership
QA as enabler (not gatekeeper)
Always working software
Continuous feedback: Shorter feedback loops – Strong monitoring E2E
|· We are all in this together – Dev & Testing – no Us vs. Them
· Dev &Testing shared ownership
· Embedded Quality
· Working software = Done = end of iteration
· Early Feedback
· Strong visualization
· Continuous improvement
|E2E waste reduction, achieving efficiency using tools, people and methods, and changing mindset
|Continuous E2E feedback and input
|Looks more like backlogs, user stories and success metrics, demos
|Seek input outside the team doing the work
|Agile definitely has stage gates of deployment (alpha, beta, and launch) but has the ability to deploy a solution that can be seen as a finished product at any point in time.
|Strive for no iterations – Continuous delivery
|Embrace iteration and Ongoing refinement
|Decisions are made based on analytics input from production environments (such as system usage)
Some of the insights are collected from the following sources:
- Moving to DevOps and Beyond
- The agile in DevOps
- DevOps and ITI
- How Shell Oil Is Taking DevOps and Agile to the Cutting Edge
- The DevOps (R)evolution (part 1)
- DevOps Approach (Point of View by Ravi Tadwalkar)
- How to Continuously Involve Ops Stuff in the Agile Development Cycle
- What is an Agile Testing Mindset in the DevOps World?