SlideShare a Scribd company logo
The computer says no!
Software quality in the DevOps
world
Matteo Emili
Microsoft MVP – Developer Technologies
matteo.emili@live.com
https://mattvsts.github.io || http://twitter.com/MattVSTS
“My code is perfect!”
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
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
Circuit-breakers in the system
Secure Development Lifecycle
…
Reaching the quality bar
Demo
Where and how to apply practices to increase quality
A word on quality
enablers
Some patterns to enable pervasive quality in your apps
Feature flags
App-level segregation to control exposure
Circuit breakers
Service segregation to isolate failures
Deployment gates
Check system status, run UAT, … before approving a stage
Deployment patterns
A deployment is not just dumping bits somewhere – embed
quality checks
Tools reference
• SonarQube (https://sonarsource.com)
• Secure DevOps Kit for Azure DevOps
(https://azsk.azurewebsites.net)
• WhiteSource Bolt
(https://marketplace.visualstudio.com/items?itemName=
whitesource.ws-bolt)
• Visual Studio Marketplace
(https://marketplace.visualstudio.com)
Thanks!

More Related Content

What's hot

lknight.res -04052015
lknight.res -04052015lknight.res -04052015
lknight.res -04052015
Lorna Knight
 
Why Selenium and Qualitia?
Why Selenium and Qualitia?Why Selenium and Qualitia?
Why Selenium and Qualitia?
BeyerLudvigsen70
 
Test Automation Techniques for Windows Applications
Test Automation Techniques for Windows ApplicationsTest Automation Techniques for Windows Applications
Test Automation Techniques for Windows Applications
Tabăra de Testare
 

What's hot (20)

Should you be your own judge?
Should you be your own judge?Should you be your own judge?
Should you be your own judge?
 
Resume_Apoorva
Resume_ApoorvaResume_Apoorva
Resume_Apoorva
 
Test Automation Ground Up
Test Automation Ground UpTest Automation Ground Up
Test Automation Ground Up
 
Myths and reality about software testing
Myths and reality about software testingMyths and reality about software testing
Myths and reality about software testing
 
Automating Common Criteria
Automating Common Criteria Automating Common Criteria
Automating Common Criteria
 
Robotium
RobotiumRobotium
Robotium
 
lknight.res -04052015
lknight.res -04052015lknight.res -04052015
lknight.res -04052015
 
Why Selenium and Qualitia?
Why Selenium and Qualitia?Why Selenium and Qualitia?
Why Selenium and Qualitia?
 
Code review at large scale
Code review at large scaleCode review at large scale
Code review at large scale
 
Phases of software development
Phases of software developmentPhases of software development
Phases of software development
 
Vipin_Pandey
Vipin_PandeyVipin_Pandey
Vipin_Pandey
 
Building stable applications with PHP and 3rd party services
Building stable applications with PHP and 3rd party servicesBuilding stable applications with PHP and 3rd party services
Building stable applications with PHP and 3rd party services
 
Test Automation Techniques for Windows Applications
Test Automation Techniques for Windows ApplicationsTest Automation Techniques for Windows Applications
Test Automation Techniques for Windows Applications
 
DevOpsDays Jakarta: Code Coverage - A dump metric for code quality
DevOpsDays Jakarta: Code Coverage - A dump metric for code qualityDevOpsDays Jakarta: Code Coverage - A dump metric for code quality
DevOpsDays Jakarta: Code Coverage - A dump metric for code quality
 
ABHII
ABHIIABHII
ABHII
 
Test automation with trends
Test automation with trendsTest automation with trends
Test automation with trends
 
Advanced software testing course
Advanced software testing courseAdvanced software testing course
Advanced software testing course
 
Contract Automation Test Engineers (Python)
Contract Automation Test Engineers (Python)Contract Automation Test Engineers (Python)
Contract Automation Test Engineers (Python)
 
Resume
ResumeResume
Resume
 
Vipin_Pandey
Vipin_PandeyVipin_Pandey
Vipin_Pandey
 

Similar to The computer says no! Software Quality in the DevOps world

Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
LB Denker
 

Similar to The computer says no! Software Quality in the DevOps world (20)

Leveraging AI and ML in Test Management Systems - DevOps Next
Leveraging AI and ML in Test Management Systems - DevOps NextLeveraging AI and ML in Test Management Systems - DevOps Next
Leveraging AI and ML in Test Management Systems - DevOps Next
 
Career Path Planning
Career Path PlanningCareer Path Planning
Career Path Planning
 
DevOps at Crevise Technologies
DevOps at Crevise TechnologiesDevOps at Crevise Technologies
DevOps at Crevise Technologies
 
Test Driven Development and Automation
Test Driven Development and AutomationTest Driven Development and Automation
Test Driven Development and Automation
 
Quality assurance of large c++ projects
Quality assurance of large c++ projectsQuality assurance of large c++ projects
Quality assurance of large c++ projects
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
 
#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
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
 
Unleash Team Productivity with Real-Time Operations (DEV203-S) - AWS re:Inven...
Unleash Team Productivity with Real-Time Operations (DEV203-S) - AWS re:Inven...Unleash Team Productivity with Real-Time Operations (DEV203-S) - AWS re:Inven...
Unleash Team Productivity with Real-Time Operations (DEV203-S) - AWS re:Inven...
 
Continuous testing & devops with @petemar5hall
Continuous testing & devops with @petemar5hallContinuous testing & devops with @petemar5hall
Continuous testing & devops with @petemar5hall
 
DevSecOps - It can change your life (cycle)
DevSecOps - It can change your life (cycle)DevSecOps - It can change your life (cycle)
DevSecOps - It can change your life (cycle)
 
Certified DevOps Quality Engineer.pdf
Certified DevOps Quality Engineer.pdfCertified DevOps Quality Engineer.pdf
Certified DevOps Quality Engineer.pdf
 
A journey to_be_a_software_craftsman
A journey to_be_a_software_craftsmanA journey to_be_a_software_craftsman
A journey to_be_a_software_craftsman
 
Continuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQubeContinuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQube
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Continuous Security / DevSecOps- Why How and What
Continuous Security /  DevSecOps- Why How and WhatContinuous Security /  DevSecOps- Why How and What
Continuous Security / DevSecOps- Why How and What
 
Pair Programming
Pair ProgrammingPair Programming
Pair Programming
 
Continuous Integration and Quality Development
Continuous Integration and Quality DevelopmentContinuous Integration and Quality Development
Continuous Integration and Quality Development
 
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
 
How To Ensure Quality With Automation
How To Ensure Quality With AutomationHow To Ensure Quality With Automation
How To Ensure Quality With Automation
 

More from Matteo Emili

More from Matteo Emili (20)

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

Recently uploaded

Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdf
Kamal Acharya
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
Kamal Acharya
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
Kamal Acharya
 
LIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.pptLIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.ppt
ssuser9bd3ba
 
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical SolutionsRS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
Atif Razi
 

Recently uploaded (20)

NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
 
Introduction to Casting Processes in Manufacturing
Introduction to Casting Processes in ManufacturingIntroduction to Casting Processes in Manufacturing
Introduction to Casting Processes in Manufacturing
 
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
 
The Ultimate Guide to External Floating Roofs for Oil Storage Tanks.docx
The Ultimate Guide to External Floating Roofs for Oil Storage Tanks.docxThe Ultimate Guide to External Floating Roofs for Oil Storage Tanks.docx
The Ultimate Guide to External Floating Roofs for Oil Storage Tanks.docx
 
Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdf
 
Halogenation process of chemical process industries
Halogenation process of chemical process industriesHalogenation process of chemical process industries
Halogenation process of chemical process industries
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
 
Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
 
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdfDanfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
 
fundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projectionfundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projection
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
 
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfA CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
 
Construction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptxConstruction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptx
 
LIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.pptLIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.ppt
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering Workshop
 
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical SolutionsRS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
 
Scaling in conventional MOSFET for constant electric field and constant voltage
Scaling in conventional MOSFET for constant electric field and constant voltageScaling in conventional MOSFET for constant electric field and constant voltage
Scaling in conventional MOSFET for constant electric field and constant voltage
 

The computer says no! Software Quality in the DevOps world