SlideShare a Scribd company logo
#DOH19
2
Il computer dice no!
Qualitá in un processo di
Continuous Delivery
Matteo Emili
Microsoft MVP – Azure DevOps
matteo.emili@live.com
https://mattvsts.github.io || http://twitter.com/MattVSTS
#DOH19 3
Organizer & sponsors
GetLatestVersion.it
4
“Il mio codice é perfetto
va benissimo!”
Non saprei…
5
“Ma funziona!”
Sicuramente, ma come?
6
DevOps é basato sul concetto di
qualitá
Anche il migliore artigiano ha bisogno di un aiuto.
7
L’automazione é essenziale
Serve automazione per ottenere il massimo valore
possible
8
La qualitá deve essere ovunque
Ogni passo ha margine di miglioramento
9
‘Qualitá’ o ‘Qualitá del codice’?
Sono due cose differenti…
#DOH19
Definiamo qualitá del codice
Standard industriali
Misure della complessitá di Halstead
Complessitá ciclomatica
Indice di manutenibilitá
CERT Secure Coding Standards
Lista di CWE
…
Scelte specifiche
Standard di documentazione
Regole di stile
Ri-uso di pattern
Copertura del codice
Percentuale massima di variabilitá
…
11
Gli standard industriali…
…sono standard. Sono in giro da tanto tempo.
#DOH19
Alcuni da prima che nascessi!
Matteo Emili
Nato nel 1990
Standard industriali
Complessitá ciclomatica (1976)
Misure della complessitá di Halstead
(1977)
Metriche di struttra del software (1981)
ISO/IEC 9126 Product Quality (1991)
…
13
Le scelte di un team sono variegate
Diversi fattori non-tecnici da considerare
14
E la qualitá?
La Qualitá sta nell’applicare pratiche e processi per
garantire che il risultato finale corrisponda alle
aspettative
15
Strumenti ed automazione
Ridurre le interazioni manuali al minimo possibile
#DOH19
Qual é il nostro standard qualitativo?
Strumenti
Un controllo di codice sorgente moderno
Continuous Integration
Script ed estensioni per il server di CI
Scanner della qualitá del codice
Strumenti di analisi delle vulnerabilitá
…
Pratiche
Review del codice
Iterazioni dedicate ad un fine
TDD
Ancora piú test!
Secure Development Lifecycle
…
17
C’é solo un pre-requisito
É l’unica regola della moderna ingegneria del software
18
Gli strumenti devono essere integrati
nella piattaforma CI/CD scelta
Fare altrimenti causa frizioni non necessarie, riducendo
l’adozione
19
Ora, strumenti…
Di cosa c’é realmente bisogno per aumentare la qualitá
del codice?
20
Misurare (con contesto)
Con cosa abbiamo a che fare?
#DOH19
Come e cosa misurare?
Metrica o disciplina
Analisi qualitativa del codice
Rischio di sicurezza diretto
Rischio indotto dale dipendenze (indiretto)
Analisi infrastrutturale preventiva
Strumenti raccomandati
SonarQube, Kiuwan, …
Checkmarx, BinSkim, Fortify, …
WhiteSource
AzSK, Azure Scanner, …
22
DEMO
La cavia: PartsUnlimited
https://github.com/microsoft/PartsUnlimited
23
Ogni strumento va applicato ad uno
stadio differente
Una build da 30 secondi non puó durare un’ora…
#DOH19
Esempi di quando fare cosa?
Cosa?
Analisi qualitativa del codice
Rischio di sicurezza diretto
Rischio indotto dale dipendenze (indiretto)
Analisi infrastrutturale preventiva
Quando?
Build di CI (branch principali e PR)
Ad-hoc per branch master, develop
Tutte le build senza eccezioni
Dopo il deployment in sviluppo, prima di
UAT
25
É DevSecOps?
Potrebbe (ci sono diverse definizioni), ma secondo me
é solo buon senso...
#DOH19
Grazie!
https://mattvsts.github.io/slideshare
27
Qualcosa di piú?
GetLatestVersion On-Air ogni secondo martedí!

More Related Content

PDF
TDD patterns and TDD strategies
Alessandro Ceseno
 
PPTX
03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni
Marco Suma
 
PDF
Errori fantastici... e dove trovarli
Commit University
 
PDF
Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software
Alessandro Martellone
 
PPT
Agile software lifecycle
Francesco Trucchia
 
PDF
Software Engineering Introduction in Italian
PierpaoloCaricato
 
PDF
Stop Meeting, Start Coding!
Giulio Roggero
 
PPTX
Webinar: Il “real device testing” di Perfecto Mobile per una strategia mobile...
Emerasoft, solutions to collaborate
 
TDD patterns and TDD strategies
Alessandro Ceseno
 
03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni
Marco Suma
 
Errori fantastici... e dove trovarli
Commit University
 
Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software
Alessandro Martellone
 
Agile software lifecycle
Francesco Trucchia
 
Software Engineering Introduction in Italian
PierpaoloCaricato
 
Stop Meeting, Start Coding!
Giulio Roggero
 
Webinar: Il “real device testing” di Perfecto Mobile per una strategia mobile...
Emerasoft, solutions to collaborate
 

Similar to Il computer dice no! (20)

PPTX
2016 dev ops@core -devops nella cameretta di mio figlio
Felice Pescatore
 
PPTX
Far scalare la Continuous Delivery per il middle management
Matteo Emili
 
PDF
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Commit University
 
PPTX
Alm pills - Sessione community tour Dot Net Umbria 2011
Gian Maria Ricci
 
PPTX
05 azure well architected framework
Rauno De Pasquale
 
