SlideShare a Scribd company logo
1 of 43
Basta poco per
distruggere DevOps
Alessandro Alpi
Microsoft MVP Data Platform dal 2008
CTO di Engage IT Services Srl
Staff member di GetLatestVersion.it
www.wpc2019.it 2
GetLatestVersion.it
 Introduzione
 La vita di un team, le scelte e le conseguenze
 Q&A
www.wpc2019.it 3
Agenda
Introduzione
La storia e la fragilità di DevOps
www.wpc2019.it 4
 Il termine nasce nel lontano 2009 (DevOpsDays)
 Risponde a esigenze precise (pragmatico)
 Aumento qualità
 Miglioramento continuo
 Aumento frequenza rilascio
 “Standard” di ambienti di sviluppo e processi
È supportato da un set di strumenti, non è un set di strumenti
È cultura e persone
È qualcosa che alcuni di noi hanno dentro e facevano da
tempo, senza avere gli strumenti di oggi
www.wpc2019.it 5
Un po’ di
storia
Per citare qualcosa…
 Sta nelle persone
 Sta nella cultura del team
 Sta nel distacco e nei compartimenti stagni
 Nasce dallo hype e dalle incomprensioni
 Risiede nell’incapacità di recepire il cambiamento
 Vive di personalizzazioni
 Si nutre della mancata formazione
 …
