SlideShare a Scribd company logo
Copyright © 2019 CMMI Institute. All rights reserved.
M i c h a e l K i n g
C h i e f T e c h n o l o g y O f f i c e r
H a l f a k e r a n d A s s o c i a t e s
Enforcing Quality with
DevOps Pipeline Gates
Agenda
 Context
 Background: Software Testing Concepts
 Background: What is DevOps?
 What is Continuous Quality (CQ)?
 CQ Concept of Operations
 Categories of CQ Tests
 CQ Technologies
 What Happened?
 What did we Learn?
 Lessons Learned
Context
 Halfaker and Associates (Halfaker,
www.halfaker.com) is a midsize company,
headquartered in Arlington
 Halfaker creates, modernizes, integrates, and
secures mission critical systems for Federal
Government organizations
 Halfaker is a fast-growing organization that invests
in improving our Agile management and software
engineering maturity to better serve our customers
 As Halfaker has scaled rapidly (100 employees in
2015) and begun managing large, more complex,
more visible programs, we’ve needed to improve
how we ensure quality in our technology solutions
 We’ve been prioritizing investment at the
intersection of Software Testing/Quality and
DevOps
Background: Software Testing Domain
The Test Pyramid
Diagrams from https://martinfowler.com/bliki/TestPyramid.html and
https://martinfowler.com/articles/microservice-testing/#conclusion-test-pyramid
 Similar to the Food Pyramid, a healthy Testing Program (“diet”)
should be balanced – Mike Cohn and Martin Fowler have written
about the concept of the Test Pyramid many times
 Some teams focus too much on end-to-end testing and
exploratory (ad-hoc) testing, without building the solid foundation
of unit and integration tests
 Unit tests are small, in-code tests, which developers should write
consistently throughout the development and maintenance of
software – they are fast to run (because they are often automated)
and provide a solid foundation by ensuring that micro-level
assumptions are met
 Moving up the test pyramid, there should be fewer tests created at
each level, with a focus more and more at the macro level of the
system
 Across the layers, think about: (1) Does it do what it’s supposed to
do? (2) Is it intuitive to use correctly? (3) Can I break the system?
Background: What is DevOps?
 Development Operations (DevOps) is a set of practices focused on improving
the intersection/relationship between software development and IT operations
teams
 DevOps is based on a culture of collaboration, instead of traditional silos
 DevOps is not a just technology – it is more of a philosophy, similar to how
Agile is much more than just Scrum ceremonies/tools/roles
 DevOps is enabled through the use of technologies that automate activities
including building, testing, and delivering software to create smaller, lower
risk feedback loops related to software engineering
 Atlassian.com/devops and The Phoenix Project are great introductions to the
topic
What is Continuous Quality (CQ)?
 Viewing software testing and quality management as an event done by people
with “test” in their job titles doesn’t scale with the velocity and Agility needed for
today’s engineering work
 Instead, organizations should view Continuous Quality (CQ) as the goal – with a
focus on:
 Shift Left – Focus on measuring/assessing quality as early as possible,
continually “shifting left” to reduce the time a defect/misunderstanding exists
 Automate Quality – The more we can automate quality, the more quickly and
comprehensively we can assess quality, freeing up time to focus on doing a
faster and better job of the quality work that can’t be automated
 (If teams don’t have a mature, comprehensive testing program, they certainly
need to build that foundation BEFORE they can shift left and automate)
Concept of CQ Gates
 We enforce quality in a Continuous Quality environment by
