The computer says no!
Software quality in the DevOps
world
Matteo Emili
Microsoft MVP – Azure DevOps
matteo.emili@live.com
https://mattvsts.github.io || http://twitter.com/MattVSTS
“My code is perfect
fine!”
Yeah… about that.
“But it works!”
It might, but how?
DevOps is built on top
of the concept of
quality
Even the best craftsmen need a helping hand.
Automation is king
You need maximum automation to get the most value
Quality needs to be
anywhere
Every step of the way has key areas for quality improvement
‘Quality’ or ‘Code
Quality’?
Two different things indeed…
Industry standards
Halstead complexity measures
Cyclomatic complexity
Maintainability index
CERT Secure Coding Standards
CWE List
…
Team-specific choices
Documentation standards
Style rules
Patterns re-use
Code Coverage
Churn rate
…
Let’s define code quality first
Industry standards
are…
…standards. They have been around for a long time.
Matteo Emili
• Born in 1990
Industry standards
• Cyclomatic complexity (1976)
• Halstead complexity measures
(1977)
• Software Structure
Metrics (1981)
• ISO/IEC 9126 Product Quality
(1991)
• …
Some of them, older than me!
Team choices are varied
Plenty of non-technical factors to consider
How about quality?
Quality is all about applying process and practices to ensure
the final outcome matches the expectations
Use tools and
automation
Quality is all about applying process and practices to ensure
the final outcome matches the expectations
Tools
A modern version control system
CI server
Scripts or extensions for your CI
server
Code quality scanner
Security Vulnerability analysis
tools
Practices
Peer reviews
Bug bashes, dedicated spikes
Test-driven Development
More testing
Secure Development Lifecycle
Reaching the quality bar
There is only one pre-
requisite for any tool
It’s the only rule of modern Software Engineering
Tools must be
integrated in the CI/CD
platform of choice
Doing otherwise creates unnecessary friction, leading to
non-adoption
Now, tools…
What do you actually need to increase the quality of your
code?
Measure (with context)
What are you dealing with?
Metric or discipline
Engineering quality
Direct security risk
Dependency-induced risk
Pre-emptive infrastructure
analysis
Recommended tools
SonarQube, Kiuwan, …
Checkmarx, BinSkim, Fortify, …
WhiteSource
AzSK, Azure Scanner, …
What and how to measure?
Let’s take a look!
Our guinea pig: PartsUnlimited
https://github.com/microsoft/PartsUnlimited
Each tool should be
applied at different
stages
You don’t want a 30 seconds build to become an hour
long…
What?
Engineering quality
Direct security risk
Dependency-induced risk
Pre-emptive infrastructure
analysis
When?
CI build (main branches and PRs)
Ad-hoc for master, develop
branches
All builds
After DTL, before UAT
Examples of When to do what?
Is it DevSecOps?
It might be (definitions vary), but it is just common sense
Thanks!

More Related Content

PPTX
The computer says no! Software Quality in the DevOps world
PDF
A Successful SAST Tool Implementation
PPTX
Open Source Libraries - Managing Risk in Cloud
PPTX
DevSecOps Indonesia : Pain & Pleasure of doing AppSec in DevOps
PDF
Application Security at DevOps Speed - DevOpsDays Singapore 2016
PPTX
Implementing an Application Security Pipeline in Jenkins
PPTX
How not to fall into the DevSecOps trap
PPTX
Building a high quality+ products with SCA
The computer says no! Software Quality in the DevOps world
A Successful SAST Tool Implementation
Open Source Libraries - Managing Risk in Cloud
DevSecOps Indonesia : Pain & Pleasure of doing AppSec in DevOps
Application Security at DevOps Speed - DevOpsDays Singapore 2016
Implementing an Application Security Pipeline in Jenkins
How not to fall into the DevSecOps trap
Building a high quality+ products with SCA

What's hot (20)