www.wpc2019.it 6
La sua
fragilità
Distruggere DevOps è più semplice che seguirlo, come?
www.wpc2019.it 7
Quindi?
Reparto sviluppo
www.wpc2019.it 8
Gli “attori”
dell’azienda Paura, titubanza
Intelligenza, isolamento
Impegno, costanza
Reparto operations
www.wpc2019.it 9
Gli “attori”
dell’azienda Nessuna voglia
Opportunismo
Il migliore
Il board e il mentore
www.wpc2019.it 10
Gli “attori”
dell’azienda
Assenza di scrupoli Decisionale, esecutivo
Crede nella causa
Dall’alto viene la richiesta di cambiare, di diventare DevOps
Strumenti?
Ideali?
Necessità?
PENSARE PRIMA DI TUTTO
AL CAMBIAMENTO CULTURALE
Quale la filosofia?
Cosa si fa e cosa si dovrebbe fare?
Come rendere la trasformazione più
indolore?
www.wpc2019.it 11
La missione
Il nuovo ruolo/dipartimento
www.wpc2019.it 12
Errore n. 1
?
DevOps
Dept.
Per fare DevOps serve un dipartimento
che determini i processi e regoli le
persone
Principali conseguenze:
Development e Operations non saranno mai insieme
La crescita di team non esiste
Aumenta la probabilità di divide et impera
Development e Operations non si sentono coinvolti
Si aggiunge burocrazia non utile
www.wpc2019.it 13
Errore n. 1
La vostra strategia DevOps partire dovrebbe dalla
interoperazione tra Dev e Ops, non da nuovi
dipartimenti
Non si valutano l’attitudine del personale e il carico di lavoro
www.wpc2019.it 14
Errore n. 2
Si parte! E siccome è un nuovo approccio,
inizieremo fin da subito a lavorare così.
Ha senso? Cosa dobbiamo
fare? E cosa facciamo con i
lavori in essere?
Principali conseguenze:
Non si conoscono le priorità di lavoro
Non si sapranno scegliere gli strumenti (a priori, poi)
Probabilmente fallirà tutto in un “noi non possiamo!”
Il nostro gruppo di lavoro, in parte, se ne convincerà
Le persone e il budget saranno fuori controllo
www.wpc2019.it 15
Errore n. 2
Il fallimento di DevOps, in questo caso, dall’incapacità
di dare priorità al lavoro nasce
Ci si pongono obbiettivi non realistici
www.wpc2019.it 16
Errore n. 3
Come prima cosa, faremo automatismo di
tutto quello che avevamo, così rilasciamo
prima
Abbiamo una marea di
progetti, servizi e prodotti,
come facciamo?
Su che base?
Principali conseguenze:
Si investe tempo per avere potenziale frustrazione
Si riduce la qualità del lavoro e del risultato
Si perde l’impegno delle persone e la loro proattività
Non si relaziona il lavoro con il valore di business
Si rischia di non raggiungere il nobile obbiettivo
www.wpc2019.it 17
Errore n. 3
Fare tanti rilasci tanto per farli, valore aggiunto alcuno
non porta. La qualità del servizio e la soddisfazione del
cliente invece considerati vanno.
Ci sono resistenze, si cercano soluzioni ibride
www.wpc2019.it 18
Errore n. 4
Vista la complessità, teniamo separate
Dev e Ops, ma lavoriamo in maniera agile,
con approccio ibrido
{Torniamo a fare il
nostro lavoro
velocemente, senza
fermi e rotture}
x@y :-$ Ci vediamo al
prossimo down che
provocate!_
Principali conseguenze:
Si accentuatano gli “storici” scontri
I famosi silo isolati di persone si ripresentano
Si ha l’illusione di lavorare DevOps, ma non è così
La divisione porta ad avere i problemi passati
www.wpc2019.it 19
Errore n. 4
Più un’azienda strutturata è, più pensare alla
“vicinanza” tra Dev e Ops dovrebbe.
Resistenza al cambiamento
www.wpc2019.it 20
Errore n. 5
{Ragazzi, a me
spaventa questo
DevOps, lavoriamo
già bene così!}
:-$ concordo,
più strumenti
significa più
da fare
(preme tasti…)
{Invece dovremmo
migliorare la
qualità del
nostro lavoro}
:-$ dai dai,
facciamo, è
un’occasione
:-$ docker run
2 o 3 a favore, non si vuole veramente cambiare
Principali conseguenze:
Senza cambiamento non cambiamo la nostra cultura
Ci si accontenta di quello che va, perché va
Non si migliora mai il team
Il blocco del cambiamento giustifica le cattive abitudini
Le buone idee diventano pericolose
www.wpc2019.it 21
Errore n. 5
Il cambiamento mai doloroso è, solo la resistenza al
cambiamento lo è.
Nessuna formazione
www.wpc2019.it 22
Errore n. 6
{In effetti…}
{Ragazzi, ci serve
un piano di
formazione per
migliorarci}
{Mi hai fatto fare
solo report per
mesi, Sheldon!}
Non c’è il budget, prima
servono più persone. Siamo
lenti.
Principali conseguenze:
Niente “lavagne”, tanto le cancelliamo! (fate foto )
La formazione è un costo, si perde l’occasione di crescita
Le persone perdono stimoli se non hanno tempo di
imparare
www.wpc2019.it 23
Errore n. 6
Una strategia DevOps efficace, sul miglioramento
continuo dovrebbe basarsi
Il team è poco in sintonia, iniziano le personalizzazioni estreme
www.wpc2019.it 24
Errore n. 7
{Che confusione,
non so più che
devo fare!}
:-$ problemi
da dev
{Bah, creo la mia
soluzione, che è
vincente}
{Mio dio, non ci
sono regole,
tutto custom!}
:-$ io ho la
mia cartella
di script per
ogni realtà
:-$ docker
update
Principali conseguenze:
Si creano toolset ad personam
Si creano N linee di sviluppo
Codebase non comune
Ognuno vive col “suo” lavoro
Source Control, questo sconosciuto
www.wpc2019.it 25
Errore n. 7
Per avere successo con DevOps, standard di
sviluppo, gestione e infrastruttura servonoS
Si crea lo spazio per chi ama governare
www.wpc2019.it 26
Errore n. 8
{Ci penso io!}
:-$ decidiamo
noi cosa fare
Principali conseguenze:
Decisione dittatoriale, non dal team
Creazione di figure di comando (non ufficializzate)
Ogni processo è modificabile se il “comandante” lo decide
Figure indispensabili per la sopravvivenza
www.wpc2019.it 27
Errore n. 8
Per il miglioramento continuo, condivisione e
consapevolezza necessarie sono
Si aprono le possibilità di fare il non previsto
www.wpc2019.it 28
Errore n. 9
{certo, il mio
team lo farà il
prima possibile}
:-$ io non ho
tempo di
rilasciare
Mi serve questo report “da 5 minuti”,
subito!
{Ehm, abbiamo
altro da
terminare!}
Principali conseguenze:
Annullare le priorità decise prima
Fare cose che non servono, che non danno valore
Diseducare tutta la filiera
www.wpc2019.it 29
Errore n. 9
La corretta gestione delle priorità, l’unica strada è
Si pensa agli strumenti, non alle persone e al rilascio
www.wpc2019.it 30
Errore n. 10
Installiamo GestisciTutto™ e Attracco™, così
finalmente potremmo dire di essere
veramente DevOps.
Principali conseguenze:
Abbandonare la strada della migrazione culturale
Non valorizzare le persone
Non responsabilizzare le persone
Non crescere
www.wpc2019.it 31
Errore n. 10
Gli individui e le interazioni più che i processi e gli
strumenti
Non si pensa al rilascio, per cui fix in produzione!
www.wpc2019.it 32
Errore n. 11
È tutto fermo!
Ç@#*#@*@[#!!
{Mi connetto in
produzione e
sistemo, non ho
altro modo}
Principali conseguenze:
“Drift” di produzione rispetto alle linee di sviluppo
Rischio di sovrascrivere modifiche da tenere
Non ho alcun controllo delle modifiche
Non ho visibilità delle versioni di ogni installazione
Salto sempre la parte di test/preprod/ecc.
Il rilascio, come idea compatta, non esiste proprio
www.wpc2019.it 33
Errore n. 11
Una pipeline solida e di cui ci si può dimenticare
serve
Reinventare la ruota
www.wpc2019.it 34
Errore n. 12
{Ho scritto un framework
di generazione dei
comandi SQL in sole 3
settimane!}
{Ah beh, un ORM?
Hai perso tempo.}
{Entity
Framework?
NHibernate?}
Principali conseguenze:
Atteggiamento di diffidenza sugli altri framework
“Proprietà” del codice, intoccabile da altri
Manutenzione continua e debug
Evoluzione continua col resto dei framework
Tipicamente non Open Source
www.wpc2019.it 35
Errore n. 12
Per il valore aggiunto, consapevolezza di
strumenti e selezione del software necessari sono
Anarchia e isolamento
www.wpc2019.it 36
Errore n. 13
{Come la chiamo
questo metodo,
facciamo
DoSomething()}
:-$ tanto
faccio sempre
quello che mi
pare
{ma no! si usa
doSomething()}
{io ho scritto
Do(Something
some)}
:-$ il “mio”
metodo è il
migliore
:-$ forse è
meglio
condividere?
Principali conseguenze:
Senza Coding Style il codice è illeggibile
Senza Coding Rules il codice è meno standard
Senza Naming Conventions e non si parla la stessa lingua
Senza condivisione del glossario si perde tempo in analisi
Incentivo al lavoro in solitudine (Silo ad personam)
www.wpc2019.it 37
Errore n. 13
Disciplina e regole condivise per un successo di
team servono
Arrendersi
www.wpc2019.it 38
L’errore per
eccellenza
www.wpc2019.it 39
Il consiglio
No! Provare no! Fare, o non fare! Non c’è provare!
Grazie!
www.wpc2019.it 40
Q&A
www.wpc2019.it 41
https://techbeacon.com/enterprise-it/4-biggest-reasons-devops-failure
https://devops.com/5-biggest-ways-fail-devops/
https://www.amazon.it/Phoenix-Project-Helping-Business-English-
ebook/dp/B00AZRBLHO
https://www.amazon.it/Devops-Handbook-World-Class-Reliability-
Organizations/dp/1942788002
www.wpc2019.it 42
Risorse
Contatti
OverNet Education
 Info@OverNetEducation.it
 www.OverNetEducation.it
 Rozzano (MI) +39 02 365738
 Bologna +39 051 269911
 www.wpc-overneteducation.it
 #wpc19it