defining automated gates that does not let code/software pass
without passing the test
 These gates enforce rules, such as:
 Unit Test Coverage (Goal is 100%, but that isn’t always reasonable, so we
set an enforced threshold, such as >= 80% of lines are covered by unit tests;
see https://martinfowler.com/bliki/TestCoverage.html)
 Unit Test Pass Rate (e.g. 100% of unit tests must pass)
 Static Code Analysis Thresholds (e.g. SonarQube tests re: code complexity)
 Accessibility Tests (e.g. Section 508,
https://www.deque.com/tools/worldspace-attest/)
 Source code vulnerability scan (Look for security weaknesses)
 Performance Testing (Build the application and test it for responsiveness)
 Capitol One has a blog post about their 16 Gates
https://medium.com/capital-one-tech/focusing-on-the-devops-
pipeline-topo-pal-833d15edf0bd
Visualizing Continuous Quality
 DevOps Teams should select the gates that provide the best return
(improving software quality) on investment of configuration and
maintenance
What Happened?
 Halfaker established automated Continuous Integration/Continuous Deployment
(CI/CD) pipelines across several programs, using the open source Jenkins automation
technology
 Halfaker then added Continuous Quality gates, which has led to dramatically
improved efficiency (less rework and surprises late in the process) and improved
quality
 We initially focused on a few key gates (Unit Tests, Static Code Analysis (Code
Complexity) and Source Code Security Scans), because they were our biggest
drivers in ROI
 One of our Federal Government customers had an Production Readiness Review
(PRR) security audit done by a IV&V team on one of our programs, and they were
shocked that we had zero identified security vulnerabilities – something that is very
uncommon for this Federal agency
 We also standardizing on a source code branching strategy (GitFlow,
https://nvie.com/posts/a-successful-git-branching-model/), which improved the quality
of our build process
Some Recommended Technologies
 These are some of the technologies we’ve found success with
Test Type CQ Approach
User Acceptance Testing
(UAT)
N/A (Humans presenting to customers)
Exploratory N/A (Humans exploring)
End to End (Functional) Many options such as Cucumber, Gherkin, Protractor
Performance Apache JMeter™
Security Fortify or SonarQube static code analysis
Code Complexity SonarQube Quality Gate
Component (Functional) N/A (Humans exploring parts of the system)
Integration Jenkins Build/Delivery Validation
Unit SonarQube Quality Gate: Unit Test Coverage >= 80%
Jenkins Automation Server Technology
 Jenkins, an open source technology, provides the central orchestration required to
define the CI/CD pipeline, which collects, builds, validates quality gates, and
deploys the software
SonarQube Continuous Code Quality Tool
 SonarQube, an open source technology, provides a platform to analyzing code
quality to identify areas for developers to review – below are screenshots showing
code quality (left) and quality gates (right)
Example of Unit Test Coverage Analysis
Image from https://blog.lgohlke.de/java/sonarqube/coverage/maven/2015/02/05/sonarqube-
code-coverage-unittests-integrationtests.html
Example of Static Code Analysis (Code Complexity) Failure
 xxxx
Image from https://www.sonarqube.org/features/issues-tracking/
Example of Source Code Security Scan Failure
 xxxx
Image from https://www.sonarqube.org/features/issues-tracking/
What did we Learn?
Make it Easy to See Continuous Quality
 Make information convenient
(information radiators) – we used
open source tools including Capital
One’s Hygieia (see right) and
Grafana for several of our projects
to visualize data related to
Continuous Quality and DevOps
 Many teams used shared TVs to
keep this information very visible
for the team, and created some
healthy peer pressure not to be the
person who broke the build
Example DevOps and Continuous Quality Technologies
Planning and Rqmts.
(PP, RD, REQM)
• Atlassian Jira
• Zephyr
• CA Agile (Rally)
Configuration
Management (CM)
• Source Repository
• GitHub
• Bitbucket
• Infrastructure
Configuration:
• Chef
• Ansible
• Terraform
Product Integration
(PI) and Release
Management
• Jenkins CI/CD
Pipeline
• CA Automic
• IBM UrbanCode
Testing (VAL, VER)
• Unit Testing (JUnit,
HtmlUnit, Microsoft
Unit Test)
• Behavior Driven Dev
(Cucumber, Gherkin,
RSpec)
• Functional Tests
(Selenium, Katalon,
Appium, Protractor,
SmartBear
TestComplete)
• Accessibility (Deque,
aXe, SortSite)
• Performance
(LoadUI, JMeter, MS
VSTS, LoadRunner)
Recap
Invest time in improving to get out of reactive firefighting
1. Shift Left! Try to enforce and test as early as you can, as it only gets
more expensive the farther requirements, designs, code, etc. make it in
the process
2. Automate everything you can and then tune to the right amount of
automation – you can’t, and shouldn’t, automate everything; but it’s wise
to try and see what sticks!
3. Enforce Continuous Quality gates that require developers to meet or
exceed your requirements, which reduces rework and clarifies
engineering expectations at the beginning
4. Maximizing the value produced (functional code that comes through the
CI/CD pipeline), instead of trying to keep everyone on your teams busy
(see The Goal)
Questions?
Follow-up Questions? Want to Connect?
 michael.king@halfaker.com
 @mikehking (Twitter)
 https://www.linkedin.com/in/mikehking
Copyright © 2019 CMMI Institute. All rights reserved.
Thank You!
Please rate this presentation!
C M M I I N S T I T U T E . C O M / C O N F E R E N C E S

More Related Content

What's hot

Performance Engineering Masterclass: Efficient Automation with the Help of SR...
Performance Engineering Masterclass: Efficient Automation with the Help of SR...Performance Engineering Masterclass: Efficient Automation with the Help of SR...
Performance Engineering Masterclass: Efficient Automation with the Help of SR...
ScyllaDB
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
An Nguyen
 
Shift Left Security - The What, Why and How
Shift Left Security - The What, Why and HowShift Left Security - The What, Why and How
Shift Left Security - The What, Why and How
DevOps.com
 
Devops insights
Devops insightsDevops insights
Devops insights
Mohammad Imran Ansari
 
DevOps: Infrastructure as Code
DevOps: Infrastructure as CodeDevOps: Infrastructure as Code
DevOps: Infrastructure as Code
Julio Aziz Flores Casab
 
Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)
Abeer R
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
Innovation Roots
 
Pentest is yesterday, DevSecOps is tomorrow
Pentest is yesterday, DevSecOps is tomorrowPentest is yesterday, DevSecOps is tomorrow
Pentest is yesterday, DevSecOps is tomorrow
Amien Harisen Rosyandino
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
Steve Mactaggart
 
DevOps Maturity Curve v5
DevOps Maturity Curve v5DevOps Maturity Curve v5
DevOps Maturity Curve v5
Paul Peissner
 
infrastructure as code
infrastructure as codeinfrastructure as code
infrastructure as code
Amazon Web Services
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
SlideTeam
 
GitOps 101 Presentation.pdf
GitOps 101 Presentation.pdfGitOps 101 Presentation.pdf
GitOps 101 Presentation.pdf
ssuser31375f
 
Getting Started with Infrastructure as Code
Getting Started with Infrastructure as CodeGetting Started with Infrastructure as Code
Getting Started with Infrastructure as Code
WinWire Technologies Inc
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
rajdeep
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
Araf Karsh Hamid
 
DevOps Transformation: Learnings and Best Practices
DevOps Transformation: Learnings and Best PracticesDevOps Transformation: Learnings and Best Practices
DevOps Transformation: Learnings and Best Practices
QBurst
 
DevSecOps and the CI/CD Pipeline
 DevSecOps and the CI/CD Pipeline DevSecOps and the CI/CD Pipeline
DevSecOps and the CI/CD Pipeline
James Wickett
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cd
Billy Yuen
 

What's hot (20)

Performance Engineering Masterclass: Efficient Automation with the Help of SR...
Performance Engineering Masterclass: Efficient Automation with the Help of SR...Performance Engineering Masterclass: Efficient Automation with the Help of SR...
Performance Engineering Masterclass: Efficient Automation with the Help of SR...
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 
Shift Left Security - The What, Why and How
Shift Left Security - The What, Why and HowShift Left Security - The What, Why and How
Shift Left Security - The What, Why and How
 
Devops insights
Devops insightsDevops insights
Devops insights
 
DevOps: Infrastructure as Code
DevOps: Infrastructure as CodeDevOps: Infrastructure as Code
DevOps: Infrastructure as Code
 
Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
Pentest is yesterday, DevSecOps is tomorrow
Pentest is yesterday, DevSecOps is tomorrowPentest is yesterday, DevSecOps is tomorrow
Pentest is yesterday, DevSecOps is tomorrow
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
DevOps Maturity Curve v5
DevOps Maturity Curve v5DevOps Maturity Curve v5
DevOps Maturity Curve v5
 
infrastructure as code
infrastructure as codeinfrastructure as code
infrastructure as code
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
 
GitOps 101 Presentation.pdf
GitOps 101 Presentation.pdfGitOps 101 Presentation.pdf
GitOps 101 Presentation.pdf
 
Getting Started with Infrastructure as Code
Getting Started with Infrastructure as CodeGetting Started with Infrastructure as Code
Getting Started with Infrastructure as Code
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
DevOps Transformation: Learnings and Best Practices
DevOps Transformation: Learnings and Best PracticesDevOps Transformation: Learnings and Best Practices
DevOps Transformation: Learnings and Best Practices
 
CICD with Jenkins
CICD with JenkinsCICD with Jenkins
CICD with Jenkins
 
DevSecOps and the CI/CD Pipeline
 DevSecOps and the CI/CD Pipeline DevSecOps and the CI/CD Pipeline
DevSecOps and the CI/CD Pipeline
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cd
 

Similar to Enforcing Quality with DevOps Pipeline Gates

Neotys PAC 2018 - Ramya Ramalinga Moorthy
Neotys PAC 2018 - Ramya Ramalinga MoorthyNeotys PAC 2018 - Ramya Ramalinga Moorthy
Neotys PAC 2018 - Ramya Ramalinga Moorthy
Neotys_Partner
 
Functional Continuous Integration with Selenium and Hudson
Functional Continuous Integration with Selenium and HudsonFunctional Continuous Integration with Selenium and Hudson
Functional Continuous Integration with Selenium and Hudson
David Jellison
 
Continuous testing the new must have skill of tomorrow's tech leaders
Continuous testing  the new must have skill of tomorrow's tech leadersContinuous testing  the new must have skill of tomorrow's tech leaders
Continuous testing the new must have skill of tomorrow's tech leaders
Nadav Yeheskel - Looking for a Test/QA engineer
 
Continuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOpsContinuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOps
SeaLights
 
No Devops Without Continuous Testing
No Devops Without Continuous TestingNo Devops Without Continuous Testing
No Devops Without Continuous Testing
Parasoft
 
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
Alessandro Alpi
 
Software Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails ApplicationsSoftware Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails Applications
Bhavin Javia
 
Lightning Talks by Globant - Automation (This app runs by itself )
Lightning Talks by Globant -  Automation (This app runs by itself ) Lightning Talks by Globant -  Automation (This app runs by itself )
Lightning Talks by Globant - Automation (This app runs by itself )
Globant
 
An Ultimate Guide to Continuous Testing in Agile Projects.pdf
An Ultimate Guide to Continuous Testing in Agile Projects.pdfAn Ultimate Guide to Continuous Testing in Agile Projects.pdf
An Ultimate Guide to Continuous Testing in Agile Projects.pdf
KMSSolutionsMarketin
 
Quality at the speed of digital
Quality   at the speed of digitalQuality   at the speed of digital
Quality at the speed of digital
rajni singh
 
How Agile Are you
How Agile Are youHow Agile Are you
How Agile Are you
Heaton Cai
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
Adam Stephensen
 
Application Lifecycle Management (ALM), by Marco Silva
Application Lifecycle Management (ALM), by Marco SilvaApplication Lifecycle Management (ALM), by Marco Silva
Application Lifecycle Management (ALM), by Marco Silva
Agile Connect®
 
Scrum Portugal Meeting 1 Lisbon - ALM
Scrum Portugal Meeting 1 Lisbon - ALMScrum Portugal Meeting 1 Lisbon - ALM
Scrum Portugal Meeting 1 Lisbon - ALM
Marco Silva
 
Roadmap to Enterprise Quality
Roadmap to Enterprise QualityRoadmap to Enterprise Quality
Roadmap to Enterprise Quality
Jeff Bramwell
 
(Technologies) AI, Machine Learning, Predictive Analytics, IIOT, Cloud,Web-fr...
(Technologies) AI, Machine Learning, Predictive Analytics, IIOT, Cloud,Web-fr...(Technologies) AI, Machine Learning, Predictive Analytics, IIOT, Cloud,Web-fr...
(Technologies) AI, Machine Learning, Predictive Analytics, IIOT, Cloud,Web-fr...
Farhan Tariq
 
Neev QA Offering
Neev QA OfferingNeev QA Offering
Neev QA Offering
Neev Technologies
 
expoQA17 "Testing tools in the ages of DevOps and Agile"
expoQA17   "Testing tools in the ages of DevOps and Agile"expoQA17   "Testing tools in the ages of DevOps and Agile"
expoQA17 "Testing tools in the ages of DevOps and Agile"
atSistemas
 
ExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agile
ExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agileExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agile
ExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agile
Eduardo Riol
 
The Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOpsThe Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOps
TEST Huddle
 

Similar to Enforcing Quality with DevOps Pipeline Gates (20)

Neotys PAC 2018 - Ramya Ramalinga Moorthy
Neotys PAC 2018 - Ramya Ramalinga MoorthyNeotys PAC 2018 - Ramya Ramalinga Moorthy
Neotys PAC 2018 - Ramya Ramalinga Moorthy
 
Functional Continuous Integration with Selenium and Hudson
Functional Continuous Integration with Selenium and HudsonFunctional Continuous Integration with Selenium and Hudson
Functional Continuous Integration with Selenium and Hudson
 
Continuous testing the new must have skill of tomorrow's tech leaders
Continuous testing  the new must have skill of tomorrow's tech leadersContinuous testing  the new must have skill of tomorrow's tech leaders
Continuous testing the new must have skill of tomorrow's tech leaders
 
Continuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOpsContinuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOps
 
No Devops Without Continuous Testing
No Devops Without Continuous TestingNo Devops Without Continuous Testing
No Devops Without Continuous Testing
 
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
 
Software Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails ApplicationsSoftware Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails Applications
 
Lightning Talks by Globant - Automation (This app runs by itself )
Lightning Talks by Globant -  Automation (This app runs by itself ) Lightning Talks by Globant -  Automation (This app runs by itself )
Lightning Talks by Globant - Automation (This app runs by itself )
 
An Ultimate Guide to Continuous Testing in Agile Projects.pdf
An Ultimate Guide to Continuous Testing in Agile Projects.pdfAn Ultimate Guide to Continuous Testing in Agile Projects.pdf
An Ultimate Guide to Continuous Testing in Agile Projects.pdf
 
Quality at the speed of digital
Quality   at the speed of digitalQuality   at the speed of digital
Quality at the speed of digital
 
How Agile Are you
How Agile Are youHow Agile Are you
How Agile Are you
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 
Application Lifecycle Management (ALM), by Marco Silva
Application Lifecycle Management (ALM), by Marco SilvaApplication Lifecycle Management (ALM), by Marco Silva
Application Lifecycle Management (ALM), by Marco Silva
 
Scrum Portugal Meeting 1 Lisbon - ALM
Scrum Portugal Meeting 1 Lisbon - ALMScrum Portugal Meeting 1 Lisbon - ALM
Scrum Portugal Meeting 1 Lisbon - ALM
 
Roadmap to Enterprise Quality
Roadmap to Enterprise QualityRoadmap to Enterprise Quality
Roadmap to Enterprise Quality
 
(Technologies) AI, Machine Learning, Predictive Analytics, IIOT, Cloud,Web-fr...
(Technologies) AI, Machine Learning, Predictive Analytics, IIOT, Cloud,Web-fr...(Technologies) AI, Machine Learning, Predictive Analytics, IIOT, Cloud,Web-fr...
(Technologies) AI, Machine Learning, Predictive Analytics, IIOT, Cloud,Web-fr...
 
Neev QA Offering
Neev QA OfferingNeev QA Offering
Neev QA Offering
 
expoQA17 "Testing tools in the ages of DevOps and Agile"
expoQA17   "Testing tools in the ages of DevOps and Agile"expoQA17   "Testing tools in the ages of DevOps and Agile"
expoQA17 "Testing tools in the ages of DevOps and Agile"
 
ExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agile
ExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agileExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agile
ExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agile
 
The Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOpsThe Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOps
 

More from Michael King

How to Grow Business Value (VIP ADVANCE, April 2024)
How to Grow Business Value (VIP ADVANCE, April 2024)How to Grow Business Value (VIP ADVANCE, April 2024)
How to Grow Business Value (VIP ADVANCE, April 2024)
Michael King
 
Technology Strategy for Early Stage Companies
Technology Strategy for Early Stage CompaniesTechnology Strategy for Early Stage Companies
Technology Strategy for Early Stage Companies
Michael King
 
VIP Anatomy of a Decision to Sell Your Biz (May 2023)
VIP Anatomy of a Decision to Sell Your Biz (May 2023)VIP Anatomy of a Decision to Sell Your Biz (May 2023)
VIP Anatomy of a Decision to Sell Your Biz (May 2023)
Michael King
 
iDEAFest Enteprise InfoSec Program Lessons Learned
iDEAFest Enteprise InfoSec Program Lessons LearnediDEAFest Enteprise InfoSec Program Lessons Learned
iDEAFest Enteprise InfoSec Program Lessons Learned
Michael King
 
Using an Engineering Maturity Model to drive Self-Improvement
Using an Engineering Maturity Model to drive Self-ImprovementUsing an Engineering Maturity Model to drive Self-Improvement
Using an Engineering Maturity Model to drive Self-Improvement
Michael King
 
Serving Federal Government Customers with Scaled Agile Framework (SAFe)
Serving Federal Government Customers with Scaled Agile Framework (SAFe)Serving Federal Government Customers with Scaled Agile Framework (SAFe)
Serving Federal Government Customers with Scaled Agile Framework (SAFe)
Michael King
 
Using JIRA to Scale your Business
Using JIRA to Scale your BusinessUsing JIRA to Scale your Business
Using JIRA to Scale your Business
Michael King
 
Technology Strategy Template
Technology Strategy TemplateTechnology Strategy Template
Technology Strategy Template
Michael King
 
CIO 101 for Entrepreneurs (2016)
CIO 101 for Entrepreneurs (2016)CIO 101 for Entrepreneurs (2016)
CIO 101 for Entrepreneurs (2016)
Michael King
 
From Chaos to Order: Building a Business Architecture
From Chaos to Order:  Building a Business ArchitectureFrom Chaos to Order:  Building a Business Architecture
From Chaos to Order: Building a Business Architecture
Michael King
 
Halfaker CMMI Capability Challenge Presentation
Halfaker CMMI Capability Challenge PresentationHalfaker CMMI Capability Challenge Presentation
Halfaker CMMI Capability Challenge Presentation
Michael King
 
Technology Strategy Template
Technology Strategy TemplateTechnology Strategy Template
Technology Strategy Template
Michael King
 
IT 101 for Entrepreneurs
IT 101 for EntrepreneursIT 101 for Entrepreneurs
IT 101 for Entrepreneurs
Michael King
 

More from Michael King (13)

How to Grow Business Value (VIP ADVANCE, April 2024)
How to Grow Business Value (VIP ADVANCE, April 2024)How to Grow Business Value (VIP ADVANCE, April 2024)
How to Grow Business Value (VIP ADVANCE, April 2024)
 
Technology Strategy for Early Stage Companies
Technology Strategy for Early Stage CompaniesTechnology Strategy for Early Stage Companies
Technology Strategy for Early Stage Companies
 
VIP Anatomy of a Decision to Sell Your Biz (May 2023)
VIP Anatomy of a Decision to Sell Your Biz (May 2023)VIP Anatomy of a Decision to Sell Your Biz (May 2023)
VIP Anatomy of a Decision to Sell Your Biz (May 2023)
 
iDEAFest Enteprise InfoSec Program Lessons Learned
iDEAFest Enteprise InfoSec Program Lessons LearnediDEAFest Enteprise InfoSec Program Lessons Learned
iDEAFest Enteprise InfoSec Program Lessons Learned
 
Using an Engineering Maturity Model to drive Self-Improvement
Using an Engineering Maturity Model to drive Self-ImprovementUsing an Engineering Maturity Model to drive Self-Improvement
Using an Engineering Maturity Model to drive Self-Improvement
 
Serving Federal Government Customers with Scaled Agile Framework (SAFe)
Serving Federal Government Customers with Scaled Agile Framework (SAFe)Serving Federal Government Customers with Scaled Agile Framework (SAFe)
Serving Federal Government Customers with Scaled Agile Framework (SAFe)
 
Using JIRA to Scale your Business
Using JIRA to Scale your BusinessUsing JIRA to Scale your Business
Using JIRA to Scale your Business
 
Technology Strategy Template
Technology Strategy TemplateTechnology Strategy Template
Technology Strategy Template
 
CIO 101 for Entrepreneurs (2016)
CIO 101 for Entrepreneurs (2016)CIO 101 for Entrepreneurs (2016)
CIO 101 for Entrepreneurs (2016)
 
From Chaos to Order: Building a Business Architecture
From Chaos to Order:  Building a Business ArchitectureFrom Chaos to Order:  Building a Business Architecture
From Chaos to Order: Building a Business Architecture
 
Halfaker CMMI Capability Challenge Presentation
Halfaker CMMI Capability Challenge PresentationHalfaker CMMI Capability Challenge Presentation
Halfaker CMMI Capability Challenge Presentation
 
Technology Strategy Template
Technology Strategy TemplateTechnology Strategy Template
Technology Strategy Template
 
IT 101 for Entrepreneurs
IT 101 for EntrepreneursIT 101 for Entrepreneurs
IT 101 for Entrepreneurs
 

Recently uploaded

RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
BBPMedia1
 
Digital Transformation in PLM - WHAT and HOW - for distribution.pdf
Digital Transformation in PLM - WHAT and HOW - for distribution.pdfDigital Transformation in PLM - WHAT and HOW - for distribution.pdf
Digital Transformation in PLM - WHAT and HOW - for distribution.pdf
Jos Voskuil
 
Unveiling the Secrets How Does Generative AI Work.pdf
Unveiling the Secrets How Does Generative AI Work.pdfUnveiling the Secrets How Does Generative AI Work.pdf
Unveiling the Secrets How Does Generative AI Work.pdf
Sam H
 
Skye Residences | Extended Stay Residences Near Toronto Airport
Skye Residences | Extended Stay Residences Near Toronto AirportSkye Residences | Extended Stay Residences Near Toronto Airport
Skye Residences | Extended Stay Residences Near Toronto Airport
marketingjdass
 
Business Valuation Principles for Entrepreneurs
Business Valuation Principles for EntrepreneursBusiness Valuation Principles for Entrepreneurs
Business Valuation Principles for Entrepreneurs
Ben Wann
 
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
taqyed
 
Premium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern BusinessesPremium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern Businesses
SynapseIndia
 
anas about venice for grade 6f about venice
anas about venice for grade 6f about veniceanas about venice for grade 6f about venice
anas about venice for grade 6f about venice
anasabutalha2013
 
chapter 10 - excise tax of transfer and business taxation
chapter 10 - excise tax of transfer and business taxationchapter 10 - excise tax of transfer and business taxation
chapter 10 - excise tax of transfer and business taxation
AUDIJEAngelo
 
5 Things You Need To Know Before Hiring a Videographer
5 Things You Need To Know Before Hiring a Videographer5 Things You Need To Know Before Hiring a Videographer
5 Things You Need To Know Before Hiring a Videographer
ofm712785
 
What are the main advantages of using HR recruiter services.pdf
What are the main advantages of using HR recruiter services.pdfWhat are the main advantages of using HR recruiter services.pdf
What are the main advantages of using HR recruiter services.pdf
HumanResourceDimensi1
 
India Orthopedic Devices Market: Unlocking Growth Secrets, Trends and Develop...
India Orthopedic Devices Market: Unlocking Growth Secrets, Trends and Develop...India Orthopedic Devices Market: Unlocking Growth Secrets, Trends and Develop...
India Orthopedic Devices Market: Unlocking Growth Secrets, Trends and Develop...
Kumar Satyam
 
Introduction to Amazon company 111111111111
Introduction to Amazon company 111111111111Introduction to Amazon company 111111111111
Introduction to Amazon company 111111111111
zoyaansari11365
 
Putting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptxPutting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptx
Cynthia Clay
 
Sustainability: Balancing the Environment, Equity & Economy
Sustainability: Balancing the Environment, Equity & EconomySustainability: Balancing the Environment, Equity & Economy
Sustainability: Balancing the Environment, Equity & Economy
Operational Excellence Consulting
 
Lookback Analysis
Lookback AnalysisLookback Analysis
Lookback Analysis
Safe PaaS
 
April 2024 Nostalgia Products Newsletter
April 2024 Nostalgia Products NewsletterApril 2024 Nostalgia Products Newsletter
April 2024 Nostalgia Products Newsletter
NathanBaughman3
 
Role of Remote Sensing and Monitoring in Mining
Role of Remote Sensing and Monitoring in MiningRole of Remote Sensing and Monitoring in Mining
Role of Remote Sensing and Monitoring in Mining
Naaraayani Minerals Pvt.Ltd
 
The-McKinsey-7S-Framework. strategic management
The-McKinsey-7S-Framework. strategic managementThe-McKinsey-7S-Framework. strategic management
The-McKinsey-7S-Framework. strategic management
Bojamma2
 
Project File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdfProject File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdf
RajPriye
 

Recently uploaded (20)

RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
 
Digital Transformation in PLM - WHAT and HOW - for distribution.pdf
Digital Transformation in PLM - WHAT and HOW - for distribution.pdfDigital Transformation in PLM - WHAT and HOW - for distribution.pdf
Digital Transformation in PLM - WHAT and HOW - for distribution.pdf
 
Unveiling the Secrets How Does Generative AI Work.pdf
Unveiling the Secrets How Does Generative AI Work.pdfUnveiling the Secrets How Does Generative AI Work.pdf
Unveiling the Secrets How Does Generative AI Work.pdf
 
Skye Residences | Extended Stay Residences Near Toronto Airport
Skye Residences | Extended Stay Residences Near Toronto AirportSkye Residences | Extended Stay Residences Near Toronto Airport
Skye Residences | Extended Stay Residences Near Toronto Airport
 
Business Valuation Principles for Entrepreneurs
Business Valuation Principles for EntrepreneursBusiness Valuation Principles for Entrepreneurs
Business Valuation Principles for Entrepreneurs
 
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
 
Premium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern BusinessesPremium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern Businesses
 
anas about venice for grade 6f about venice
anas about venice for grade 6f about veniceanas about venice for grade 6f about venice
anas about venice for grade 6f about venice
 
chapter 10 - excise tax of transfer and business taxation
chapter 10 - excise tax of transfer and business taxationchapter 10 - excise tax of transfer and business taxation
chapter 10 - excise tax of transfer and business taxation
 
5 Things You Need To Know Before Hiring a Videographer
5 Things You Need To Know Before Hiring a Videographer5 Things You Need To Know Before Hiring a Videographer
5 Things You Need To Know Before Hiring a Videographer
 
What are the main advantages of using HR recruiter services.pdf
What are the main advantages of using HR recruiter services.pdfWhat are the main advantages of using HR recruiter services.pdf
What are the main advantages of using HR recruiter services.pdf
 
India Orthopedic Devices Market: Unlocking Growth Secrets, Trends and Develop...
India Orthopedic Devices Market: Unlocking Growth Secrets, Trends and Develop...India Orthopedic Devices Market: Unlocking Growth Secrets, Trends and Develop...
India Orthopedic Devices Market: Unlocking Growth Secrets, Trends and Develop...
 
Introduction to Amazon company 111111111111
Introduction to Amazon company 111111111111Introduction to Amazon company 111111111111
Introduction to Amazon company 111111111111
 
Putting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptxPutting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptx
 
Sustainability: Balancing the Environment, Equity & Economy
Sustainability: Balancing the Environment, Equity & EconomySustainability: Balancing the Environment, Equity & Economy
Sustainability: Balancing the Environment, Equity & Economy
 
Lookback Analysis
Lookback AnalysisLookback Analysis
Lookback Analysis
 
April 2024 Nostalgia Products Newsletter
April 2024 Nostalgia Products NewsletterApril 2024 Nostalgia Products Newsletter
April 2024 Nostalgia Products Newsletter
 
Role of Remote Sensing and Monitoring in Mining
Role of Remote Sensing and Monitoring in MiningRole of Remote Sensing and Monitoring in Mining
Role of Remote Sensing and Monitoring in Mining
 
The-McKinsey-7S-Framework. strategic management
The-McKinsey-7S-Framework. strategic managementThe-McKinsey-7S-Framework. strategic management
The-McKinsey-7S-Framework. strategic management
 
Project File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdfProject File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdf
 

Enforcing Quality with DevOps Pipeline Gates

  • 1. Copyright © 2019 CMMI Institute. All rights reserved. M i c h a e l K i n g C h i e f T e c h n o l o g y O f f i c e r H a l f a k e r a n d A s s o c i a t e s Enforcing Quality with DevOps Pipeline Gates
  • 2. Agenda  Context  Background: Software Testing Concepts  Background: What is DevOps?  What is Continuous Quality (CQ)?  CQ Concept of Operations  Categories of CQ Tests  CQ Technologies  What Happened?  What did we Learn?  Lessons Learned
  • 3. Context  Halfaker and Associates (Halfaker, www.halfaker.com) is a midsize company, headquartered in Arlington  Halfaker creates, modernizes, integrates, and secures mission critical systems for Federal Government organizations  Halfaker is a fast-growing organization that invests in improving our Agile management and software engineering maturity to better serve our customers  As Halfaker has scaled rapidly (100 employees in 2015) and begun managing large, more complex, more visible programs, we’ve needed to improve how we ensure quality in our technology solutions  We’ve been prioritizing investment at the intersection of Software Testing/Quality and DevOps
  • 4. Background: Software Testing Domain The Test Pyramid Diagrams from https://martinfowler.com/bliki/TestPyramid.html and https://martinfowler.com/articles/microservice-testing/#conclusion-test-pyramid  Similar to the Food Pyramid, a healthy Testing Program (“diet”) should be balanced – Mike Cohn and Martin Fowler have written about the concept of the Test Pyramid many times  Some teams focus too much on end-to-end testing and exploratory (ad-hoc) testing, without building the solid foundation of unit and integration tests  Unit tests are small, in-code tests, which developers should write consistently throughout the development and maintenance of software – they are fast to run (because they are often automated) and provide a solid foundation by ensuring that micro-level assumptions are met  Moving up the test pyramid, there should be fewer tests created at each level, with a focus more and more at the macro level of the system  Across the layers, think about: (1) Does it do what it’s supposed to do? (2) Is it intuitive to use correctly? (3) Can I break the system?
  • 5. Background: What is DevOps?  Development Operations (DevOps) is a set of practices focused on improving the intersection/relationship between software development and IT operations teams  DevOps is based on a culture of collaboration, instead of traditional silos  DevOps is not a just technology – it is more of a philosophy, similar to how Agile is much more than just Scrum ceremonies/tools/roles  DevOps is enabled through the use of technologies that automate activities including building, testing, and delivering software to create smaller, lower risk feedback loops related to software engineering  Atlassian.com/devops and The Phoenix Project are great introductions to the topic
  • 6. What is Continuous Quality (CQ)?  Viewing software testing and quality management as an event done by people with “test” in their job titles doesn’t scale with the velocity and Agility needed for today’s engineering work  Instead, organizations should view Continuous Quality (CQ) as the goal – with a focus on:  Shift Left – Focus on measuring/assessing quality as early as possible, continually “shifting left” to reduce the time a defect/misunderstanding exists  Automate Quality – The more we can automate quality, the more quickly and comprehensively we can assess quality, freeing up time to focus on doing a faster and better job of the quality work that can’t be automated  (If teams don’t have a mature, comprehensive testing program, they certainly need to build that foundation BEFORE they can shift left and automate)
  • 7. Concept of CQ Gates  We enforce quality in a Continuous Quality environment by defining automated gates that does not let code/software pass without passing the test  These gates enforce rules, such as:  Unit Test Coverage (Goal is 100%, but that isn’t always reasonable, so we set an enforced threshold, such as >= 80% of lines are covered by unit tests; see https://martinfowler.com/bliki/TestCoverage.html)  Unit Test Pass Rate (e.g. 100% of unit tests must pass)  Static Code Analysis Thresholds (e.g. SonarQube tests re: code complexity)  Accessibility Tests (e.g. Section 508, https://www.deque.com/tools/worldspace-attest/)  Source code vulnerability scan (Look for security weaknesses)  Performance Testing (Build the application and test it for responsiveness)  Capitol One has a blog post about their 16 Gates https://medium.com/capital-one-tech/focusing-on-the-devops- pipeline-topo-pal-833d15edf0bd
  • 8. Visualizing Continuous Quality  DevOps Teams should select the gates that provide the best return (improving software quality) on investment of configuration and maintenance
  • 9. What Happened?  Halfaker established automated Continuous Integration/Continuous Deployment (CI/CD) pipelines across several programs, using the open source Jenkins automation technology  Halfaker then added Continuous Quality gates, which has led to dramatically improved efficiency (less rework and surprises late in the process) and improved quality  We initially focused on a few key gates (Unit Tests, Static Code Analysis (Code Complexity) and Source Code Security Scans), because they were our biggest drivers in ROI  One of our Federal Government customers had an Production Readiness Review (PRR) security audit done by a IV&V team on one of our programs, and they were shocked that we had zero identified security vulnerabilities – something that is very uncommon for this Federal agency  We also standardizing on a source code branching strategy (GitFlow, https://nvie.com/posts/a-successful-git-branching-model/), which improved the quality of our build process
  • 10. Some Recommended Technologies  These are some of the technologies we’ve found success with Test Type CQ Approach User Acceptance Testing (UAT) N/A (Humans presenting to customers) Exploratory N/A (Humans exploring) End to End (Functional) Many options such as Cucumber, Gherkin, Protractor Performance Apache JMeter™ Security Fortify or SonarQube static code analysis Code Complexity SonarQube Quality Gate Component (Functional) N/A (Humans exploring parts of the system) Integration Jenkins Build/Delivery Validation Unit SonarQube Quality Gate: Unit Test Coverage >= 80%
  • 11. Jenkins Automation Server Technology  Jenkins, an open source technology, provides the central orchestration required to define the CI/CD pipeline, which collects, builds, validates quality gates, and deploys the software
  • 12. SonarQube Continuous Code Quality Tool  SonarQube, an open source technology, provides a platform to analyzing code quality to identify areas for developers to review – below are screenshots showing code quality (left) and quality gates (right)
  • 13. Example of Unit Test Coverage Analysis Image from https://blog.lgohlke.de/java/sonarqube/coverage/maven/2015/02/05/sonarqube- code-coverage-unittests-integrationtests.html
  • 14. Example of Static Code Analysis (Code Complexity) Failure  xxxx Image from https://www.sonarqube.org/features/issues-tracking/
  • 15. Example of Source Code Security Scan Failure  xxxx Image from https://www.sonarqube.org/features/issues-tracking/
  • 16. What did we Learn? Make it Easy to See Continuous Quality  Make information convenient (information radiators) – we used open source tools including Capital One’s Hygieia (see right) and Grafana for several of our projects to visualize data related to Continuous Quality and DevOps  Many teams used shared TVs to keep this information very visible for the team, and created some healthy peer pressure not to be the person who broke the build
  • 17. Example DevOps and Continuous Quality Technologies Planning and Rqmts. (PP, RD, REQM) • Atlassian Jira • Zephyr • CA Agile (Rally) Configuration Management (CM) • Source Repository • GitHub • Bitbucket • Infrastructure Configuration: • Chef • Ansible • Terraform Product Integration (PI) and Release Management • Jenkins CI/CD Pipeline • CA Automic • IBM UrbanCode Testing (VAL, VER) • Unit Testing (JUnit, HtmlUnit, Microsoft Unit Test) • Behavior Driven Dev (Cucumber, Gherkin, RSpec) • Functional Tests (Selenium, Katalon, Appium, Protractor, SmartBear TestComplete) • Accessibility (Deque, aXe, SortSite) • Performance (LoadUI, JMeter, MS VSTS, LoadRunner)
  • 18. Recap Invest time in improving to get out of reactive firefighting 1. Shift Left! Try to enforce and test as early as you can, as it only gets more expensive the farther requirements, designs, code, etc. make it in the process 2. Automate everything you can and then tune to the right amount of automation – you can’t, and shouldn’t, automate everything; but it’s wise to try and see what sticks! 3. Enforce Continuous Quality gates that require developers to meet or exceed your requirements, which reduces rework and clarifies engineering expectations at the beginning 4. Maximizing the value produced (functional code that comes through the CI/CD pipeline), instead of trying to keep everyone on your teams busy (see The Goal)
  • 19. Questions? Follow-up Questions? Want to Connect?  michael.king@halfaker.com  @mikehking (Twitter)  https://www.linkedin.com/in/mikehking
  • 20. Copyright © 2019 CMMI Institute. All rights reserved. Thank You! Please rate this presentation! C M M I I N S T I T U T E . C O M / C O N F E R E N C E S