SlideShare ist ein Scribd-Unternehmen logo
1 von 20
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

Weitere ähnliche Inhalte

Was ist angesagt?

DevOps: What, who, why and how?
DevOps: What, who, why and how?DevOps: What, who, why and how?
DevOps: What, who, why and how?Red Gate Software
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps IntroductionRobert Sell
 
Funny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscapeFunny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscapeMikalai Alimenkou
 
Devops online training ppt
Devops online training pptDevops online training ppt
Devops online training pptKhalidQureshi31
 
Introducing DevOps, IT Sharing Session 20 Nov 2017
Introducing DevOps, IT Sharing Session 20 Nov 2017Introducing DevOps, IT Sharing Session 20 Nov 2017
Introducing DevOps, IT Sharing Session 20 Nov 2017Danny Ariwicaksono
 
Practical DevSecOps Course - Part 1
Practical DevSecOps Course - Part 1Practical DevSecOps Course - Part 1
Practical DevSecOps Course - Part 1Mohammed A. Imran
 
DevSecOps | DevOps Sec
DevSecOps | DevOps SecDevSecOps | DevOps Sec
DevSecOps | DevOps SecRubal Jain
 
DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0Mohamed Taman
 
Agile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingAgile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingDimitri Ponomareff
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+OpsShalu Ahuja
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...Simplilearn
 
Pooja shift left 1.0
Pooja shift left 1.0Pooja shift left 1.0
Pooja shift left 1.0Xebia India
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle IntroductionGanesh Samarthyam
 

Was ist angesagt? (20)

DevOps: What, who, why and how?
DevOps: What, who, why and how?DevOps: What, who, why and how?
DevOps: What, who, why and how?
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps Introduction
 
Intro to Azure DevOps
Intro to Azure DevOpsIntro to Azure DevOps
Intro to Azure DevOps
 
DevOps beyond the Tools
DevOps beyond the ToolsDevOps beyond the Tools
DevOps beyond the Tools
 
Funny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscapeFunny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscape
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Devops online training ppt
Devops online training pptDevops online training ppt
Devops online training ppt
 
Introducing DevOps, IT Sharing Session 20 Nov 2017
Introducing DevOps, IT Sharing Session 20 Nov 2017Introducing DevOps, IT Sharing Session 20 Nov 2017
Introducing DevOps, IT Sharing Session 20 Nov 2017
 
Practical DevSecOps Course - Part 1
Practical DevSecOps Course - Part 1Practical DevSecOps Course - Part 1
Practical DevSecOps Course - Part 1
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
DevSecOps | DevOps Sec
DevSecOps | DevOps SecDevSecOps | DevOps Sec
DevSecOps | DevOps Sec
 
Devops insights
Devops insightsDevops insights
Devops insights
 
DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0
 
Agile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingAgile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated Testing
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
Pooja shift left 1.0
Pooja shift left 1.0Pooja shift left 1.0
Pooja shift left 1.0
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
DevOps and AWS
DevOps and AWSDevOps and AWS
DevOps and AWS
 

Ähnlich wie 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 MoorthyNeotys_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 HudsonDavid Jellison
 
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 DevOpsSeaLights
 
No Devops Without Continuous Testing
No Devops Without Continuous TestingNo Devops Without Continuous Testing
No Devops Without Continuous TestingParasoft
 
#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 databasesAlessandro 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 ApplicationsBhavin 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.pdfKMSSolutionsMarketin
 
Quality at the speed of digital
Quality   at the speed of digitalQuality   at the speed of digital
Quality at the speed of digitalrajni singh
 
How Agile Are you
How Agile Are youHow Agile Are you
How Agile Are youHeaton 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 successAdam Stephensen
 
Scrum Portugal Meeting 1 Lisbon - ALM
Scrum Portugal Meeting 1 Lisbon - ALMScrum Portugal Meeting 1 Lisbon - ALM
Scrum Portugal Meeting 1 Lisbon - ALMMarco Silva
 
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 SilvaAgile Connect®
 
Roadmap to Enterprise Quality
Roadmap to Enterprise QualityRoadmap to Enterprise Quality
Roadmap to Enterprise QualityJeff 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
 
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_agileEduardo Riol
 
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
 
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 DevOpsTEST Huddle
 

Ähnlich wie 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
 
Scrum Portugal Meeting 1 Lisbon - ALM
Scrum Portugal Meeting 1 Lisbon - ALMScrum Portugal Meeting 1 Lisbon - ALM
Scrum Portugal Meeting 1 Lisbon - ALM
 
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
 
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
 
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
 
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"
 
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
 

Mehr von 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 CompaniesMichael 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 LearnedMichael 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-ImprovementMichael 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 BusinessMichael King
 
Technology Strategy Template
Technology Strategy TemplateTechnology Strategy Template
Technology Strategy TemplateMichael 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 ArchitectureMichael King
 
Halfaker CMMI Capability Challenge Presentation
Halfaker CMMI Capability Challenge PresentationHalfaker CMMI Capability Challenge Presentation
Halfaker CMMI Capability Challenge PresentationMichael King
 
Technology Strategy Template
Technology Strategy TemplateTechnology Strategy Template
Technology Strategy TemplateMichael King
 
IT 101 for Entrepreneurs
IT 101 for EntrepreneursIT 101 for Entrepreneurs
IT 101 for EntrepreneursMichael King
 

Mehr von 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
 

Kürzlich hochgeladen

Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Roland Driesen
 
Call Girls in Gomti Nagar - 7388211116 - With room Service
Call Girls in Gomti Nagar - 7388211116  - With room ServiceCall Girls in Gomti Nagar - 7388211116  - With room Service
Call Girls in Gomti Nagar - 7388211116 - With room Servicediscovermytutordmt
 
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurVIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurSuhani Kapoor
 
Sales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for SuccessSales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for SuccessAggregage
 
Unlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfUnlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfOnline Income Engine
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayNZSG
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxAndy Lambert
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfPaul Menig
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Roland Driesen
 
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
Tech Startup Growth Hacking 101  - Basics on Growth MarketingTech Startup Growth Hacking 101  - Basics on Growth Marketing
Tech Startup Growth Hacking 101 - Basics on Growth MarketingShawn Pang
 
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779Delhi Call girls
 
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...noida100girls
 
Understanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key InsightsUnderstanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key Insightsseribangash
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.Aaiza Hassan
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst SummitHolger Mueller
 
The Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case studyThe Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case studyEthan lee
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLSeo
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Dipal Arora
 
7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...Paul Menig
 

Kürzlich hochgeladen (20)

Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...
 
Call Girls in Gomti Nagar - 7388211116 - With room Service
Call Girls in Gomti Nagar - 7388211116  - With room ServiceCall Girls in Gomti Nagar - 7388211116  - With room Service
Call Girls in Gomti Nagar - 7388211116 - With room Service
 
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurVIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
 
Sales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for SuccessSales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for Success
 
Unlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfUnlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdf
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 May
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptx
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdf
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...
 
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
Tech Startup Growth Hacking 101  - Basics on Growth MarketingTech Startup Growth Hacking 101  - Basics on Growth Marketing
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
 
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
 
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...
 
Understanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key InsightsUnderstanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key Insights
 
Forklift Operations: Safety through Cartoons
Forklift Operations: Safety through CartoonsForklift Operations: Safety through Cartoons
Forklift Operations: Safety through Cartoons
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst Summit
 
The Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case studyThe Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case study
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
 
7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...
 

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