www.wpc2019.it 43

More Related Content

Similar to Wpc2019 - Distruggere DevOps, la storia di un vero team

Hybrid DevOps Stack
Hybrid DevOps StackHybrid DevOps Stack
Hybrid DevOps StackMatteo Emili
 
Integrazione continua con TFS Build
Integrazione continua con TFS BuildIntegrazione continua con TFS Build
Integrazione continua con TFS BuildGian Maria Ricci
 
Loosely Coupled Complexity - Unleash the power of your domain model
Loosely Coupled Complexity - Unleash the power of your domain modelLoosely Coupled Complexity - Unleash the power of your domain model
Loosely Coupled Complexity - Unleash the power of your domain modelFrancesca1980
 
Prototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsPrototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsCommit University
 
Il tuo team "agile" scrive codice "flaccido"? Forse scrum non basta
Il tuo team "agile" scrive codice "flaccido"? Forse scrum non bastaIl tuo team "agile" scrive codice "flaccido"? Forse scrum non basta
Il tuo team "agile" scrive codice "flaccido"? Forse scrum non bastaStefano Muro
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Commit University
 
Stop Meeting, Start Coding!
Stop Meeting, Start Coding!Stop Meeting, Start Coding!
Stop Meeting, Start Coding!Giulio Roggero
 