PDF
AppSec How-To: Achieving Security in DevOps
PPTX
Turning security into code by Jeff Williams
PPTX
Product Security
PDF
Vulnerabilities are bugs, Let's Test For Them!
PDF
PPTX
Continuous and Visible Security Testing with BDD-Security
PPTX
Rapid software testing and conformance with static code analysis
PPTX
Automating security tests for Continuous Integration
PPTX
Static analysis tools as the best friend of QA
PPTX
Matt carroll - "Security patching system packages is fun" said no-one ever
PDF
Unit testing and code review
PDF
DevSecCon Asia 2017 Ofer Maor: AppSec DevOps automation – real world cases
PDF
Integrating DevOps and Security
PDF
Scale security for a dollar or less
PPTX
Lessons learned from Detroit to Deming by Derek Weeks
PPTX
Test parallelization using Jenkins
PDF
Better Security Testing: Using the Cloud and Continuous Delivery
PPTX
Topic production code
PDF
DevSecOps - The big picture
PPTX
Agile and Secure SDLC
AppSec How-To: Achieving Security in DevOps
Turning security into code by Jeff Williams
Product Security
Vulnerabilities are bugs, Let's Test For Them!
Continuous and Visible Security Testing with BDD-Security
Rapid software testing and conformance with static code analysis
Automating security tests for Continuous Integration
Static analysis tools as the best friend of QA
Matt carroll - "Security patching system packages is fun" said no-one ever
Unit testing and code review
DevSecCon Asia 2017 Ofer Maor: AppSec DevOps automation – real world cases
Integrating DevOps and Security
Scale security for a dollar or less
Lessons learned from Detroit to Deming by Derek Weeks
Test parallelization using Jenkins
Better Security Testing: Using the Cloud and Continuous Delivery
Topic production code
DevSecOps - The big picture
Agile and Secure SDLC
Ad

Similar to The computer says no v2 (20)

PDF
Handbook of Software Quality Assurance 4th ed Edition G. Gordon Schulmeyer
PDF
Handbook of Software Quality Assurance 4th ed Edition G. Gordon Schulmeyer
PDF
Handbook of Software Quality Assurance 4th ed Edition G. Gordon Schulmeyer
PDF
Software Quality without Testing
PDF
Handbook of Software Quality Assurance 4th ed Edition G. Gordon Schulmeyer
PDF
Handbook of Software Quality Assurance 4th ed Edition G. Gordon Schulmeyer
PPTX
Software Quality for Developers
PPTX
Improving software quality for the future of connected vehicles
PDF
Agile Gurugram 2019 Conferecne | A "Quality" Debate - Rethinking the mindset ...
PDF
Repeating the "Quality Debate" @ Agile Gurugram 2019 Conference
PDF
Handbook of Software Quality Assurance 4th ed Edition G. Gordon Schulmeyer
PDF
Software Engineering Culture - Improve Code Quality
PPTX
Testing-and-Quality-Assurance-in-Software-Development
PDF
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
PPTX
Enforcing Quality with DevOps Pipeline Gates
PPTX
Scaling r&d org while maintaining quality
PDF
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
PDF
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
PDF
End-to-End Quality Approach: 14 Levels of Testing
PDF
A Guide to Software Quality Engineering 1st Edition Pargaonkar Shravan
Handbook of Software Quality Assurance 4th ed Edition G. Gordon Schulmeyer
Handbook of Software Quality Assurance 4th ed Edition G. Gordon Schulmeyer
Handbook of Software Quality Assurance 4th ed Edition G. Gordon Schulmeyer
Software Quality without Testing
Handbook of Software Quality Assurance 4th ed Edition G. Gordon Schulmeyer
Handbook of Software Quality Assurance 4th ed Edition G. Gordon Schulmeyer
Software Quality for Developers
Improving software quality for the future of connected vehicles
Agile Gurugram 2019 Conferecne | A "Quality" Debate - Rethinking the mindset ...
Repeating the "Quality Debate" @ Agile Gurugram 2019 Conference
Handbook of Software Quality Assurance 4th ed Edition G. Gordon Schulmeyer
Software Engineering Culture - Improve Code Quality
Testing-and-Quality-Assurance-in-Software-Development
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
Enforcing Quality with DevOps Pipeline Gates
Scaling r&d org while maintaining quality
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
End-to-End Quality Approach: 14 Levels of Testing
A Guide to Software Quality Engineering 1st Edition Pargaonkar Shravan
Ad