PDF
Continuous Integration e High Quality Code
Daniele Mondello
 
PDF
Corso progettazione
Giuseppe Dell'Abate
 
PPTX
DevOps by examples - Agile O'Day 2017
Giulio Vian
 
PPTX
Tecnologie e Tecniche per affrontare il Mondo che Cambia
Marco Parenzan
 
PPTX
DevOps: l'IT al servizio del Business
Felice Pescatore
 
PDF
Sviluppo Agile secondo l'approccio SCRUM
Matteo Papadopoulos
 
PDF
Benvenuti nella Developer Experience del (dopo)domani
Francesco Corti
 
PPTX
OpenDevSecOps 2019 - Open devsecops un caso di studio
Emerasoft, solutions to collaborate
 
PPTX
Code metrics
Klab
 
PPTX
Webinar: “Testing automatico: la scelta vincente per ottenere una riduzione d...
Emerasoft, solutions to collaborate
 
PDF
Continous Delivery & HQ Code
Daniele Mondello
 
PDF
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Idriss Riouak
 
PDF
Enabling DevOps for Machine Learning with Azure Pipelines
Luca Milan
 
PPTX
Final presentation of Project Management course (Gestione Progetti Software) ...
Alexander Minichino
 
2016 dev ops@core -devops nella cameretta di mio figlio
Felice Pescatore
 
Far scalare la Continuous Delivery per il middle management
Matteo Emili
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Commit University
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Gian Maria Ricci
 
05 azure well architected framework
Rauno De Pasquale
 
Continuous Integration e High Quality Code
Daniele Mondello
 
Corso progettazione
Giuseppe Dell'Abate
 
DevOps by examples - Agile O'Day 2017
Giulio Vian
 
Tecnologie e Tecniche per affrontare il Mondo che Cambia
Marco Parenzan
 
DevOps: l'IT al servizio del Business
Felice Pescatore
 
Sviluppo Agile secondo l'approccio SCRUM
Matteo Papadopoulos
 
Benvenuti nella Developer Experience del (dopo)domani
Francesco Corti
 
OpenDevSecOps 2019 - Open devsecops un caso di studio
Emerasoft, solutions to collaborate
 
Code metrics
Klab
 
Webinar: “Testing automatico: la scelta vincente per ottenere una riduzione d...
Emerasoft, solutions to collaborate
 
Continous Delivery & HQ Code
Daniele Mondello
 
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Idriss Riouak
 
Enabling DevOps for Machine Learning with Azure Pipelines
Luca Milan
 
Final presentation of Project Management course (Gestione Progetti Software) ...
Alexander Minichino
 
Ad

More from Matteo Emili (20)

PPTX
Transforming the impossible
Matteo Emili
 
PPTX
É ora di passare a Pipeline as code
Matteo Emili
 
PPTX
How not to fall into the DevSecOps trap
Matteo Emili
 
PPTX
The computer says no v2
Matteo Emili
 
PPTX
A selection of short stories where Azure DevOps saved the bacon
Matteo Emili
 
PPTX
The computer says no! Software Quality in the DevOps world
Matteo Emili
 
PPTX
Strategie di migrazione da Team Foundation Server ad Azure DevOps Services
Matteo Emili
 
PPTX
What did i learn trying to migrate teams from legacy to modern?
Matteo Emili
 
PPTX
Cosa ho imparato trasformando software factory?
Matteo Emili
 
PPTX
PowerShell and Azure DevOps
Matteo Emili
 
PPTX
Am i doing deployments right v2
Matteo Emili
 
PPTX
Am i doing deployments right?
Matteo Emili
 
PPTX
How telemetry can be your best friend
Matteo Emili
 
PPTX
Containers jumpstart from a DevOps perspective
Matteo Emili
 
PPTX
Development and QA dilemmas in DevOps
Matteo Emili
 
PPTX
Tools and practices to use in a Continuous Delivery pipeline
Matteo Emili
 
PPTX
Uno sguardo a Team Foundation Server 2017
Matteo Emili
 
PPTX
A year of SonarQube and TFS/VSTS
Matteo Emili
 
PPTX
Packages as the first choice when deploying - how?
Matteo Emili
 
PPTX
Hybrid DevOps Stack
Matteo Emili
 
Transforming the impossible
Matteo Emili
 
É ora di passare a Pipeline as code
Matteo Emili
 
How not to fall into the DevSecOps trap
Matteo Emili
 
The computer says no v2
Matteo Emili
 
A selection of short stories where Azure DevOps saved the bacon
Matteo Emili
 
The computer says no! Software Quality in the DevOps world
Matteo Emili
 
Strategie di migrazione da Team Foundation Server ad Azure DevOps Services
Matteo Emili
 
What did i learn trying to migrate teams from legacy to modern?
Matteo Emili
 
Cosa ho imparato trasformando software factory?
Matteo Emili
 
PowerShell and Azure DevOps
Matteo Emili
 
Am i doing deployments right v2
Matteo Emili
 
Am i doing deployments right?
Matteo Emili
 
How telemetry can be your best friend
Matteo Emili
 
Containers jumpstart from a DevOps perspective
Matteo Emili
 
Development and QA dilemmas in DevOps
Matteo Emili
 
Tools and practices to use in a Continuous Delivery pipeline
Matteo Emili
 
Uno sguardo a Team Foundation Server 2017
Matteo Emili
 
A year of SonarQube and TFS/VSTS
Matteo Emili
 
Packages as the first choice when deploying - how?
Matteo Emili
 
Hybrid DevOps Stack
Matteo Emili
 
Ad

Il computer dice no!