Tuesday, October 24, 2017

What is the role of a DevOps coach? Part 3(4) : What are the differences between #Agile and #DevOps ?

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: 

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

E2E results
Development velocity
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
·         SCIO
Functional requirements + customer feedback on development
Value chain
·         All stakeholders must be part of Agile collaboration throughout application lifecycle
·         SCIO
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
Quality belongs to all – it is not only the testers’ responsibility
Lean thinking
      Reduction of silos 
      Waste removal
      Bottleneck identification
      Value driven thinking
      “Continuous integration”
      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
·         Fun

E2E waste reduction, achieving efficiency using tools, people and methods, and changing mindset
Lean thinking
Continuous E2E feedback and input
Looks more like backlogs, user stories and success metrics, demos

Seek input outside the team doing the work
No stages
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)

Data-based decisions

Some of the insights are collected from the following sources:

2.       The agile in DevOps
3.       DevOps and ITI