More from Matteo Emili (20)

PPTX
Transforming the impossible
PPTX
É ora di passare a Pipeline as code
PPTX
Il computer dice no!
PPTX
A selection of short stories where Azure DevOps saved the bacon
PPTX
Strategie di migrazione da Team Foundation Server ad Azure DevOps Services
PPTX
What did i learn trying to migrate teams from legacy to modern?
PPTX
Cosa ho imparato trasformando software factory?
PPTX
PowerShell and Azure DevOps
PPTX
Am i doing deployments right v2
PPTX
Am i doing deployments right?
PPTX
How telemetry can be your best friend
PPTX
Containers jumpstart from a DevOps perspective
PPTX
Far scalare la Continuous Delivery per il middle management
PPTX
Development and QA dilemmas in DevOps
PPTX
Tools and practices to use in a Continuous Delivery pipeline
PPTX
Uno sguardo a Team Foundation Server 2017
PPTX
A year of SonarQube and TFS/VSTS
PPTX
Packages as the first choice when deploying - how?
PPTX
Hybrid DevOps Stack
PPTX
Make Continuous Delivery work for middle management
Transforming the impossible
É ora di passare a Pipeline as code
Il computer dice no!
A selection of short stories where Azure DevOps saved the bacon
Strategie di migrazione da Team Foundation Server ad Azure DevOps Services
What did i learn trying to migrate teams from legacy to modern?
Cosa ho imparato trasformando software factory?
PowerShell and Azure DevOps
Am i doing deployments right v2
Am i doing deployments right?
How telemetry can be your best friend
Containers jumpstart from a DevOps perspective
Far scalare la Continuous Delivery per il middle management
Development and QA dilemmas in DevOps
Tools and practices to use in a Continuous Delivery pipeline
Uno sguardo a Team Foundation Server 2017
A year of SonarQube and TFS/VSTS
Packages as the first choice when deploying - how?
Hybrid DevOps Stack
Make Continuous Delivery work for middle management

Recently uploaded (20)

PDF
Delhi evenings are unforgettable when you call stylish girls
PPTX
Lesson 1- PROF ELECT II tourismmmmmmmmmm
PPTX
ppt geometri ruang sisi datar micro baru
PDF
The Evolution of Excellence - Mobile App Development Companies in Austin.pdf
PDF
People in Delhi call cheerful girls for celebrations
PDF
Unlock Success with the Best Digital Marketing Services
PDF
What is TikTok Cyberbullying? 15 Smart Ways to Prevent It
PDF
Mastering the Digital Game: Marketing That Converts"
PDF
From Viral to Vanishing_ How to Maintain Momentum on TikTok
PDF
AI-Driven Social Media Marketing | Top Social Media Marketing Agency & Strate...
PPTX
MP3jam 1.1.6.14 Crack Free Download Latest
PPTX
Unlock Your Business’s Full Online Potential
PPTX
Power BI DAX Formulas and fast easy technical learning
PPTX
Download NTLite 2025.06.10473 Crack Free
PPTX
Best Web Development Company in Lucknow.pptx
PPTX
GridinSoft Anti-Malware 4.3.31 Crack & Activation Code
PPTX
Illuminati free in Uganda +256787776712,0741715666
PPTX
EXPOSICION DE INGLES LENGUA EXTRANJERA.pptx
PDF
IDM UltraCompare Professional 24.1.0.5 Crack
PPTX
Promote Your Business Through Facebook Ads
Delhi evenings are unforgettable when you call stylish girls
Lesson 1- PROF ELECT II tourismmmmmmmmmm
ppt geometri ruang sisi datar micro baru
The Evolution of Excellence - Mobile App Development Companies in Austin.pdf
People in Delhi call cheerful girls for celebrations
Unlock Success with the Best Digital Marketing Services
What is TikTok Cyberbullying? 15 Smart Ways to Prevent It
Mastering the Digital Game: Marketing That Converts"
From Viral to Vanishing_ How to Maintain Momentum on TikTok
AI-Driven Social Media Marketing | Top Social Media Marketing Agency & Strate...
MP3jam 1.1.6.14 Crack Free Download Latest
Unlock Your Business’s Full Online Potential
Power BI DAX Formulas and fast easy technical learning
Download NTLite 2025.06.10473 Crack Free
Best Web Development Company in Lucknow.pptx
GridinSoft Anti-Malware 4.3.31 Crack & Activation Code
Illuminati free in Uganda +256787776712,0741715666
EXPOSICION DE INGLES LENGUA EXTRANJERA.pptx
IDM UltraCompare Professional 24.1.0.5 Crack
Promote Your Business Through Facebook Ads

