Many companies have adopted agile for their software development teams. These teams are doing a great job sprinting and building a lot of potentially shippable product increments. The problem is the software is only potentially shippable. The focus on potentially shippable is leading to a “Potentially shippable product Problem” where teams aren’t actually releasing the value they created and are only focused on maintaining or improving their velocity.
This deck is from a session at Agile Camp 2018 in Dallas where we talked about how using Agile and DevOps practices together can solve the potentially shippable product problem and enable teams to not only sprint but also deliver value faster, with higher quality and in more stable environments.
3. Agenda
• IT performance and DevOps
• Wall of Confusion
• Scrum-Fall
• DevOps Culture
• The 3 C’s of DevOps
• Cross-Team Collaboration
• Getting Started
4
https://pollev.com/LELANDNEWSOM556
@LelandNewsom
4.
5.
6.
7.
8.
9. IT Performance by Cluster
10Accelerate: State of DevOps 2018: Strategies for a New Economy @LelandNewsom
10. Measurable Benefits of DevOps1
11
1. Accelerate: State of DevOps 2018: Strategies for a New Economy
@LelandNewsom
11. Misguided Performers Suffer from Cautious Approach
• Organizations that take a cautious approach to software
development and deliver.
- Release code infrequently
- Uses extra time for testing and other quality checks.
• Data shows
- Low deployment frequency
- Long lead time for changes
- Better change failure rates than low performers
- Longest time to fully restore service
• Large batch releases introduce risk in the release.
- While customers may be back on the system in the hour, it
can take between 1 month and 6 months to find, fix, and
deploy the fix to what caused the initial failure
12
Accelerate: State of DevOps 2018: Strategies for a New Economy
@LelandNewsom
17. Definition of DevOps
18
DevOps is those set of cultural
norms and technology
practices that enable the fast
flow of planned work from,
among others, development,
through tests into operations
while preserving world class
reliability, operation, and
security.
DevOps is not about what you
do, but what your outcomes
are.
@LelandNewsom
18. What is DevOps Culture
• Shared values and behaviors
• There’s no right culture for DevOps, but there are characteristics:
- Respect and Trust
- High Psychological Safety
- High Cooperation
- Open Communication
- Good flow of Information
- Collaboration
- Flexible
- Supportive
- Open to experimentation
- Continuously improving
Continuous
Experimentation
Amplify Feedback LoopsSystem Flow
Lean & Agile Principles Product Centric
Continuous Flow and Visibility
Culture Practices
Performance Oriented
Innovative
Sharing
High Trust
Culture
High Cooperation
Collaboration
Continuously Improving
Empowered Employees
Infrastructure
Automation
Continuous Delivery
Monitor Everything
Release Management
Version Control
Everything
Trunk Based
Development
Continuous Integration
Continuous Testing
Reduced Lead Time for Changes
DevOps
Business Enabling Responsiveness
Modified from: https://devops.com/interconnect-2016-culture-matters/
19. What is DevOps Culture
Continuous
Experimentation
Amplify Feedback LoopsSystem Flow
Lean & Agile Principles Product Centric
Continuous Flow and Visibility
Culture Practices
Performance Oriented
Innovative
Sharing
High Trust
Culture
High Cooperation
Collaboration
Continuously Improving
Empowered Employees
Infrastructure
Automation
Continuous Delivery
Monitor Everything
Release Management
Version Control
Everything
Trunk Based
Development
Continuous Integration
Continuous Testing
Reduced Lead Time for Changes
DevOps
Business Enabling Responsiveness
Modified from: https://devops.com/interconnect-2016-culture-matters/
If we don’t
pay
attention to
culture
The
practices
will not
reach their
full
potential
• Shared values and behaviors
• There’s no right culture for DevOps, but there are characteristics:
- Respect and Trust
- High Psychological Safety
- High Cooperation
- Open Communication
- Good flow of Information
- Collaboration
- Flexible
- Supportive
- Open to experimentation
- Continuously improving
• If your organization doesn’t have these, you have to build them
20. Pathological
(Power-oriented)
(31%)
Bureaucratic
(Rule-oriented)
(48%)
Generative
(Performance-oriented)
(21%)
Low cooperation Modest cooperation High cooperation
Messengers shot Messengers neglected Messengers trained
Responsibility shirked Narrow responsibilities Risks are shared
Bridging discouraged Bridging tolerated Bridging encouraged
Failure leads to scapegoating Failure leads to justice Failure leads to inquiry
Novelty crushed Novelty leads to problems Novelty implemented
Typology of Organizational Culture (Westrum, 1994)
21. How to Build a Generative Culture
Characteristics of a
Generative Culture
DevOps Practices
High Cooperation Cross-functional teams. Create cross-functional teams that include representatives from each functional area
of the software delivery process.
Messengers trained Blameless Postmortems. By removing blame, you remove fear, you enable teams to more effectively surface
problems and solve them. Mistakes happen; holding blameless postmortems or blameless problem
solving/issue resolution is a valuable way to learn from mistakes.
Risks are Shared Shared Responsibility. Quality, availability, reliability, and security are everyone’s job. The improvement in
collaboration that comes from sharing responsibility inherently reduces risk.
Bridging encouraged Breaking down silos. In addition to creating cross-functional teams, techniques for breaking down silos can
include co-locating or embedding ops with the dev team or including ops in planning throughout the software
delivery lifecycle.
Failure leads to inquiry Blameless postmortems. Your response to failure shapes the culture of the organization. The more you focus
on the conditions in which failures happen, as opposed to blaming individuals for failures, the closer you’ll get
to creating a generative culture.
Novelty implemented Experimentation Time. Giving employees freedom to explore new ideas can lead to great outcomes. Some
companies give engineers time each week for experimentation. Others host internal hack-a-thons or hold
internal conferences to share ideas and collaborate.
Jesse Newland, “ChatOps at Github” March 26, 2013
https://www.slideshare.net/DevOpstastic/how-devops-drives-organisational-change
22. Three Ways: The Principles Underpinning DevOps
23@LelandNewsom
24. Continuous Integration
“Continuous Integration is a software development practice where members of a
team integrate their work frequently, usually each person integrates at least daily -
leading to multiple integrations per day. Each integration is verified by an automated
build (including test) to detect integration errors as quickly as possible. Many teams
find that this approach leads to significantly reduced integration problems and allows
a team to develop cohesive software more rapidly.”
-Martin Fowler
25@LelandNewsom
28. Test Automation vs. Continuous Testing
Write Test
Scripts
Integrate
Code
Build
Manual
Start
Integration
Manual
Start
Acceptance
Manual Start
Performance
Test
29
Write Test
Scripts
Integrate
Code
Build
Automated
Integration
Test
Automated
Acceptance
Test
Automated
Performance
Test
Test Automation
Continuous Testing
Manual steps impacts
efficiency & delays feedback
No human intervention
@LelandNewsom
29. Ideal Software Testing Pyramid
30
Harder
Easier
Automation
Many
Few
Brittle
Solid
70%
20%
10%
@LelandNewsom
32. 1
Continuous Delivery - 1st Agile Principle
33
Deliver
Value
Our highest priority is to satisfy the customer
through early and continuous delivery of
valuable software.
@LelandNewsom
33. Difference in Continuous Deliver and Continuous Deployment
34
https://sdtimes.com/automation/guest-view-continuous-delivery-vs-continuous-deployment-whats-difference/
@LelandNewsom
34. Practicing Continuous Integration, Testing, and Delivery
35
modified from: https://continuousdelivery.com/2010/02/continuous-delivery/
Delivery Team
Version
Control
Build & Unit
Test
Integration
Tests
Acceptance
Tests
!
!
Check in
Check in
Trigger
Trigger
Trigger
Feedback
Feedback
Check in
Trigger
Trigger
Feedback
Feedback
Manual
Approval
Feedback
Feedback
Feedback
Trigger
Release
@LelandNewsom
35. Risk Mitigation in Continuous Delivery
Goal: Increase release frequency and not increase risk.
• Decouple releases from deployments & development cadence
• Application-based patterns
• Feature toggles
• Dark launches
• Use Environment-based release patterns
• Canary Releases
• Blue-Green pattern
36Blue-green deployment pattern (Source Humble and North, Continuous Delivery, 261).
Users Router
Web Server
V 1.0
V 1.1
App Server
V 1.0
V 1.1
DB Server
V 1.0
V 1.1
@LelandNewsom
36. Infrastructure as Code
37
Img source: https://bitninja.io/blog/2018/01/26/describe-your-infrastructure-as-code
@LelandNewsom
37. Development & Ops Cross-Team Collaboration
38
Source: Forrester Report Feb 2015 – Infrastructure as Code: Fueling the fire for faster application delivery
@LelandNewsom
38. Improve Collaboration is a Critical Benefit
39
Source: Forrester Report Feb 2015 – Infrastructure as Code: Fueling the fire for faster application delivery
@LelandNewsom
39. Getting Started
40@LelandNewsom
Agree on
Where to
Start
Align on
Outcomes1
Map the Value
Stream
Determine
How to
Execute
Choose an area of
the business to
start
Involve
management
Pay attention to
culture
• More frequent
deployments
• Shorter delivery
lead time
• Shorter Mean
Time To Recover
• Lower change
failure rates
• Walk the
process
collaboratively
from end to end
• Identify issues,
waste,
bottlenecks
• Build an
improvement
backlog
• Who is on the
team?
Stakeholders?
• Who sets
priorities?
• How will
progress be
measured?
1. Accelerate: State of DevOps 2018: Strategies for a New Economy
Execute
• Measure
working
software
• Optimize the
flow of value
• Amplify
feedback loops
• Attention to
tech excellence
41. Learn More
• Forrester Blog – Agile Only? No thanks! Agile + DevOps Please!(Dec 2017)
- https://go.forrester.com/blogs/agile-only-no-thanks-agile-devops-please/
• Forrester Report – Infrastructure as Code: Fueling the fire for faster application delivery (Feb 2015)
- https://devops.com/forrester-devops-white-paper/
• 2018 State of DevOps Report
- https://puppet.com/resources/whitepaper/state-of-devops-report
• Google Testing Blog
- https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html
• Pluralsight – Everything you need to know about Continuous Testing
- https://www.pluralsight.com/guides/devops/everything-you-need-to-know-about-continuous-testing
42