Drupal Agile: DRUPAL ED IL MERCATO ENTERPRISE
Drupal Agile: DRUPAL ED IL MERCATO ENTERPRISEDrupal Agile: DRUPAL ED IL MERCATO ENTERPRISE
Drupal Agile: DRUPAL ED IL MERCATO ENTERPRISETwinbit
 
DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile
DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo AgileDDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile
DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo AgileDrupalDay
 
- Codemotion Rome 2015
- Codemotion Rome 2015- Codemotion Rome 2015
- Codemotion Rome 2015Codemotion
 
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...Giulio Vian
 
Inversion of control e Dependency Injection (ITA)
Inversion of control e Dependency Injection (ITA)Inversion of control e Dependency Injection (ITA)
Inversion of control e Dependency Injection (ITA)Giancarlo Valente
 
Real Solutions Day - Progetto e gestione del lavoro: ALM in breve con Visual ...
Real Solutions Day - Progetto e gestione del lavoro: ALM in breve con Visual ...Real Solutions Day - Progetto e gestione del lavoro: ALM in breve con Visual ...
Real Solutions Day - Progetto e gestione del lavoro: ALM in breve con Visual ...Davide Benvegnù
 
Inversion of Control @ CD2008
Inversion of Control @ CD2008Inversion of Control @ CD2008
Inversion of Control @ CD2008Mauro Servienti
 
Keep calm and deploy
Keep calm and deployKeep calm and deploy
Keep calm and deployKlab
 
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...Marco Parenzan
 
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...Andrea Cirioni
 
Il buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceIl buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceAndrea Dottor
 

Similar to Wpc2019 - Distruggere DevOps, la storia di un vero team (20)

Hybrid DevOps Stack
Hybrid DevOps StackHybrid DevOps Stack
Hybrid DevOps Stack
 
Integrazione continua con TFS Build
Integrazione continua con TFS BuildIntegrazione continua con TFS Build
Integrazione continua con TFS Build
 
Loosely Coupled Complexity - Unleash the power of your domain model
Loosely Coupled Complexity - Unleash the power of your domain modelLoosely Coupled Complexity - Unleash the power of your domain model
Loosely Coupled Complexity - Unleash the power of your domain model
 
Prototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsPrototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step Functions
 
Il tuo team "agile" scrive codice "flaccido"? Forse scrum non basta
Il tuo team "agile" scrive codice "flaccido"? Forse scrum non bastaIl tuo team "agile" scrive codice "flaccido"? Forse scrum non basta
Il tuo team "agile" scrive codice "flaccido"? Forse scrum non basta
 
Total Testing in DevOps
Total Testing in DevOpsTotal Testing in DevOps
Total Testing in DevOps
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
 
Stop Meeting, Start Coding!
Stop Meeting, Start Coding!Stop Meeting, Start Coding!
Stop Meeting, Start Coding!
 
Drupal Agile: DRUPAL ED IL MERCATO ENTERPRISE
Drupal Agile: DRUPAL ED IL MERCATO ENTERPRISEDrupal Agile: DRUPAL ED IL MERCATO ENTERPRISE
Drupal Agile: DRUPAL ED IL MERCATO ENTERPRISE
 
DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile
DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo AgileDDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile
DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile
 
- Codemotion Rome 2015
- Codemotion Rome 2015- Codemotion Rome 2015
- Codemotion Rome 2015
 
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
 
Inversion of control e Dependency Injection (ITA)
Inversion of control e Dependency Injection (ITA)Inversion of control e Dependency Injection (ITA)
Inversion of control e Dependency Injection (ITA)
 