The computer says no v2

  • 1. The computer says no! Software quality in the DevOps world Matteo Emili Microsoft MVP – Azure DevOps [email protected] https://mattvsts.github.io || http://twitter.com/MattVSTS
  • 2. “My code is perfect fine!” Yeah… about that.
  • 3. “But it works!” It might, but how?
  • 4. DevOps is built on top of the concept of quality Even the best craftsmen need a helping hand.
  • 5. Automation is king You need maximum automation to get the most value
  • 6. Quality needs to be anywhere Every step of the way has key areas for quality improvement
  • 7. ‘Quality’ or ‘Code Quality’? Two different things indeed…
  • 8. Industry standards Halstead complexity measures Cyclomatic complexity Maintainability index CERT Secure Coding Standards CWE List … Team-specific choices Documentation standards Style rules Patterns re-use Code Coverage Churn rate … Let’s define code quality first
  • 9. Industry standards are… …standards. They have been around for a long time.
  • 10. Matteo Emili • Born in 1990 Industry standards • Cyclomatic complexity (1976) • Halstead complexity measures (1977) • Software Structure Metrics (1981) • ISO/IEC 9126 Product Quality (1991) • … Some of them, older than me!
  • 11. Team choices are varied Plenty of non-technical factors to consider
  • 12. How about quality? Quality is all about applying process and practices to ensure the final outcome matches the expectations
  • 13. Use tools and automation Quality is all about applying process and practices to ensure the final outcome matches the expectations
  • 14. Tools A modern version control system CI server Scripts or extensions for your CI server Code quality scanner Security Vulnerability analysis tools Practices Peer reviews Bug bashes, dedicated spikes Test-driven Development More testing Secure Development Lifecycle Reaching the quality bar
  • 15. There is only one pre- requisite for any tool It’s the only rule of modern Software Engineering
  • 16. Tools must be integrated in the CI/CD platform of choice Doing otherwise creates unnecessary friction, leading to non-adoption
  • 17. Now, tools… What do you actually need to increase the quality of your code?
  • 18. Measure (with context) What are you dealing with?
  • 19. Metric or discipline Engineering quality Direct security risk Dependency-induced risk Pre-emptive infrastructure analysis Recommended tools SonarQube, Kiuwan, … Checkmarx, BinSkim, Fortify, … WhiteSource AzSK, Azure Scanner, … What and how to measure?
  • 20. Let’s take a look! Our guinea pig: PartsUnlimited https://github.com/microsoft/PartsUnlimited
  • 21. Each tool should be applied at different stages You don’t want a 30 seconds build to become an hour long…
  • 22. What? Engineering quality Direct security risk Dependency-induced risk Pre-emptive infrastructure analysis When? CI build (main branches and PRs) Ad-hoc for master, develop branches All builds After DTL, before UAT Examples of When to do what?
  • 23. Is it DevSecOps? It might be (definitions vary), but it is just common sense