Real Solutions Day - Progetto e gestione del lavoro: ALM in breve con Visual ...
Real Solutions Day - Progetto e gestione del lavoro: ALM in breve con Visual ...Real Solutions Day - Progetto e gestione del lavoro: ALM in breve con Visual ...
Real Solutions Day - Progetto e gestione del lavoro: ALM in breve con Visual ...
 
Inversion of Control @ CD2008
Inversion of Control @ CD2008Inversion of Control @ CD2008
Inversion of Control @ CD2008
 
Keep calm and deploy
Keep calm and deployKeep calm and deploy
Keep calm and deploy
 
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...
 
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
 
Il buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceIl buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita felice
 
Produzione software
Produzione softwareProduzione software
Produzione software
 

More from Alessandro Alpi

Mvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops worldMvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops worldAlessandro Alpi
 
Digital warriors 2020 - Smart?
Digital warriors 2020 - Smart?Digital warriors 2020 - Smart?
Digital warriors 2020 - Smart?Alessandro Alpi
 
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers Alessandro Alpi
 
Sql Wars - SQL Clone vs Docker Containers
Sql Wars - SQL Clone vs Docker Containers Sql Wars - SQL Clone vs Docker Containers
Sql Wars - SQL Clone vs Docker Containers Alessandro Alpi
 
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerDoaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerAlessandro Alpi
 
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerSql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerAlessandro Alpi
 
Configuration e change management con Disciplined Agile Framework
Configuration e change management con Disciplined Agile FrameworkConfiguration e change management con Disciplined Agile Framework
Configuration e change management con Disciplined Agile FrameworkAlessandro Alpi
 
Basta poco per distruggere DevOps
Basta poco per distruggere DevOpsBasta poco per distruggere DevOps
Basta poco per distruggere DevOpsAlessandro Alpi
 
Automatizzare il processo di link dei database con redgate source control
Automatizzare il processo di link dei database con redgate source controlAutomatizzare il processo di link dei database con redgate source control
Automatizzare il processo di link dei database con redgate source controlAlessandro Alpi
 
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DBSql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DBAlessandro Alpi
 
Sql Saturday a Pordenone - Sql Server journey, da dev a ops
Sql Saturday a Pordenone - Sql Server journey, da dev a opsSql Saturday a Pordenone - Sql Server journey, da dev a ops
Sql Saturday a Pordenone - Sql Server journey, da dev a opsAlessandro Alpi
 
PASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationPASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationAlessandro Alpi
 
PASS Virtual Chapter - SQL Server Continuous Deployment
PASS Virtual Chapter - SQL Server Continuous DeploymentPASS Virtual Chapter - SQL Server Continuous Deployment
PASS Virtual Chapter - SQL Server Continuous DeploymentAlessandro Alpi
 
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...Alessandro Alpi
 
PASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL ServerPASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL ServerAlessandro Alpi
 
Quick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerQuick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerAlessandro Alpi
 
#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
 
#DOAW16 - DevOps@work Roma 2016 - Databases under source control
#DOAW16 - DevOps@work Roma 2016 - Databases under source control#DOAW16 - DevOps@work Roma 2016 - Databases under source control
#DOAW16 - DevOps@work Roma 2016 - Databases under source controlAlessandro Alpi
 
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON supportAlessandro Alpi
 
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON supportAlessandro Alpi
 

More from Alessandro Alpi (20)

Mvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops worldMvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops world
 
Digital warriors 2020 - Smart?
Digital warriors 2020 - Smart?Digital warriors 2020 - Smart?
Digital warriors 2020 - Smart?
 
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
 
Sql Wars - SQL Clone vs Docker Containers
Sql Wars - SQL Clone vs Docker Containers Sql Wars - SQL Clone vs Docker Containers
Sql Wars - SQL Clone vs Docker Containers
 
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerDoaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
 
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerSql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
 
Configuration e change management con Disciplined Agile Framework
Configuration e change management con Disciplined Agile FrameworkConfiguration e change management con Disciplined Agile Framework
Configuration e change management con Disciplined Agile Framework
 
Basta poco per distruggere DevOps
Basta poco per distruggere DevOpsBasta poco per distruggere DevOps
Basta poco per distruggere DevOps
 
Automatizzare il processo di link dei database con redgate source control
Automatizzare il processo di link dei database con redgate source controlAutomatizzare il processo di link dei database con redgate source control
Automatizzare il processo di link dei database con redgate source control
 
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DBSql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
 
Sql Saturday a Pordenone - Sql Server journey, da dev a ops
Sql Saturday a Pordenone - Sql Server journey, da dev a opsSql Saturday a Pordenone - Sql Server journey, da dev a ops
Sql Saturday a Pordenone - Sql Server journey, da dev a ops
 
PASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationPASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous Integration
 
PASS Virtual Chapter - SQL Server Continuous Deployment
PASS Virtual Chapter - SQL Server Continuous DeploymentPASS Virtual Chapter - SQL Server Continuous Deployment
PASS Virtual Chapter - SQL Server Continuous Deployment
 
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
 
PASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL ServerPASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL Server
 
Quick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerQuick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL Server
 
#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
 
#DOAW16 - DevOps@work Roma 2016 - Databases under source control
#DOAW16 - DevOps@work Roma 2016 - Databases under source control#DOAW16 - DevOps@work Roma 2016 - Databases under source control
#DOAW16 - DevOps@work Roma 2016 - Databases under source control
 
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
 
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
 

Wpc2019 - Distruggere DevOps, la storia di un vero team

  • 1.
  • 2. Basta poco per distruggere DevOps Alessandro Alpi Microsoft MVP Data Platform dal 2008 CTO di Engage IT Services Srl Staff member di GetLatestVersion.it www.wpc2019.it 2 GetLatestVersion.it
  • 3.  Introduzione  La vita di un team, le scelte e le conseguenze  Q&A www.wpc2019.it 3 Agenda
  • 4. Introduzione La storia e la fragilità di DevOps www.wpc2019.it 4
  • 5.  Il termine nasce nel lontano 2009 (DevOpsDays)  Risponde a esigenze precise (pragmatico)  Aumento qualità  Miglioramento continuo  Aumento frequenza rilascio  “Standard” di ambienti di sviluppo e processi È supportato da un set di strumenti, non è un set di strumenti È cultura e persone È qualcosa che alcuni di noi hanno dentro e facevano da tempo, senza avere gli strumenti di oggi www.wpc2019.it 5 Un po’ di storia
  • 6. Per citare qualcosa…  Sta nelle persone  Sta nella cultura del team  Sta nel distacco e nei compartimenti stagni  Nasce dallo hype e dalle incomprensioni  Risiede nell’incapacità di recepire il cambiamento  Vive di personalizzazioni  Si nutre della mancata formazione  … www.wpc2019.it 6 La sua fragilità
  • 7. Distruggere DevOps è più semplice che seguirlo, come? www.wpc2019.it 7 Quindi?
  • 8. Reparto sviluppo www.wpc2019.it 8 Gli “attori” dell’azienda Paura, titubanza Intelligenza, isolamento Impegno, costanza
  • 9. Reparto operations www.wpc2019.it 9 Gli “attori” dell’azienda Nessuna voglia Opportunismo Il migliore
  • 10. Il board e il mentore www.wpc2019.it 10 Gli “attori” dell’azienda Assenza di scrupoli Decisionale, esecutivo Crede nella causa
  • 11. Dall’alto viene la richiesta di cambiare, di diventare DevOps Strumenti? Ideali? Necessità? PENSARE PRIMA DI TUTTO AL CAMBIAMENTO CULTURALE Quale la filosofia? Cosa si fa e cosa si dovrebbe fare? Come rendere la trasformazione più indolore? www.wpc2019.it 11 La missione
  • 12. Il nuovo ruolo/dipartimento www.wpc2019.it 12 Errore n. 1 ? DevOps Dept. Per fare DevOps serve un dipartimento che determini i processi e regoli le persone
  • 13. Principali conseguenze: Development e Operations non saranno mai insieme La crescita di team non esiste Aumenta la probabilità di divide et impera Development e Operations non si sentono coinvolti Si aggiunge burocrazia non utile www.wpc2019.it 13 Errore n. 1 La vostra strategia DevOps partire dovrebbe dalla interoperazione tra Dev e Ops, non da nuovi dipartimenti
  • 14. Non si valutano l’attitudine del personale e il carico di lavoro www.wpc2019.it 14 Errore n. 2 Si parte! E siccome è un nuovo approccio, inizieremo fin da subito a lavorare così. Ha senso? Cosa dobbiamo fare? E cosa facciamo con i lavori in essere?
  • 15. Principali conseguenze: Non si conoscono le priorità di lavoro Non si sapranno scegliere gli strumenti (a priori, poi) Probabilmente fallirà tutto in un “noi non possiamo!” Il nostro gruppo di lavoro, in parte, se ne convincerà Le persone e il budget saranno fuori controllo www.wpc2019.it 15 Errore n. 2 Il fallimento di DevOps, in questo caso, dall’incapacità di dare priorità al lavoro nasce
  • 16. Ci si pongono obbiettivi non realistici www.wpc2019.it 16 Errore n. 3 Come prima cosa, faremo automatismo di tutto quello che avevamo, così rilasciamo prima Abbiamo una marea di progetti, servizi e prodotti, come facciamo? Su che base?
  • 17. Principali conseguenze: Si investe tempo per avere potenziale frustrazione Si riduce la qualità del lavoro e del risultato Si perde l’impegno delle persone e la loro proattività Non si relaziona il lavoro con il valore di business Si rischia di non raggiungere il nobile obbiettivo www.wpc2019.it 17 Errore n. 3 Fare tanti rilasci tanto per farli, valore aggiunto alcuno non porta. La qualità del servizio e la soddisfazione del cliente invece considerati vanno.
  • 18. Ci sono resistenze, si cercano soluzioni ibride www.wpc2019.it 18 Errore n. 4 Vista la complessità, teniamo separate Dev e Ops, ma lavoriamo in maniera agile, con approccio ibrido {Torniamo a fare il nostro lavoro velocemente, senza fermi e rotture} x@y :-$ Ci vediamo al prossimo down che provocate!_
  • 19. Principali conseguenze: Si accentuatano gli “storici” scontri I famosi silo isolati di persone si ripresentano Si ha l’illusione di lavorare DevOps, ma non è così La divisione porta ad avere i problemi passati www.wpc2019.it 19 Errore n. 4 Più un’azienda strutturata è, più pensare alla “vicinanza” tra Dev e Ops dovrebbe.
  • 20. Resistenza al cambiamento www.wpc2019.it 20 Errore n. 5 {Ragazzi, a me spaventa questo DevOps, lavoriamo già bene così!} :-$ concordo, più strumenti significa più da fare (preme tasti…) {Invece dovremmo migliorare la qualità del nostro lavoro} :-$ dai dai, facciamo, è un’occasione :-$ docker run 2 o 3 a favore, non si vuole veramente cambiare
  • 21. Principali conseguenze: Senza cambiamento non cambiamo la nostra cultura Ci si accontenta di quello che va, perché va Non si migliora mai il team Il blocco del cambiamento giustifica le cattive abitudini Le buone idee diventano pericolose www.wpc2019.it 21 Errore n. 5 Il cambiamento mai doloroso è, solo la resistenza al cambiamento lo è.
  • 22. Nessuna formazione www.wpc2019.it 22 Errore n. 6 {In effetti…} {Ragazzi, ci serve un piano di formazione per migliorarci} {Mi hai fatto fare solo report per mesi, Sheldon!} Non c’è il budget, prima servono più persone. Siamo lenti.
  • 23. Principali conseguenze: Niente “lavagne”, tanto le cancelliamo! (fate foto ) La formazione è un costo, si perde l’occasione di crescita Le persone perdono stimoli se non hanno tempo di imparare www.wpc2019.it 23 Errore n. 6 Una strategia DevOps efficace, sul miglioramento continuo dovrebbe basarsi
  • 24. Il team è poco in sintonia, iniziano le personalizzazioni estreme www.wpc2019.it 24 Errore n. 7 {Che confusione, non so più che devo fare!} :-$ problemi da dev {Bah, creo la mia soluzione, che è vincente} {Mio dio, non ci sono regole, tutto custom!} :-$ io ho la mia cartella di script per ogni realtà :-$ docker update
  • 25. Principali conseguenze: Si creano toolset ad personam Si creano N linee di sviluppo Codebase non comune Ognuno vive col “suo” lavoro Source Control, questo sconosciuto www.wpc2019.it 25 Errore n. 7 Per avere successo con DevOps, standard di sviluppo, gestione e infrastruttura servonoS
  • 26. Si crea lo spazio per chi ama governare www.wpc2019.it 26 Errore n. 8 {Ci penso io!} :-$ decidiamo noi cosa fare
  • 27. Principali conseguenze: Decisione dittatoriale, non dal team Creazione di figure di comando (non ufficializzate) Ogni processo è modificabile se il “comandante” lo decide Figure indispensabili per la sopravvivenza www.wpc2019.it 27 Errore n. 8 Per il miglioramento continuo, condivisione e consapevolezza necessarie sono
  • 28. Si aprono le possibilità di fare il non previsto www.wpc2019.it 28 Errore n. 9 {certo, il mio team lo farà il prima possibile} :-$ io non ho tempo di rilasciare Mi serve questo report “da 5 minuti”, subito! {Ehm, abbiamo altro da terminare!}
  • 29. Principali conseguenze: Annullare le priorità decise prima Fare cose che non servono, che non danno valore Diseducare tutta la filiera www.wpc2019.it 29 Errore n. 9 La corretta gestione delle priorità, l’unica strada è
  • 30. Si pensa agli strumenti, non alle persone e al rilascio www.wpc2019.it 30 Errore n. 10 Installiamo GestisciTutto™ e Attracco™, così finalmente potremmo dire di essere veramente DevOps.
  • 31. Principali conseguenze: Abbandonare la strada della migrazione culturale Non valorizzare le persone Non responsabilizzare le persone Non crescere www.wpc2019.it 31 Errore n. 10 Gli individui e le interazioni più che i processi e gli strumenti
  • 32. Non si pensa al rilascio, per cui fix in produzione! www.wpc2019.it 32 Errore n. 11 È tutto fermo! Ç@#*#@*@[#!! {Mi connetto in produzione e sistemo, non ho altro modo}
  • 33. Principali conseguenze: “Drift” di produzione rispetto alle linee di sviluppo Rischio di sovrascrivere modifiche da tenere Non ho alcun controllo delle modifiche Non ho visibilità delle versioni di ogni installazione Salto sempre la parte di test/preprod/ecc. Il rilascio, come idea compatta, non esiste proprio www.wpc2019.it 33 Errore n. 11 Una pipeline solida e di cui ci si può dimenticare serve
  • 34. Reinventare la ruota www.wpc2019.it 34 Errore n. 12 {Ho scritto un framework di generazione dei comandi SQL in sole 3 settimane!} {Ah beh, un ORM? Hai perso tempo.} {Entity Framework? NHibernate?}
  • 35. Principali conseguenze: Atteggiamento di diffidenza sugli altri framework “Proprietà” del codice, intoccabile da altri Manutenzione continua e debug Evoluzione continua col resto dei framework Tipicamente non Open Source www.wpc2019.it 35 Errore n. 12 Per il valore aggiunto, consapevolezza di strumenti e selezione del software necessari sono
  • 36. Anarchia e isolamento www.wpc2019.it 36 Errore n. 13 {Come la chiamo questo metodo, facciamo DoSomething()} :-$ tanto faccio sempre quello che mi pare {ma no! si usa doSomething()} {io ho scritto Do(Something some)} :-$ il “mio” metodo è il migliore :-$ forse è meglio condividere?
  • 37. Principali conseguenze: Senza Coding Style il codice è illeggibile Senza Coding Rules il codice è meno standard Senza Naming Conventions e non si parla la stessa lingua Senza condivisione del glossario si perde tempo in analisi Incentivo al lavoro in solitudine (Silo ad personam) www.wpc2019.it 37 Errore n. 13 Disciplina e regole condivise per un successo di team servono
  • 39. www.wpc2019.it 39 Il consiglio No! Provare no! Fare, o non fare! Non c’è provare!
  • 43. Contatti OverNet Education  Info@OverNetEducation.it  www.OverNetEducation.it  Rozzano (MI) +39 02 365738  Bologna +39 051 269911  www.wpc-overneteducation.it  #wpc19it www.wpc2019.it 43