
quindi il mio nome è Dave follia questo discorso è
sulla logica per continuo
consegna voglio parlare un po ‘
sui motivi per cui perché continua cosa
quale consegna continua è e
ragioni per cui funziona e perché ne abbiamo bisogno
quindi è la mia tesi che se si guarda
la storia dello sviluppo del software
l’industria non è molto buona, non l’abbiamo
ha fatto un ottimo lavoro e che se
guardi l’analisi del software
progetti nel corso degli anni di tutti diversi
tipi che generalmente dicono abbastanza
triste storia della nostra abilità come software
sviluppatori per soddisfare l’ organizzazione
in cui lavoriamo questo ultimo in
è una specie di modo macabro
divertente in questo in un grande studio di
grandi progetti il 17% del progetto va
così male che minacciano il
esistenza dell’azienda che li esegue
e quella è stata la storia del nostro
industria per molti decenni e tu
può prendere quella roba con
una specie di pizzico di sale lo sai
questo tipo di questo tipo di sondaggi
sai non sempre terribilmente
scientifico che abbiamo ascoltato l’altro ieri
su alcuni sondaggi che sai che puoi
fare più dettagliato più approfondito
analisi statistica ma molti di questi
le cose sono solo delle persone che firmano
e dando risposte e auto
autodescrivendo i loro progetti e quello
tipo di roba seduta ti attacca con a
Un pizzico di sale, ma anche così penso che
quello che sta dicendo è che lo stato di
l’ industria dello sviluppo software ha
stato meno che ottimale per dirla gentilmente
ma penso che questo tipo di segni di
spero che non sia perfetto non lo è
non è l’ideale, ma per ora penso
forse per la prima volta penso che abbiamo
so davvero cosa funziona e questo è un grande
affare che penso che abbiamo qualcosa
che generalmente funziona e stiamo iniziando
per ottenere i dati che esegue il backup e
suggerisce che abbiamo ragione quindi cosa hanno
abbiamo provato oltre il
anni quali-cosa-quali approcci abbiamo noi
guardato che abbiamo guardato l’altro
industrie e abbiamo esaminato quelli e
tipo di tentativo di imparare da quelli e
raccolto diverse tecniche che abbiamo
guardato l’acqua per le tecniche di stile e
Modelli V e organizzazioni chiuse e
approcci leggermente più iterativi con
un sacco di scartoffie intorno a loro che abbiamo
guardò la mischia programmazione estrema
assumendo persone davvero intelligenti e mettendo
io in un angolo assumendo giovani persone intelligenti
e metterli nell’angolo perché
sono più economici e assumono giovani intelligenti
persone in paesi stranieri perché
sono anche più economici e c’è una specie di
parti di quelle cose come quel tipo di
abbiamo imparato e ci è stato utile
e ci sono parti che non hanno questo
è questo è un lato fondamentale in Irlanda ero
parlando ad una conferenza in Irlanda a
pochi mesi fa e ho davvero incontrato un uomo
di chi cugino è in questa immagine e
quello che è successo qui è che puoi vedere
c’è una macchina che cade dal limite
la chiave quindi cosa fai quando la macchina
sta cadendo dal bordo del kit te
prenderò una gru quindi cosa fare
adesso stai aspettando che tu ne abbia una più grande
gru e sì, l’auto è fuori ora che hai
per far uscire il camion ma Albert Einstein
ha detto che la definizione di follia è
facendo la stessa cosa più e più volte
e in attesa di risultati diversi
quindi se il nostro sviluppo del software
processo non è stato ottimale
dovrei provare qualcosa di diverso dovremmo
provare qualcosa di diverso e capire
quello che funziona davvero, quindi cominciamo
fin dall’inizio cos’è che noi
davvero voglio davvero quello che è tutto questo
organizzazione che ci impiega davvero
vuole quello che vogliono veramente è quello che loro
voglio avere un’idea che vogliono ottenere
quell’idea sotto forma di alta qualità
lavoro prezioso software nelle mani
degli utenti e vogliono capire
cosa fanno quegli utenti di quell’idea e io
non pensare che ci sia qualcuno
può
anche il software che non lo vuole
questo è fondamentale per quello che facciamo
quindi farò una domanda, qual è il
invenzione di maggior successo nell’uomo
storia
e qui ci sono alcuni dei miei suggerimenti
ruota è una buona cosa qualsiasi altra cosa
qualsiasi altro suggerimento birra, sì, non lo ero
abbastanza sicuro di quello che doveva essere la birra
o belle ragazze ma penso belle ragazze
non sono davvero inventato, vorrei discutere o
sosteniamo che abbiamo senza troppa paura
di contraddizione la sua scienza e di ciò
Non intendo il Large Hadron Collider
e navette spaziali e stazioni spaziali
e medicina quelli sono i risultati di
la scienza che intendo è l’idea semplice
del metodo scientifico l’idea di in
infatti ecco una definizione di diff con a
ipotesi
guardando guardando un problema che si sta formando
un’ipotesi per spiegarlo capendo
un modo di testare quest’ipotesi
portare a termine il test e vederti
sapere valutare i risultati vedendo cosa
che ne facciamo e poi l’iterazione
ripetere che ci ha commosso in modo umano
L’umanità è nell’ordine delle due
centomila anni come specie
e la scienza negli ultimi due o tre
da cento anni la scienza ci ha spostati da
cos’è essenzialmente una società agricola
nella moderna società high-tech che
siamo tutti vivendo oggi ed è che essi
come diretta conseguenza di questo tipo di
pensando nell’era dell’illuminazione e
razionalizza il pensiero razionale e tutto
quel genere di cose
questo è ciò che ci ha spinto in modo esponenziale a
il livello di comprensione che abbiamo
del nostro mondo e dell’universo e nostro
capacità di creare tutti questi incredibili
cose su cui ora ci basiamo, quindi cosa
funziona così che funziona davvero quando pensiamo
riportandolo al software
processo di sviluppo quindi se vogliamo
voglio essere un po ‘di più
scientifico su questo diamo un’occhiata ad alcuni
più dati e ancora e prendilo con a
pizzico di sale sono questi sono un po ‘
selezionare le persone che stanno segnalando
queste cose
ma questo è questo dal Kaos
Manifesto che è pubblicato dalla
Gruppo standish ed è stato per molti
molti anni e questo è dal 2012
sondaggio che è, ma sono ancora belli
coerente con ciò che i dati che vengono
su e nel complesso cos’è questo
indagine ha detto che nel corso degli anni e anni è
quella cascata tende ad avere parecchio
di sfida sfida progetti e
agile tende a fare meglio ma non lo è
perfetto siamo ancora meno della metà di
i progetti hanno successo con quello nel
termini delle persone che praticano e
pagando per loro alcune persone dicono che è
troppo deprimente e troppo pessimista
e una delle persone che lo dice
lui ha Ambler e questa è la sua data di
è nella mia organizzazione dei suoi dati e
L’ho organizzato con una sorta di iterativo
approcci nella parte superiore e altro ancora
cascata tradizionale stile ish
approcci in fondo alla cosa
questo mi ha fatto divertire molto
quando ho visto per la prima volta questo era quello, se tu
fai il tuo processo di sviluppo di
sul posto è leggermente più efficace
che se usi una cascata tradizionale
elaborazione che mi ha divertito quando prima
visto che così i processi iterativi
stanno chiaramente meglio e se noi
credo che il metodo scientifico sia un
cosa importante che ripete parte di esso
quella parte del ciclo di feedback spiega
perché quella potrebbe essere la roba magra sembra
fare particolarmente bene qui così
di cosa si tratta?
quindi il Lean Thinking riguarda la consegna
le cose velocemente vogliamo minimizzare il
quantità di lavoro che abbiamo in corso
e vogliamo che tu voglia consegnare
le cose più in fretta possiamo vogliamo
costruire l’alta qualità fino in fondo
e avere la qualità come obiettivo chiave
il lavoro che stiamo facendo vogliamo
ottimizzare l’intero processo non solo
guardando pezzi di esso e solo e
solo facendo un po ‘di bene, vogliamo
guarda l’intera cosa olisticamente
e capire come fare il tutto
la cosa funziona meglio e noi vogliamo
eliminare gli sprechi e ci sono diversi
tipi di rifiuti così facendo troppo lavoro
è una forma di spreco e ti rallenterà
giù e c’è c’è davvero difficile
la matematica dietro a questo utente roba
teoria delle code spiega perché se noi se
stiamo facendo troppo lavoro che non possiamo affrontare
se cambiamo compito troppo
la teoria delle code avrebbe semplicemente ucciso la teoria
da solo può spiegare un bel po ‘di là
si vuole amplificare l’apprendimento vogliamo
ottimizzare i nostri team per imparare piuttosto che
per illuminato di consegnare perché in questo modo la
la squadra diventa sempre più efficiente e così
come un secondo o diretto viene offre di più
e più cose e vogliamo fare
decisioni in ritardo perché se partiamo
processo decisionale fino a tardo processo
avremo le migliori informazioni
per prendere le decisioni della più alta qualità se
prendiamo decisioni all’inizio del processo
poi quando ci sono più congetture
coinvolto e probabilmente più rattoppato
più tardi quando si è dimostrata l’ipotesi
sbagliato e vogliamo potenziare la squadra
voglio essere sicuro che il team sia in grado
per vedere il problema capire come
risolvere il problema eseguire la soluzione
e vedere che cosa funziona o no
qualsiasi altra cosa sta mettendo troppo
impedenza nel modo e e allungamento
la nostra capacità di vedere ciò che è veramente
succedendo quindi questo è un po ‘mio
quadro di ciò che sta realmente accadendo e
tipo di finanziamento a cui tendo a pensare
sviluppo del software come una serie di
loop di feedback ad incastro e penso
è una specie di modello utile se si guarda
in ogni pezzo di lavoro che guardi
per i loop di feedback come farò a saperlo
che quale sarà il risultato di questo
come valuterò se fosse un?
buona cosa o una cosa cattiva
come valuterò se questo cambiamento
nel mio processo era buono
come valuterò questo questo cambiamento
nel codice che sto facendo è buono
e là che ci sono più feedback
loop coinvolti nello sviluppo del software
di quanto sto mostrando qui questo è un semplice
immagine ma questa è un’immagine importante
quindi all’esterno c’è questa idea
Ho parlato prima del fondamentale
idea di avere qualche idea nel tuo
organizzazione che non ottiene nulla per il
mani dei tuoi utenti e capire
se è una buona idea o una cattiva idea
e poi dentro c’è una specie di questo
anello di feedback stretto del classico TDD
ciclo Vado a scrivere un test che sono
andando a vederlo fallire, scriverò
un po ‘di codice per vederlo passare vederlo passare sono
andando a impegnarsi non ho intenzione di muoversi
su questo è uno dei miei che puoi
probabilmente dire dal mio tono
presentazione che sono un po ‘popolare
il nerd della scienza è che è qualcosa che sono
interessato e questo ragazzo è uno dei miei
addominali
gli eroi sanno chi è questo
richard fineman right richard fineman
per quelli di voi che non si sono imbattuti
Sig. Feynman Richard Feynman era un
genio genuino della prima classe che era
una delle menti più belle che le scienze umane
prodotto e una delle migliori menti
dei vigili del fuoco del 20 ° secolo
un fisico premio Nobel e venne
con una teoria dei quanti
elettrodinamica che è il più
strumento predittivo preciso che umano
gli esseri hanno mai inventato è di più
accurato della relatività generale pure
come questo è questo genio assoluto che è
molto divertente ma anche ma anche a
tipo di filosofia filosofo sul
soggetto di scienza e, se mai
stai cercando citazioni per
presentazioni Fineman è davvero bravo
fonte e questo è uno dei miei preferiti
cita che quindi non importa come
sei intelligente se indovini e
questa ipotesi non può essere supportata da
prova sperimentale quindi è ancora un
Credo che il mio argomento è se è se
la scienza e il metodo scientifico è il nostro
la più forte tecnica di risoluzione dei problemi e
lo sviluppo del software è uno dei
i problemi più difficili che gli esseri umani
intraprendere non dovremmo applicare il nostro
la migliore tecnica di problem-solving per alcuni
dei nostri problemi più difficili penso che il
modo in cui lavoriamo quando stiamo scrivendo
software dovremmo prendere di più
approccio scientifico più empirico a
il lavoro che facciamo dovremmo essere
pensando coscientemente ad ogni volta che
fare un cambiamento e come valuto il
se questo cambiamento è buono o cattivo
qualunque cosa significhi che sia a
tendenza nel vostro processore cambiare il vostro
codifica un cambiamento nel tuo business
direzione che stai imparando come a
risultato delle interazioni dei tuoi utenti
tutte queste cose tutte queste cose noi
dovrebbe essere più empirico e figurante
il modo di fare questo lavoro roba e uno
degli strumenti che ci permette di farlo
è l’idea del tempo ciclo e sto andando
per mostrarti ora due tempi di ciclo da
i progetti su cui ho lavorato sono stati questo
era tanto tempo fa era su un progetto
quando lavoravo per un’azienda chiamata
il pensiero funziona e io questo era per uno di
le grandi banche qui nel Regno Unito e c’è
l’idea del tempo del ciclo è se ti immagini
il più piccolo cambiamento che puoi fare
il tuo sistema di produzione è a una linea
cambiato il codice o qualcosa del genere
e poi vuoi valutarlo
cambia come faresti per qualsiasi altro cambiamento
a tutta la dovuta diligenza che tu
dovrebbe fare per valutare che è un bene
cambiare prima di rilasciarlo in produzione
quanto tempo ci vorrebbe così è
efficacemente qual è il tuo ciclo di cambiamento
prendendo in considerazione la quantità di
sforzo necessario per realizzare effettivamente il
cambiare se stesso e questo in questa banca loro
non è possibile distribuire una modifica su una riga a
i loro sistemi in meno di 103 giorni se
hai un ciclo di tempo di 103 giorni
non ho un ciclo di feedback, se ce l’hai
un tempo di calcio di 103 giorni e vieni
fino a me e Dave mi hai rotto
produzione con il tuo cambiamento 103 giorni fa
Dirò che non ero qui a centinaia e
tre giorni fa non ricordo nulla
su questo è un tempo di ciclo da
un altro progetto e tecnicamente in termini
di scopo e ambizione e l’importo
di software questo era molto di più
progetto complicato molto di più
di questo questo era un questo era un
progetto a cui ho lavorato in una start-up
dove stavamo costruendo una bassa latenza
trading ad alta frequenza finanziario
scambio da zero con tutti i
interazioni di terze parti questo era un
intero sistema aziendale questo questo
in basso sul tempo di ciclo per questo
il progetto era di 57 minuti che potevamo fare
cambia ogni modifica alla nostra produzione
sistemi e valutarlo e lo farebbe
essere pronti se passasse tutti coloro
valutazioni sarebbe pronto per
rilascio in produzione dopo 57 minuti
se hai una presa su 57 minuti
e tu vieni da me 57 minuti dopo e
Dave hai rovinato e hai rotto
produzione, saprò cosa sei
parlando di me ricorderò cosa
Stavo facendo 57 minuti fa e lo farò
ricorda cosa fosse ed ed io sono
avrò la possibilità di entrambi
eseguendo il backup molto rapidamente o fissando
il problema che ho introdotto più di
che se ho un tempo di ciclo di 50 se
Sono liberato se sto generando rilasciabile
software ogni 57 minuti la quantità di
roba che sta succedendo che è rilasciabile in
quel candidato alla release sarà
piccolo sarà una piccola partita
il che significa che il rischio che sono
incorrere con ciascuno di questi cambiamenti è
piccola e quindi è facile pensare a
è facile ragionare su quello che sta succedendo
con quei cambiamenti è facile da tracciare
indietro ciò che cambia causa quali problemi
è facile distribuire queste cose perché
sono intelligenti molti piccoli cambiamenti molto
spesso ed è facile da gestire
l’intero flusso di informazioni associate
con tutti questi cambiamenti perché è
tutto in questi piccoli pacchetti così questo è
l’idea di una consegna continua rispetto a
non descritto, davvero, qui il tempo del ciclo è
tipo di questo meraviglioso strumento penso di essere io
pensa uno dei grandi punti di forza di
la consegna continua è un po ‘come
sviluppo guidato dai test di cui sono un grande fan
sviluppo basato su test e uno dei
ragioni per cui sono un grande fan di
lo sviluppo basato sui test è questo che se tu
seguire le regole del test guidato
sviluppo si applica una pressione a
progettare un software software migliore che sia
è più adatto ai test automatici
modulare più sciolto è meglio
separazione delle preoccupazioni bassa coesione tutto
di queste cose che sono state
classificati come i segni distintivi della qualità
software per decenni e test-driven
lo sviluppo applica una pressione che
non esisteva prima nella direzione di
generando quelli così l’unico modo
la pressione esisteva prima dell’avere
designer davvero intelligenti che si preoccupano
Abbastanza su quelle cose, Tessenderlo
rende questo design di impeto in più buono
Software
Penso che le consegne continue facciano al
stessa cosa per processo se si guarda a
ottimizzare il tempo di ciclo per il tempo di ciclo e
usi un approccio sperimentale
ti spinge nella direzione di meglio
processo incrementale e step-by-step it
ti farà fare cose migliori di cui parlerò
di più su questo in un momento
quindi ecco alcuni altri bene quindi cosa c’è
consegna continua davvero su così
prima di tutto c’è come ha detto Dan nella sua
keynote scusa nella sua presentazione sul
il primo giorno nessuno legge mai il secondo
pagina del manifesto agile ma se tu
questo è il principio e il primo
il principio del manifesto agile è questo
le nostre più alte priorità per soddisfare il
cliente attraverso precoce e continuo
consegna di software prezioso così è
il primo principio dell’agile
manifesto questo era tipo di cosa c’era dentro
il
delle menti delle persone che erano
pensare l’idea di manifesto e
l’hanno scritto è un po ‘come un
estensione logica di continuo
integrazione se vuoi esibirti
integrazione continua è un grande
cosa ma consegna continua solo gentile
di estendere che la portata di quello
fuori un po ‘di più così non solo possiamo
costruire qualcosa su base continua
ed eseguire alcuni test, ma possiamo distribuire noi
può arrivare al punto in cui è in a
stato rilasciabile e quel tipo di
si estende un po ‘più lontano
a monte attraverso i requisiti
processo e un po ‘oltre
a valle nel rilascio e
processi operativi lo penso come a
questo è l’ approccio olistico allo sviluppo
non solo per i meccanismi i
i bit e i byte del continuo
ciclo di integrazione si tratta di
tutto il processo e stiamo cercando
questo come un modo olistico come ho detto quando noi
stavo pensando a provare il Lean Thinking
e ottimizzare l’intero processo un bene
il tipo di modello mentale per questo è se
ogni volta che commetti un cambiamento
quello è destinato alla produzione immagina
quello che sta dando alla luce un rilascio
candidato e il suo lavoro da allora è a
dimostrare che il candidato alla release non lo è
adatto per renderlo in produzione
questa è un’idea strana, ma questa è la
questa è l’idea di falsificabilità che possiamo
mai avere abbastanza prove per dimostrarlo
il nostro software è buono ma non appena uno
il test fallisce, sappiamo che il nostro software è
male e non dovremmo rilasciarlo e
finito significa rilasciato in produzione
questa lista è un po ‘pizzicata da
il mio libro consegna continua e in realtà
questa è una delle cose che se fossi
Riscrivere il libro ora vorrei cambiare
questo finito non significa liberato in
la produzione che non è non va bene
abbastanza mezzi finiti liberati in
produzione e fornire valore al
gli utenti quindi ecco alcuni dei principi
di consegna continua che stiamo cercando di
creare un processo affidabile ripetibile per
rilasciando software se vuoi che sia
ripetibile e affidabile quel tipo di
ci elimina non siamo molto bravi a
essere computer ripetibili o affidabili
sono meravigliosi di essere ripetibili e
affidabile non siamo fantastici negli altri
cose ma siamo grandi alla creatività e
conosci lo schema sfocato morbido
e tutti quei tipi di cose, ma noi siamo
non buono a ripetibile e affidabile e
quindi se stai usando esseri umani per
convalidare che il tuo software è buono su a
base ripetuta sarà
è costoso, sarà lento
sarà un errore
a rischio di errori se possiamo automatizzare tutto
che avremo molto di più
processo efficace ed efficiente che lo farà
essere ripetibile e pop affidabile così noi
se vogliamo che sia ripetibile a
affidabile abbiamo bisogno di automatizzare quasi
tutto se vogliamo automatizzare quasi
tutto ciò che dobbiamo mantenere quasi
tutto sotto controllo di versione perché
se noi se facciamo cose che abbiamo
essere in grado di far diventare le cose un noto
buono stato e questo significa che dobbiamo farlo
può avere la gestione della configurazione no
riguardo al controllo della fonte, ma pensate a
la configurazione dei nostri sistemi e il
ambienti in cui operano e
le dipendenze che hanno su
l’infrastruttura o il software del codice
tipo di strana maggior parte dell’esperienza umana
se qualcosa è brutto e doloroso è
probabilmente è ragionevole evitare di farlo ma
nel software
se qualcosa è brutto e doloroso e tu
cerca di allontanarti da ciò che in generale
succede è che peggiora così se il tuo se
il tuo rilascio è sgradevole e difficile
e irto di rischi e tu sei
rilasciando una volta ogni sei mesi il
la cosa peggiore che puoi fare è dire oh è
veramente male iniziamo a rilasciare una volta
ogni 12 mesi invece lo farà
essere ancora peggio quindi se stai rilasciando
ogni sei mesi e questo è doloroso il
la cosa giusta da fare è iniziare a rilasciare
ogni tre mesi poi ogni due mesi
e ogni mese in ogni settimana quindi
ogni ora se puoi se arrivi al
stadio di poter rilasciare sai
su richiesta è uno stato rilasciabile su
richiesta
allora starai bene
storia intorno alla maggior parte di questa roba e
stai andando a carissimo un sacco di
è una specie di argomento difficile
perché come industria abbiamo ottenuto
abituato a lavorare in ambienti in cui noi
usato la qualità come mezzo di compromesso
la qualità come mezzo per accelerare la consegna
e penso che sia assolutamente
idea terribile e non ho dati per
provalo ma
ma la mia esperienza è stata enorme
Grado che se ti concentri sulla qualità di te
diventa più veloce non più lento l’ultimo posto
dove il posto che uso spesso in
esempi nelle mie presentazioni sono un posto
chiamato real max dove abbiamo costruito a
sistema di consegna continua dal da
un foglio di carta bianco da terra
stavamo costruendo alte prestazioni
software e noi stavamo affrontando
alcune sfide che non eravamo a conoscenza
che qualcuno ha risolto prima di noi
fare un lavoro interessante di infortunio e
eravamo assolutamente diligenti in una specie di
non solo andando per sempre, stavamo andando
per eccellenza in tutto ciò che eravamo
facendo noi vorremmo andare l’extra
miglio per essere sicuri che il nostro codice fosse
elegante e pulito e questo è il massimo
sviluppo del software produttivo
ambiente che ho mai lavorato in noi
potrei fare qualsiasi cambiamento, voglio dire che potremmo
potrebbe farlo e valutarlo e
capire le conseguenze di questo
cambia molto velocemente perché il codice era
pulirlo era facile ragione su di esso era
elegante è stato facile lavorare con esso
è stato testato come descriverò molto molto
molto diffusamente abbiamo parlato di alcuni di
gli altri in modo da non NON mezzi nella
mani degli utenti che offrono valore
tutti sono responsabili per il rilascio
elaborare così i processi e gli strumenti e
i meccanismi devono essere trasparenti e
facile, dobbiamo essere in grado di crunchare
informazioni giù nel lavoro di consumo
unità se stai producendo in maniera massiccia
grafico complicato della tua performance
statistiche che non sono abbastanza buone come
dicendo un blocco di lettura o una scatola verde
dicendo se ha superato la sua esibizione
criteri o non semplici è buono e tu
voglio che tu voglia i dettagli in più tu
vuoi i dati extra che vuoi essere in grado di
tuffati e trova di più ma è necessario
rendere questo materiale di consumo per tutti
interessato al processo di rilascio è
non solo quei nerd tecnici è tutto
ognuno il CEO sta per essere
interessato al prezioso software
se stiamo rilasciando questa cosa
quindi assicurandoci che ci stiamo concentrando
sul valore delle cose che siamo veramente
consegnando non i passaggi intermedi
quello che attraversiamo è una specie di
importante e sorta di considerare che
e preoccupante dal punto di vista reale
dal punto di vista dei nostri utenti
questo è ciò che è ciò che siamo
cercando di fornire così come presentiamo
il progresso delle idee attraverso il nostro
sistemi che sai se un utente è entrato
avrebbero capito come quelle idee
stanno attraversando e questo non è un
processo in cui hai detto okay, lo faremo
abbiamo un processo di due anni e siamo
intenzione di fare continuo
consegna e poi dopo ci fermeremo
lo faremo solo allora non è così
funziona davvero così che quello che è è un
la cultura cambia di cosa si tratta è a
è un cambiamento significativo nel
modo in cui lavori, lo spero
il modo in cui li sto presentando
idee e spiegherò di più su uno
è che sto parlando in un minuto è
ragionevolmente semplice e diretto
in realtà in questo caso lo fa
maledettamente duro è difficile ci vuole un
orribile sacco di diverse parti mobili da
una tecnologia di organizzazione o di processo
la prospettiva di progettazione del software tutto
queste cose se vuoi diventare bravo
questa roba di cui tutte queste cose hanno bisogno
si uniscono e partecipano
essere bravi in questa roba
e ciò richiede impegno e abilità e
un nuovo modo di pensare ad alcuni di
queste cose e quindi dobbiamo essere
stabilendo modi di lavorare che permettono
noi per migliorare continuamente dobbiamo essere
sperimentale nel modo in cui lavoriamo
i modi in cui adottiamo il processo nel
modo in cui le squadre vengono formate e organizzate
così come sperimentale nel modo
in cui scrivi solo software questo è
solo pura hybris da parte mia questo è un
citazione da Forrester qualche tempo fa
dire se lo sviluppo del software è agile
l’ atto di apertura per una grande prestazione
la consegna continua è l’headliner
con noi stiamo iniziando a ottenere trazione noi
iniziato a ottenere dati reali è parte di esso
una delle presentazioni precedenti nel
conferenza ha dimostrato che stiamo diventando reali
dati per mostrare che questa è una linea di fondo
vantaggi per le organizzazioni che sono
eseguendo questo è questo non è solo uno dei
i piccoli cambiamenti che avvengono attraverso
la vita la vita del software
industria credo che questo sia un
passo cambiamento finalmente sappiamo come farlo
quindi come ti sembra quando sei
lavorando in questo tipo di ambienti
bene tende ad essere un po ‘ confuso lì
tende ad essere un sacco di informazioni che volano
intorno ad esso tendono ad essere ambienti rumorosi
perché tendono ad essere molto
collaborativo
luoghi in cui lavoriamo e discutiamo
idee e tendono ad essere molto appiccicose
le note di solito sono nella mia esperienza noi
avere radiatori di informazione che ci mostrano
lo stato del nostro avrei pensato
che il progresso professionale del software
attraverso i nostri sistemi abbiamo dati che
stiamo lavorando e stiamo lavorando io
incluso questo principalmente solo perché mi piace
il cartone animato ma abbiamo modificato il nostro aspetto
automatizzare tutte le cose se vogliamo a
lavoro due volte stiamo ora pensando bene ora
forse dovremmo automatizzare questo così voglio
per guidarti attraverso una sorta di tipico
processo per una consegna continua e a
un buon modello mentale per questo è se tu
immagina il nostro software diluire le mani a parte
dove il consumatore vende software
gli sviluppatori hanno ragione, quindi il software
gli sviluppatori il nostro compito è risolvere i problemi
progettando sai implementare
software quindi pensa al tuo software
processo di sviluppo c’è un problema a
essere risolto che costruiamo un po ‘di software
quello risolve quel problema così che cosa siamo
cercando di fare ciò che vogliamo fare è
abbiamo alcuni sviluppatori qui che lavorano
su un cambiamento e stanno andando a commettere
la modifica al repository di origine e
che sta per dare il via ad una valutazione
di quel cambiamento per vedere se è buono
o no, quindi gestiremo ciò che
chiama lo stadio di commit contro quello
cambia e valuta quel cambiamento finora
questa è l’integrazione continua che c’è
nessuna distinzione tra questo e
integrazione continua di ciò che vogliamo
questa fase di commit è che vogliamo molto velocemente
feedback vogliamo che gli sviluppatori siano
avere come indicazione precoce che sono
che loro hanno fregato qualcosa
su come possiamo dare loro e il più veloce
indica che l’indicazione che ottieni è la
piccola linea ondulata rossa il tuo IDE
sotto il codice cattivo il secondo più veloce
è che si ottiene un test in mancanza così
faremo questi test così vogliamo
questi test sono leggeri e vogliamo
per essere vicini al processo che non facciamo
voglio che tocchino la scrivania o
andando al database o parlando al
rete vogliamo che siano in corso
chiudere così possiamo correre decine di migliaia di
questi test e ottenere risultati in sotto
cinque minuti idealmente è gentile
di un ballpark dove siamo
mirando a questo è dove iniziamo a divergere
un po ‘dalla continua integrazione
quello che vogliamo anche è che come risultato a
risultato di a
build di commit di successo che vogliamo memorizzare
le uscite binarie che vogliamo memorizzare
artefatti schierabili che finiranno dentro
produzione se questo rilascio di bacio
candidato rende fino in fondo
la ragione per cui vogliamo farlo è
Ho lavorato in molti posti dove tu
vorresti compilare il codice
stai lavorando a un particolare
obiettivo di distribuzione perché vorresti metterlo
in una configurazione con il compilato
roba e tu li avvolgerei insieme
e il rovescio della medaglia è forse quello
la prossima volta che costruisco se lo costruisco
più avanti e verrò a sapere un
compilarlo appena prima di rilasciarlo
produzione forse sto usando un diverso
versione del compilatore forse lo farà
collegami diverse librerie che ho
ha sofferto degli errori che ha ottenuto
introdotto attraverso il fare che utilizzando
la versione sbagliata quindi cosa voglio fare
voglio essere dannatamente sicuro che il
roba che ho provato qui è roba del genere
la stessa roba
questo finirà in produzione
questo candidato dovrebbe farlo
attraverso il processo così vado a
conservare gli artefatti rilasciabili se
quelli sono vasi o rpm o giovani moduli
o ho dimenticato quale rete li ha causati
assemblee qualunque esse siano, noi siamo
li conserverò qui ora penso da
i miei commenti precedenti probabilmente prendi il
impressione Sono un grande fan del test-driven
sviluppo e hai ragione e penso
lo sviluppo basato sui test è un grande passo
avanti nello sviluppo del software
ma il rovescio della medaglia è che cosa
fa è dimostra che il software fa
cosa pensa lo sviluppatore del software
dovrebbe fare e questa è una cosa diversa
per affermare che cosa fa il software cosa
tu gli utenti lo vogliono fare è a
cosa diversa quindi abbiamo bisogno di test da a
prospettiva diversa in aggiunta al
Il test TDD sarebbe stato di vitale importanza per
dacci quella verifica che il
il software fa quello che noi come sviluppatori
cosa abbiamo bisogno anche di una verifica
farà quello che siamo veramente
puntando a ciò che volevamo veramente fare
quindi eseguiamo un sacco di test di accettazione per
per valutare che il test di accettazione noi
voglio che i test di accettazione siano
correre in produzione come ambienti
vogliamo che sia abbastanza vicino a
produzione per catturare i tipi comuni di
errori che potremmo perdere altrimenti
in modo che i confini del processo che
sono importanti nella topologia di
l’applicazione delle versioni del
sistema operativo l’infrastruttura che
è in esecuzione nella versione vaniglia di
il database del server web tutto quel tipo di
roba quelle cose che vogliamo tutte quelle
le cose devono essere esattamente le stesse di loro
sarà in produzione e configurato in
esattamente allo stesso modo quando li eseguiamo
prova se passano tutti i test o se loro
non stiamo andando a raccogliere i risultati
e li conserveremo contro il
rilasciare candidato quindi abbiamo il
storia di quello che è successo
prima su esseri umani non essere
ripetibile o affidabile, quindi qual è il
ruolo del test manuale penso che se
usi gli esseri umani per qualsiasi forma di
test di regressione è un anti-modello
Penso che sia un abuso di
gli esseri umani è un lavoro putrefatto
e non è che è costoso
qualità inefficiente e non molto alto in modo
usare i computer per quello che sono gli esseri umani
assolutamente meraviglioso altri tipi di
le cose umane sono più grandi
esplorare e chiedendo circa ed essere
creativamente distruttivo e facendo il
pazzo , sai se io lo sono davvero
semplice per me come sviluppatore di software
scrivi un pulsante su una pagina blu
con testo blu su di esso in modo che non puoi
leggi cosa dice il testo e il software
se ne andrà felicemente e cliccherà
pulsante perché hai costruito nel
presupposto che questo è il tasto che
stai facendo clic e non sta leggendo
l’etichetta che gli uomini individueranno
tipo di errore immediatamente più sottilmente
e ancora più importante sono gli esseri umani
andando a ottenere il senso di se
l’uso di questo che è questo software
utilizzabile se il viaggio che ci vuole
ti porta attraverso è ragionevole e e
e dà un quadro mentale coerente
in modo che consente di lavorare con la
software in modo che tu voglia usare gli esseri umani
per quel tipo di cose e così tu
coinvolgendoli dove li hai
un sacco di cose che tutto il resto automatizza
come ho detto questo questo questo era una sorta di
basato su alcune prestazioni molto elevate
software quindi le prestazioni sono state fondamentali
componente del nostro sistema quindi ci siamo divisi
test delle prestazioni in due fasi noi
farebbe prestazioni a livello di componenti
test per
attributi che erano componenti del nostro
sistema che sapevamo essere prestazioni
critico quindi il sistema di messaggistica
sistema di journaling l’ abbinamento
motore fuori per il nostro scambio quelli
tipi di cose e noi vorremmo costruirle
in un modo quindi abbiamo una soglia di
performance in modo che sapessimo che tu
sai che potresti farne così tanti
milioni di messaggi al secondo nel
motore corrispondente e se fosse caduto sotto
che sapevo di aver fatto qualcosa di stupido
e l’ho rallentato, ma di nuovo quello
non ti dà il tutto
immagina quella cosa che ti cattura
sono le cose che non pensi
circa e così rovinando l’ intero sistema
la performance era così di nuovo avremmo avuto un
rappresentazione realistica del nostro
sistema di produzione che abbiamo avuto esattamente
lo stesso hardware configurato in
esattamente allo stesso modo per il
bit ad alte prestazioni e lo faremmo allora
eseguire scenari molto realistici così dentro
fatto quello che abbiamo fatto è che abbiamo registrato un
giorno di traffico e poi noi
ripetuto che in una versione 5 5 X di a
traffico diurno attraverso il sistema e
capito che sai dov’è
prosciugato o allungato o altro
e di nuovo abbiamo avuto delle soglie
qui come prestazioni dal throughput
di mestieri e quel genere di cose che noi
usato come punto di riferimento per se otteniamo un
risultato superato / non superato da questi test
si può si può immaginare la nostra liberazione
candidato in movimento attraverso il processo e
gradualmente stavamo aumentando il nostro
fiducia nella qualità di questo
rilasciare candidato e tu sai se in qualsiasi
mettere in scena un test fallisce uccidiamo quella release
candidato è fatto lo buttiamo fuori
non lo fa mai in produzione, se presente
il test fallisce ma se tutti i test falliscono
allora tutto quello che abbiamo è un livello più alto di
fiducia ma tu sai che è meglio
di quello che avevamo prima dell’ultima tappa
questo lo sapevi che per te è tutto fantastico
il tipo di codice che scrivi nel
configurazione dei tuoi sistemi e di tutti
quel genere di cose, ma per quanto riguarda il
dati e per quanto riguarda i dati che sei
costruendo in produzione, così abbiamo lavorato
nei modi in cui vorremmo migrare
i nostri dati dispiace che sarebbe se volessimo
cambiare la struttura dei nostri dati in qualsiasi
via qualsiasi dato statico faremmo così
una serie di delta e applicheremmo
quelli come patch e il nostro tipo
strumenti di implementazione automatica farebbero il
migrazione dei dati per
come parte della distribuzione e così noi
assemblerebbe gli archi del telaio destro di
le patch li applicano in ordine e quindi eseguono
un po ‘una serie di test di valutazione
se il software sembrava ancora
sano e lo faremmo come parte di
il test di migrazione dei dati alla fine noi
arrivare al punto in cui eravamo pronti
rilascio in produzione e a questo
punta così così questa questa è una macchina
questa è una macchina che è sforna
rilasciare candidati o o escludere
rilasciare candidati e ai punti di
che siamo pronti a rilasciare cosa
ora abbiamo ottenuto abbiamo una grande lista di
rilasciare candidati che sappiamo avere
passato tutti questi test così lontano
possiamo sapere che i candidati per il rilascio sono
buono e pronto per andare in produzione e
quindi possiamo scegliere uno di questi così e
generalmente prendiamo semplicemente quello più nuovo
e premere il pulsante e rilasciarlo in
produzione quelli di noi che nel
spazio di consegna continua fare a
distinzione tra consegna continua
e distribuzione continua continua
la distribuzione è un sottoinsieme di continuo
consegna in consegna continua sai
devi fare la consegna continua a
arrivare alla distribuzione di consegna continua
la distribuzione continua è il processo di
rilasciando automaticamente in produzione
qualsiasi cambiamento che ha superato tutti i suoi
prova in modo da poter fare solo il possibile
puoi immaginare di arrivare a questo punto
niente un essere umano qui ma solo il
robot che sta solo dicendo che è impossibile
è un test ancora da implementare e molti altri
le organizzazioni lo fanno ma è un de
la consegna continua di decisione aziendale è
il processo di lavorare in modo tale
il tuo software è sempre sbloccabile
stato ed è una decisione commerciale per
decidere se è una buona idea
rilascia quello in produzione o no nel nostro
caso eravamo eravamo una finanziaria
scambiare file a bassa latenza a livello finanziario
scambio non c’era modo che potessimo
automatizzare il rilascio nella produzione
senza imporre un cambiamento di latenza a
su una delle nostre caratteristiche una delle persone
che facevano trading nel nostro sistema così noi
conferirebbe un vantaggio ingiusto
su alcune persone contro un’altra se noi
dovevano essere rilasciati mentre le persone lo erano
trading in modo che possiamo farlo, ma così abbiamo solo
rilasciato periodicamente alla fine
alla fine di ogni settimana dobbiamo solo premere
il pulsante che rilascia alla produzione in
il mercato
sono chiusi una delle cose che ti voglio
pensare a questa proteina questo
l’intero processo è chiamato distribuzione
pipeline e questa è una specie di a
idea fondamentale nella consegna continua
questo è ascoltare sai davvero cosa
è su questo è il canale per il cambiamento
alla produzione e automatizziamo il
canale dal cambiamento alla produzione e noi
veterinario, non vogliamo buttare via nessuno
rilasciare candidati che non sono idonei
questo è il suo lavoro ok ora pensa un po ‘
un po ‘in particolare gli sviluppatori di software
nel pubblico penso un po ‘
su quello che serve per costruirlo
canale non puoi costruire quel canale
con aver senza aver completato
tracciabilità quindi se lavori in a
ambiente regolamentato che è stato il mio
sfondo per questo per un po ‘questo è
in quanto questo è un po ‘come un
sognare per i regolatori perché questo dà
loro un’immagine completa di ciò che è successo
si collega questa parte sapendo che si collega il
la parte iniziale in te è un ingegnere o
qualcosa del genere che richiede
sistema di gestione e hai pieno
tracciabilità da zuppa a noce di ogni
angolo a pensarci su chi ci ha lavorato
quali test sono stati eseguiti contro chi ha fatto
la decisione che lo convalidano
sappi che nel test manuale che esso
era che andava bene
chi ha premuto il pulsante per rilasciarlo
in produzione sai che tempi tutti
di quelle cose accadono tutte quelle cose
è controllato e tu hai mai completato l’audit
tutto ciò che serve è mettere qualcosa a
bella piccola utility in cima per farlo
sembra carino da dare agli auditor miei
l’esperienza è la mia esperienza di
trattare con i regolatori nella finanza
industria qui e negli stati con il
i sistemi che funzionano in questo modo sono quelli a
prima sono estremamente diffidenti perché
è al di là della loro esperienza e poi
loro lo amano assolutamente lo mangiano
pensano che sia quello che sono stati
cercando tutto il tempo, così via
un po ‘ convincente ma questo è
meglio di quello che stava succedendo da
industrie fortemente regolamentate, quindi perché io
parliamo molto di questa roba e una di queste
i respingimenti che ottengo lui è okay questo
questo può funzionare per piccoli progetti ma è così
non può assolutamente scalare in modo mio esempio che
Cito per contestare che è Google
quindi Google ha preso la decisione insolita
prendendo la decisione insolita di decidere
che tutto il loro software vive in uno
grande repository ogni volta come un Google
sviluppatore questa è la stragrande maggioranza di
le cose penso che non sia completamente vero
su tutto ma quasi tutto
è in un grande repo e ogni volta che tu
fai un commit che attiva la build
per tutto e fa scattare tutto il
il test funziona per tutto e quindi ottieni
a non conosci una bella immagine coerente
se tutto funziona insieme
corrono sei miss che questo non è aggiornato
questi dati eseguono 60 milioni di build a
anno 100 milioni di righe di codice 20
impegna un minuto è 100 milioni di test
caso esperto eseguito al giorno quindi se il tuo
il problema è più grande di quello che è
possibile che questo non scala ma io
Penso che per lo più penso che ciò che dice sia
che puoi farti avere loro
investito enormemente in alcuni molto intelligenti
roba da fare parallel build e paralleli
test eseguito per rendere questo efficiente e
questo è il risultato
di prendere questo tipo di decisione e
c’è un altro modo di farlo in modo tale
è questo è questo è questo è l’altro
pushback che vedo spesso anche questo
rilasci rischioso tutto il tempo è a
ricetta per il disastro potrebbero essere rilasci
davvero spaventoso ho rilasciato ogni sei mesi
e hanno detto l’incubo
quindi il mio argomento è Amazon
costruire Pres nessuno ha usato Amazon di recente
la settimana scorsa quale versione di Amazon ha fatto
usi non sai che non ti interessa
questo perché Amazon ha il tempo medio
tra schieramenti di 11,6 secondi e
l’ospite medio che rilascia simultaneamente a
distribuzione così una volta ogni 11,6 secondi
c’è un cambiamento in media dieci
migliaia di server da quando hanno iniziato
facendo questo hanno visto un drammatico
riduzione delle interruzioni e un lettore a
drastica riduzione del tempo trascorso
risolvere le interruzioni e avere il numero di
schieramenti in cui hanno avuto un problema
è sceso drasticamente fino all’ultimo
respingi quell’ultimo respingimento che sono
andare a parlare di ciò spesso vede bene
abbastanza giusto
Amazon può fare questo Facebook non ha fatto
questa scuola può farlo, ma lo sono
sono solo siti web che è facile
giusto, la mia tecnologia è troppo dura
fare
fallo e per questo cito HP
firmware team quindi il team del firmware HP
erano in uno stato piuttosto terribile pochi anni
fa hanno ottenuto una posizione che era così
male che i loro affari si erano fermati
chiedendo loro di cambiare il business
non chiedevamo loro alcun cambiamento
perché non li hanno mai comunque
hanno appena rinunciato se si guarda
quello che hanno fatto il crollo del lavoro
quello che hanno fatto in quel momento è questo
tipo di interessante questa roba così loro
ha speso il 25% del proprio impegno nel porting del codice
e il motivo che lo hanno fatto era
che questo è così, questo è il
firmware che viene eseguito in ogni HP
Dispositivo LaserJet e cosa hanno fatto
quel tempo in quello prima del 2008 era quello
ognuno di questi dispositivi praticamente
aveva una propria filiale quindi avevano un singolo
base di codice ma ognuna di queste cose
era su un ramo separato e poi tu
aggiunto una funzione a quel ramo e tu
voglio fare questa stampante qui così tu
vai a migrare a questi hanno speso il 25%
del loro sforzo di sviluppo globale
porting code tra le filiali che hanno speso
25% sul supporto del prodotto che probabilmente
significa che sono rivestiti era merda e loro
speso meno del 5% su ciò che hanno chiamato
innovazione che io e te chiameremmo
funzionalità di consegna questo non era reale
innovazione, questo stava solo facendo qualcosa
nuovo così hanno cambiato quello e quello
degli aspetti interessanti di questo da
la mia prospettiva è che non avevano letto
nessuna della letteratura agile che non avevano
non hanno letto il mio libro su
consegna continua quando hanno fatto questo
hanno appena finito e hanno detto
torniamo ai primi principi, facciamolo
pensa a cosa vorremmo fare
e hanno appena iniziato a seguirlo
attraverso e hanno co-evoluto cosa
sembra una consegna continua uguale
processo sono venuti allo stesso
conclusioni attraverso questo
esperto di un cavo di ingegneria sperimentale
pensando che questo tipo di ha preso giù
questa direzione sono finiti in un molto
stato di base dello stato molto più sano di loro
trascorrere un sacco di tempo in continuo
integrazione che scrive test automatizzati
ci sono due cose per i test automatici
Non sono del tutto sicuro del perché ci sia, um
pianificazione agile di tutti quei tipi di
cose come se fossero un po ‘scambiate
del lavoro che stavano facendo qui
per altre cose, ma la linea di fondo è
che hanno finito per liberare il
possibilità di spendere il 40 percento dei loro
sforzo di sviluppo globale per fare di nuovo
la qualità è passata attraverso il tetto
sul loro sul loro sul loro software e
e questo è un po ‘ dettagliato in davvero
ottimo libro che consiglio a voi
chiamato approccio pratico a larga scala
sviluppo agile che descrive il genere
dal punto di vista del processo questo
non è un libro tecnico, questo è molto
più su come mappare come gestisci
cambiamento della cultura a catena nelle organizzazioni
e lui è davvero interessante da quello
prospettiva e l’esito è stato nel complesso
i costi di sviluppo erano programmi ridotti
in fase di sviluppo è aumentato e come
abbiamo descritto la quantità di sforzo spesa
la costruzione di nuove cose è stata aumentata
drammaticamente di cosa sto parlando qui
è che la consegna continua cambia il
economia dello sviluppo del software e
sempre più come abbiamo visto dal
presentazione precedente nella
conferenza che alcuni di questi dati sono
da lì i vantaggi di fondo
agli altri delle organizzazioni che
lo stanno impiegando e questo è il primo
il tempo che abbiamo visto questo nel software
l’industria lo facciamo noi software
gli sviluppi stanno facendo la differenza
siamo in grado di seguire un razionale
processo empirico del software
sviluppo non facendo supposizioni di
espirando facendo formazione
ipotesi vale la pena capire come
testare quelle ipotesi e lavorare in
in questo modo
lavorando in modo iterativo siamo in grado di fare un
drammatica differenza delle imprese
che operiamo nei dati
i dati crescono sempre e
sono una grande storia
Credo che sarete influenzati da
consegna continua se voi se
lo impieghi o no se stai impiegando
ti divertirai di più, hai ragione
software di qualità superiore più veloce
in modo efficiente e stai facendo
vantaggi di fondo per le imprese
che si opera in
se non lo usi, i tuoi concorrenti
lo farò e ti prenderanno a calci in culo
quindi ecco alcune delle organizzazioni e
questo è solo un esempio ci sono molti
organizzazioni e alcuni di loro sono gentili
di quelli che ti aspetteresti e
alcuni di loro sono una specie di probabilmente un
un po ‘ più inaspettato di Google Amazon
Facebook Etsy che fanno alti livelli di
Sperimentazione in produzione abbiamo un
infrastruttura classificata facendo test a / b
e tutto quel genere di cose per Flickr
Netflix ci bruciamo, ma noi
ascoltato ieri per un penc parlando
ing x ‘esperienza che hanno visto drammatico
miglioramenti nella loro capacità
consegnare come risultato l’ AP mi ha sorpreso
ci sono ragazzi fuori a parlare
circuito e circuito di scrittura a parlare
circa il grande vantaggio nella qualità di
questo dopo e la produttività dei loro
squadre che impiegano queste cose, oh mio mentale
il modello è si questo tipo di definizione
di sistemi legacy ma New York Stock
Scambi New York Times ci sono molti
di organizzazioni e la lista sta crescendo
tutto il tempo che le persone stanno prendendo
avviso perché questo funziona questo è un altro
modo efficace di fornire software e
siamo che ho finito, per favore ricordati di
votare nella domanda se ce ne sono
domande felici di prenderli se vuoi
per metterli avrei dovuto dirlo a
l’inizio della presentazione ma se tu
voglio metterli attraverso l’ app che è
bene anche noi abbiamo pochi minuti per
domande sì sì cool così il primo
la domanda è costruire quel tipo di build
la pipeline di prova è dura almeno in
Jenkins come si consiglia di farlo
okay, non sono così bravo che usiamo, usiamo noi
iniziato utilizzando il cruise control che
noi che è anche peggio di Jenkins o
era lì e poi ci siamo trasferiti a Jenkins
che confesso non è il mio preferito
pezzo di software non mi piaci molto
molto ma fa il lavoro che ho usato
teamcity pure per costruire condutture nessuno
di loro in realtà nessuno di loro ha davvero successo
a mio parere ancora condutture di distribuzione
il modello in loro è rot è
questo non importa molto
anche se in realtà non è quello
difficile da risolvere penso sia fattibile
quindi puoi usare Jenkins che puoi
usa il cruise control puoi usare il vapore
città è possibile costruire la propria cosa è
non così complicato o requisito ciascuno
passo ogni piccolo pezzo è relativamente
semplice e quindi puoi tipo
scrivi piccoli pezzi di codice che incollano
le cose insieme e tu puoi gentilmente
coppia le cose insieme e potresti essere
un po ‘brutto qui dentro ma ma
è assolutamente fattibile e puoi costruire
condutture di costruzione abbastanza sofisticate in
In questo modo penso che ci siano più cose
venendo penso che penso che le persone
stanno pagando per questo ci sono un sacco
e ci sono molte persone che conosco
che stanno lavorando su strumenti in questo spazio
Amazon ha una pipeline di codice che loro chiamano
in AWS che stanno cercando di trasferirmi
sii Emma parlando di costruirne alcuni
condutture di distribuzione nel loro bluemix
roba ci sono tutti quei tipi di persone
stanno guardando questa roba ma penso come
eppure gli strumenti sono immaturi e
in realtà sono le idee e per me
le idee sono drammaticamente di più
importante degli strumenti gli strumenti
non sono così difficili da costruire da soli a
risolvere voi stessi se siete impegnati a
le idee
Sì
c’è un sacco di dettagli nei dettagli
abbastanza III hanno un altro discorso su tranne
l’ eccezione di assistere è come penso il
TDD e test di unità tipo di lavorato
abbastanza bene riguardo a ciò che penso
test di accettazione probabilmente un po ‘meno
così e così sai che faccio qualcosa
Sto parlando degli aspetti tecnici di
là e ci sono quali sono i modi in
che scrivi i tuoi test hanno
implicazioni per i modi in cui
aumenteranno i modi in cui voi
può chiamare assicurato il merito e tutto
quel genere di cose quindi c’è questo
livello ma sai quando stai parlando
sulle grandi organizzazioni con molti
progetti allora tu arrivi al tipo di
div la radice di Amazon o la radice di Google
se vai per un grande repository e
gestendo tutto insieme che ha
alcuni vantaggi sai che non è un
cosa stupida da fare significa che il tuo
la gestione delle dipendenze è solo uno a
una relazione tutto il tempo che
è che è bello
quella delle cose che sta venendo fuori
di Amazon Amazon sono andati dall’altra parte
Amazon ha i suoi due picchi di squadre
e micro servizio ogni servizio è gentile
di costruito sai costruito da un piccolo di a
piccola squadra e gestito da una piccola squadra oggi
la difficoltà che c’è è è di cosa si tratta
che dire delle interazioni che attraversano il
confini dei servizi e poi hai
hai capito come gestire i protocolli
di scambio di informazioni tra il
servizi e questo genere di cose che
diventa una che è il trade-off
quindi il compromesso per il monolite
approccio è che devi investire in
infrastrutture e cose intelligenti da essere
in grado di eseguire questa roba in parallelo a
ottenere un ragionevole tempo di ciclo per il trade-off
dell’approccio del micro servizio è questo
devi preoccuparti della dipendenza
gestione e nessuno dei due nemmeno conosce
di quelle facilità è sbagliato o giusto è
solo quelli di quelli sono i punti dolenti
a seconda di quale percorso che si va
giù ed entrambi erano
praticabile ma entrambi hanno
complessità nel riuscire a farli
lavoro so che non risponde al tuo
domanda ma io non penso che sia un
domanda che posso solo rispondere in questo
periodo di tempo mi dispiace se vuoi parlare
in seguito in più dati sono felice di fare
la prossima domanda puoi passare al continuo
consegna senza una chiamata per cambiare a
coreani cross-funzionali alti
la collaborazione ne ordina uno
solo lavoro con l’ altro io non lo faccio
penso di essere così da poter ottenere benefici
Faccio solo un passo indietro, Mike mio
l’esperienza è stata che non puoi
davvero fare questa transizione dall’essere un
organizzazione regolare ad essere a
consegna continua un’organizzazione in
molto meno di due anni sta andando
piuttosto bene se riesci ad avvicinarti
essere decente in questo dopo due anni
ma ad ogni passo lungo la strada c’è
valore incrementale quindi se non stai usando
versione controllo l’introduzione di
il controllo della versione è Lopes un rivelatore se
non stai usando l’integrazione continua
questo è che è un enorme passo se
non stai usando TDD che è enorme
miglioramento quindi ci sono tutti questi
cose che il valore aggiunto non lo sei
diventerà davvero di classe mondiale a questo
roba se non hai il tipo di
imparando squadre collaborative incrociate che
abbiamo parlato tutti di questo
conferenza si può ottenere meglio di te
sei puoi essere tu puoi ottenere valore da
facendo queste cose ma non stai andando
per diventare di classe mondiale
la classe mondiale richiede la sperimentazione
ambiente di apprendimento e quello reale
richiede la stretta collaborazione di
squadre a mio avviso una qualsiasi delle domande
finisce per non devi metterlo attraverso
l’app se si desidera, nel qual caso
grazie davvero per il tuo tempo
sulla logica per continuo
consegna voglio parlare un po ‘
sui motivi per cui perché continua cosa
quale consegna continua è e
ragioni per cui funziona e perché ne abbiamo bisogno
quindi è la mia tesi che se si guarda
la storia dello sviluppo del software
l’industria non è molto buona, non l’abbiamo
ha fatto un ottimo lavoro e che se
guardi l’analisi del software
progetti nel corso degli anni di tutti diversi
tipi che generalmente dicono abbastanza
triste storia della nostra abilità come software
sviluppatori per soddisfare l’ organizzazione
in cui lavoriamo questo ultimo in
è una specie di modo macabro
divertente in questo in un grande studio di
grandi progetti il 17% del progetto va
così male che minacciano il
esistenza dell’azienda che li esegue
e quella è stata la storia del nostro
industria per molti decenni e tu
può prendere quella roba con
una specie di pizzico di sale lo sai
questo tipo di questo tipo di sondaggi
sai non sempre terribilmente
scientifico che abbiamo ascoltato l’altro ieri
su alcuni sondaggi che sai che puoi
fare più dettagliato più approfondito
analisi statistica ma molti di questi
le cose sono solo delle persone che firmano
e dando risposte e auto
autodescrivendo i loro progetti e quello
tipo di roba seduta ti attacca con a
Un pizzico di sale, ma anche così penso che
quello che sta dicendo è che lo stato di
l’ industria dello sviluppo software ha
stato meno che ottimale per dirla gentilmente
ma penso che questo tipo di segni di
spero che non sia perfetto non lo è
non è l’ideale, ma per ora penso
forse per la prima volta penso che abbiamo
so davvero cosa funziona e questo è un grande
affare che penso che abbiamo qualcosa
che generalmente funziona e stiamo iniziando
per ottenere i dati che esegue il backup e
suggerisce che abbiamo ragione quindi cosa hanno
abbiamo provato oltre il
anni quali-cosa-quali approcci abbiamo noi
guardato che abbiamo guardato l’altro
industrie e abbiamo esaminato quelli e
tipo di tentativo di imparare da quelli e
raccolto diverse tecniche che abbiamo
guardato l’acqua per le tecniche di stile e
Modelli V e organizzazioni chiuse e
approcci leggermente più iterativi con
un sacco di scartoffie intorno a loro che abbiamo
guardò la mischia programmazione estrema
assumendo persone davvero intelligenti e mettendo
io in un angolo assumendo giovani persone intelligenti
e metterli nell’angolo perché
sono più economici e assumono giovani intelligenti
persone in paesi stranieri perché
sono anche più economici e c’è una specie di
parti di quelle cose come quel tipo di
abbiamo imparato e ci è stato utile
e ci sono parti che non hanno questo
è questo è un lato fondamentale in Irlanda ero
parlando ad una conferenza in Irlanda a
pochi mesi fa e ho davvero incontrato un uomo
di chi cugino è in questa immagine e
quello che è successo qui è che puoi vedere
c’è una macchina che cade dal limite
la chiave quindi cosa fai quando la macchina
sta cadendo dal bordo del kit te
prenderò una gru quindi cosa fare
adesso stai aspettando che tu ne abbia una più grande
gru e sì, l’auto è fuori ora che hai
per far uscire il camion ma Albert Einstein
ha detto che la definizione di follia è
facendo la stessa cosa più e più volte
e in attesa di risultati diversi
quindi se il nostro sviluppo del software
processo non è stato ottimale
dovrei provare qualcosa di diverso dovremmo
provare qualcosa di diverso e capire
quello che funziona davvero, quindi cominciamo
fin dall’inizio cos’è che noi
davvero voglio davvero quello che è tutto questo
organizzazione che ci impiega davvero
vuole quello che vogliono veramente è quello che loro
voglio avere un’idea che vogliono ottenere
quell’idea sotto forma di alta qualità
lavoro prezioso software nelle mani
degli utenti e vogliono capire
cosa fanno quegli utenti di quell’idea e io
non pensare che ci sia qualcuno
può
anche il software che non lo vuole
questo è fondamentale per quello che facciamo
quindi farò una domanda, qual è il
invenzione di maggior successo nell’uomo
storia
e qui ci sono alcuni dei miei suggerimenti
ruota è una buona cosa qualsiasi altra cosa
qualsiasi altro suggerimento birra, sì, non lo ero
abbastanza sicuro di quello che doveva essere la birra
o belle ragazze ma penso belle ragazze
non sono davvero inventato, vorrei discutere o
sosteniamo che abbiamo senza troppa paura
di contraddizione la sua scienza e di ciò
Non intendo il Large Hadron Collider
e navette spaziali e stazioni spaziali
e medicina quelli sono i risultati di
la scienza che intendo è l’idea semplice
del metodo scientifico l’idea di in
infatti ecco una definizione di diff con a
ipotesi
guardando guardando un problema che si sta formando
un’ipotesi per spiegarlo capendo
un modo di testare quest’ipotesi
portare a termine il test e vederti
sapere valutare i risultati vedendo cosa
che ne facciamo e poi l’iterazione
ripetere che ci ha commosso in modo umano
L’umanità è nell’ordine delle due
centomila anni come specie
e la scienza negli ultimi due o tre
da cento anni la scienza ci ha spostati da
cos’è essenzialmente una società agricola
nella moderna società high-tech che
siamo tutti vivendo oggi ed è che essi
come diretta conseguenza di questo tipo di
pensando nell’era dell’illuminazione e
razionalizza il pensiero razionale e tutto
quel genere di cose
questo è ciò che ci ha spinto in modo esponenziale a
il livello di comprensione che abbiamo
del nostro mondo e dell’universo e nostro
capacità di creare tutti questi incredibili
cose su cui ora ci basiamo, quindi cosa
funziona così che funziona davvero quando pensiamo
riportandolo al software
processo di sviluppo quindi se vogliamo
voglio essere un po ‘di più
scientifico su questo diamo un’occhiata ad alcuni
più dati e ancora e prendilo con a
pizzico di sale sono questi sono un po ‘
selezionare le persone che stanno segnalando
queste cose
ma questo è questo dal Kaos
Manifesto che è pubblicato dalla
Gruppo standish ed è stato per molti
molti anni e questo è dal 2012
sondaggio che è, ma sono ancora belli
coerente con ciò che i dati che vengono
su e nel complesso cos’è questo
indagine ha detto che nel corso degli anni e anni è
quella cascata tende ad avere parecchio
di sfida sfida progetti e
agile tende a fare meglio ma non lo è
perfetto siamo ancora meno della metà di
i progetti hanno successo con quello nel
termini delle persone che praticano e
pagando per loro alcune persone dicono che è
troppo deprimente e troppo pessimista
e una delle persone che lo dice
lui ha Ambler e questa è la sua data di
è nella mia organizzazione dei suoi dati e
L’ho organizzato con una sorta di iterativo
approcci nella parte superiore e altro ancora
cascata tradizionale stile ish
approcci in fondo alla cosa
questo mi ha fatto divertire molto
quando ho visto per la prima volta questo era quello, se tu
fai il tuo processo di sviluppo di
sul posto è leggermente più efficace
che se usi una cascata tradizionale
elaborazione che mi ha divertito quando prima
visto che così i processi iterativi
stanno chiaramente meglio e se noi
credo che il metodo scientifico sia un
cosa importante che ripete parte di esso
quella parte del ciclo di feedback spiega
perché quella potrebbe essere la roba magra sembra
fare particolarmente bene qui così
di cosa si tratta?
quindi il Lean Thinking riguarda la consegna
le cose velocemente vogliamo minimizzare il
quantità di lavoro che abbiamo in corso
e vogliamo che tu voglia consegnare
le cose più in fretta possiamo vogliamo
costruire l’alta qualità fino in fondo
e avere la qualità come obiettivo chiave
il lavoro che stiamo facendo vogliamo
ottimizzare l’intero processo non solo
guardando pezzi di esso e solo e
solo facendo un po ‘di bene, vogliamo
guarda l’intera cosa olisticamente
e capire come fare il tutto
la cosa funziona meglio e noi vogliamo
eliminare gli sprechi e ci sono diversi
tipi di rifiuti così facendo troppo lavoro
è una forma di spreco e ti rallenterà
giù e c’è c’è davvero difficile
la matematica dietro a questo utente roba
teoria delle code spiega perché se noi se
stiamo facendo troppo lavoro che non possiamo affrontare
se cambiamo compito troppo
la teoria delle code avrebbe semplicemente ucciso la teoria
da solo può spiegare un bel po ‘di là
si vuole amplificare l’apprendimento vogliamo
ottimizzare i nostri team per imparare piuttosto che
per illuminato di consegnare perché in questo modo la
la squadra diventa sempre più efficiente e così
come un secondo o diretto viene offre di più
e più cose e vogliamo fare
decisioni in ritardo perché se partiamo
processo decisionale fino a tardo processo
avremo le migliori informazioni
per prendere le decisioni della più alta qualità se
prendiamo decisioni all’inizio del processo
poi quando ci sono più congetture
coinvolto e probabilmente più rattoppato
più tardi quando si è dimostrata l’ipotesi
sbagliato e vogliamo potenziare la squadra
voglio essere sicuro che il team sia in grado
per vedere il problema capire come
risolvere il problema eseguire la soluzione
e vedere che cosa funziona o no
qualsiasi altra cosa sta mettendo troppo
impedenza nel modo e e allungamento
la nostra capacità di vedere ciò che è veramente
succedendo quindi questo è un po ‘mio
quadro di ciò che sta realmente accadendo e
tipo di finanziamento a cui tendo a pensare
sviluppo del software come una serie di
loop di feedback ad incastro e penso
è una specie di modello utile se si guarda
in ogni pezzo di lavoro che guardi
per i loop di feedback come farò a saperlo
che quale sarà il risultato di questo
come valuterò se fosse un?
buona cosa o una cosa cattiva
come valuterò se questo cambiamento
nel mio processo era buono
come valuterò questo questo cambiamento
nel codice che sto facendo è buono
e là che ci sono più feedback
loop coinvolti nello sviluppo del software
di quanto sto mostrando qui questo è un semplice
immagine ma questa è un’immagine importante
quindi all’esterno c’è questa idea
Ho parlato prima del fondamentale
idea di avere qualche idea nel tuo
organizzazione che non ottiene nulla per il
mani dei tuoi utenti e capire
se è una buona idea o una cattiva idea
e poi dentro c’è una specie di questo
anello di feedback stretto del classico TDD
ciclo Vado a scrivere un test che sono
andando a vederlo fallire, scriverò
un po ‘di codice per vederlo passare vederlo passare sono
andando a impegnarsi non ho intenzione di muoversi
su questo è uno dei miei che puoi
probabilmente dire dal mio tono
presentazione che sono un po ‘popolare
il nerd della scienza è che è qualcosa che sono
interessato e questo ragazzo è uno dei miei
addominali
gli eroi sanno chi è questo
richard fineman right richard fineman
per quelli di voi che non si sono imbattuti
Sig. Feynman Richard Feynman era un
genio genuino della prima classe che era
una delle menti più belle che le scienze umane
prodotto e una delle migliori menti
dei vigili del fuoco del 20 ° secolo
un fisico premio Nobel e venne
con una teoria dei quanti
elettrodinamica che è il più
strumento predittivo preciso che umano
gli esseri hanno mai inventato è di più
accurato della relatività generale pure
come questo è questo genio assoluto che è
molto divertente ma anche ma anche a
tipo di filosofia filosofo sul
soggetto di scienza e, se mai
stai cercando citazioni per
presentazioni Fineman è davvero bravo
fonte e questo è uno dei miei preferiti
cita che quindi non importa come
sei intelligente se indovini e
questa ipotesi non può essere supportata da
prova sperimentale quindi è ancora un
Credo che il mio argomento è se è se
la scienza e il metodo scientifico è il nostro
la più forte tecnica di risoluzione dei problemi e
lo sviluppo del software è uno dei
i problemi più difficili che gli esseri umani
intraprendere non dovremmo applicare il nostro
la migliore tecnica di problem-solving per alcuni
dei nostri problemi più difficili penso che il
modo in cui lavoriamo quando stiamo scrivendo
software dovremmo prendere di più
approccio scientifico più empirico a
il lavoro che facciamo dovremmo essere
pensando coscientemente ad ogni volta che
fare un cambiamento e come valuto il
se questo cambiamento è buono o cattivo
qualunque cosa significhi che sia a
tendenza nel vostro processore cambiare il vostro
codifica un cambiamento nel tuo business
direzione che stai imparando come a
risultato delle interazioni dei tuoi utenti
tutte queste cose tutte queste cose noi
dovrebbe essere più empirico e figurante
il modo di fare questo lavoro roba e uno
degli strumenti che ci permette di farlo
è l’idea del tempo ciclo e sto andando
per mostrarti ora due tempi di ciclo da
i progetti su cui ho lavorato sono stati questo
era tanto tempo fa era su un progetto
quando lavoravo per un’azienda chiamata
il pensiero funziona e io questo era per uno di
le grandi banche qui nel Regno Unito e c’è
l’idea del tempo del ciclo è se ti immagini
il più piccolo cambiamento che puoi fare
il tuo sistema di produzione è a una linea
cambiato il codice o qualcosa del genere
e poi vuoi valutarlo
cambia come faresti per qualsiasi altro cambiamento
a tutta la dovuta diligenza che tu
dovrebbe fare per valutare che è un bene
cambiare prima di rilasciarlo in produzione
quanto tempo ci vorrebbe così è
efficacemente qual è il tuo ciclo di cambiamento
prendendo in considerazione la quantità di
sforzo necessario per realizzare effettivamente il
cambiare se stesso e questo in questa banca loro
non è possibile distribuire una modifica su una riga a
i loro sistemi in meno di 103 giorni se
hai un ciclo di tempo di 103 giorni
non ho un ciclo di feedback, se ce l’hai
un tempo di calcio di 103 giorni e vieni
fino a me e Dave mi hai rotto
produzione con il tuo cambiamento 103 giorni fa
Dirò che non ero qui a centinaia e
tre giorni fa non ricordo nulla
su questo è un tempo di ciclo da
un altro progetto e tecnicamente in termini
di scopo e ambizione e l’importo
di software questo era molto di più
progetto complicato molto di più
di questo questo era un questo era un
progetto a cui ho lavorato in una start-up
dove stavamo costruendo una bassa latenza
trading ad alta frequenza finanziario
scambio da zero con tutti i
interazioni di terze parti questo era un
intero sistema aziendale questo questo
in basso sul tempo di ciclo per questo
il progetto era di 57 minuti che potevamo fare
cambia ogni modifica alla nostra produzione
sistemi e valutarlo e lo farebbe
essere pronti se passasse tutti coloro
valutazioni sarebbe pronto per
rilascio in produzione dopo 57 minuti
se hai una presa su 57 minuti
e tu vieni da me 57 minuti dopo e
Dave hai rovinato e hai rotto
produzione, saprò cosa sei
parlando di me ricorderò cosa
Stavo facendo 57 minuti fa e lo farò
ricorda cosa fosse ed ed io sono
avrò la possibilità di entrambi
eseguendo il backup molto rapidamente o fissando
il problema che ho introdotto più di
che se ho un tempo di ciclo di 50 se
Sono liberato se sto generando rilasciabile
software ogni 57 minuti la quantità di
roba che sta succedendo che è rilasciabile in
quel candidato alla release sarà
piccolo sarà una piccola partita
il che significa che il rischio che sono
incorrere con ciascuno di questi cambiamenti è
piccola e quindi è facile pensare a
è facile ragionare su quello che sta succedendo
con quei cambiamenti è facile da tracciare
indietro ciò che cambia causa quali problemi
è facile distribuire queste cose perché
sono intelligenti molti piccoli cambiamenti molto
spesso ed è facile da gestire
l’intero flusso di informazioni associate
con tutti questi cambiamenti perché è
tutto in questi piccoli pacchetti così questo è
l’idea di una consegna continua rispetto a
non descritto, davvero, qui il tempo del ciclo è
tipo di questo meraviglioso strumento penso di essere io
pensa uno dei grandi punti di forza di
la consegna continua è un po ‘come
sviluppo guidato dai test di cui sono un grande fan
sviluppo basato su test e uno dei
ragioni per cui sono un grande fan di
lo sviluppo basato sui test è questo che se tu
seguire le regole del test guidato
sviluppo si applica una pressione a
progettare un software software migliore che sia
è più adatto ai test automatici
modulare più sciolto è meglio
separazione delle preoccupazioni bassa coesione tutto
di queste cose che sono state
classificati come i segni distintivi della qualità
software per decenni e test-driven
lo sviluppo applica una pressione che
non esisteva prima nella direzione di
generando quelli così l’unico modo
la pressione esisteva prima dell’avere
designer davvero intelligenti che si preoccupano
Abbastanza su quelle cose, Tessenderlo
rende questo design di impeto in più buono
Software
Penso che le consegne continue facciano al
stessa cosa per processo se si guarda a
ottimizzare il tempo di ciclo per il tempo di ciclo e
usi un approccio sperimentale
ti spinge nella direzione di meglio
processo incrementale e step-by-step it
ti farà fare cose migliori di cui parlerò
di più su questo in un momento
quindi ecco alcuni altri bene quindi cosa c’è
consegna continua davvero su così
prima di tutto c’è come ha detto Dan nella sua
keynote scusa nella sua presentazione sul
il primo giorno nessuno legge mai il secondo
pagina del manifesto agile ma se tu
questo è il principio e il primo
il principio del manifesto agile è questo
le nostre più alte priorità per soddisfare il
cliente attraverso precoce e continuo
consegna di software prezioso così è
il primo principio dell’agile
manifesto questo era tipo di cosa c’era dentro
il
delle menti delle persone che erano
pensare l’idea di manifesto e
l’hanno scritto è un po ‘come un
estensione logica di continuo
integrazione se vuoi esibirti
integrazione continua è un grande
cosa ma consegna continua solo gentile
di estendere che la portata di quello
fuori un po ‘di più così non solo possiamo
costruire qualcosa su base continua
ed eseguire alcuni test, ma possiamo distribuire noi
può arrivare al punto in cui è in a
stato rilasciabile e quel tipo di
si estende un po ‘più lontano
a monte attraverso i requisiti
processo e un po ‘oltre
a valle nel rilascio e
processi operativi lo penso come a
questo è l’ approccio olistico allo sviluppo
non solo per i meccanismi i
i bit e i byte del continuo
ciclo di integrazione si tratta di
tutto il processo e stiamo cercando
questo come un modo olistico come ho detto quando noi
stavo pensando a provare il Lean Thinking
e ottimizzare l’intero processo un bene
il tipo di modello mentale per questo è se
ogni volta che commetti un cambiamento
quello è destinato alla produzione immagina
quello che sta dando alla luce un rilascio
candidato e il suo lavoro da allora è a
dimostrare che il candidato alla release non lo è
adatto per renderlo in produzione
questa è un’idea strana, ma questa è la
questa è l’idea di falsificabilità che possiamo
mai avere abbastanza prove per dimostrarlo
il nostro software è buono ma non appena uno
il test fallisce, sappiamo che il nostro software è
male e non dovremmo rilasciarlo e
finito significa rilasciato in produzione
questa lista è un po ‘pizzicata da
il mio libro consegna continua e in realtà
questa è una delle cose che se fossi
Riscrivere il libro ora vorrei cambiare
questo finito non significa liberato in
la produzione che non è non va bene
abbastanza mezzi finiti liberati in
produzione e fornire valore al
gli utenti quindi ecco alcuni dei principi
di consegna continua che stiamo cercando di
creare un processo affidabile ripetibile per
rilasciando software se vuoi che sia
ripetibile e affidabile quel tipo di
ci elimina non siamo molto bravi a
essere computer ripetibili o affidabili
sono meravigliosi di essere ripetibili e
affidabile non siamo fantastici negli altri
cose ma siamo grandi alla creatività e
conosci lo schema sfocato morbido
e tutti quei tipi di cose, ma noi siamo
non buono a ripetibile e affidabile e
quindi se stai usando esseri umani per
convalidare che il tuo software è buono su a
base ripetuta sarà
è costoso, sarà lento
sarà un errore
a rischio di errori se possiamo automatizzare tutto
che avremo molto di più
processo efficace ed efficiente che lo farà
essere ripetibile e pop affidabile così noi
se vogliamo che sia ripetibile a
affidabile abbiamo bisogno di automatizzare quasi
tutto se vogliamo automatizzare quasi
tutto ciò che dobbiamo mantenere quasi
tutto sotto controllo di versione perché
se noi se facciamo cose che abbiamo
essere in grado di far diventare le cose un noto
buono stato e questo significa che dobbiamo farlo
può avere la gestione della configurazione no
riguardo al controllo della fonte, ma pensate a
la configurazione dei nostri sistemi e il
ambienti in cui operano e
le dipendenze che hanno su
l’infrastruttura o il software del codice
tipo di strana maggior parte dell’esperienza umana
se qualcosa è brutto e doloroso è
probabilmente è ragionevole evitare di farlo ma
nel software
se qualcosa è brutto e doloroso e tu
cerca di allontanarti da ciò che in generale
succede è che peggiora così se il tuo se
il tuo rilascio è sgradevole e difficile
e irto di rischi e tu sei
rilasciando una volta ogni sei mesi il
la cosa peggiore che puoi fare è dire oh è
veramente male iniziamo a rilasciare una volta
ogni 12 mesi invece lo farà
essere ancora peggio quindi se stai rilasciando
ogni sei mesi e questo è doloroso il
la cosa giusta da fare è iniziare a rilasciare
ogni tre mesi poi ogni due mesi
e ogni mese in ogni settimana quindi
ogni ora se puoi se arrivi al
stadio di poter rilasciare sai
su richiesta è uno stato rilasciabile su
richiesta
allora starai bene
storia intorno alla maggior parte di questa roba e
stai andando a carissimo un sacco di
è una specie di argomento difficile
perché come industria abbiamo ottenuto
abituato a lavorare in ambienti in cui noi
usato la qualità come mezzo di compromesso
la qualità come mezzo per accelerare la consegna
e penso che sia assolutamente
idea terribile e non ho dati per
provalo ma
ma la mia esperienza è stata enorme
Grado che se ti concentri sulla qualità di te
diventa più veloce non più lento l’ultimo posto
dove il posto che uso spesso in
esempi nelle mie presentazioni sono un posto
chiamato real max dove abbiamo costruito a
sistema di consegna continua dal da
un foglio di carta bianco da terra
stavamo costruendo alte prestazioni
software e noi stavamo affrontando
alcune sfide che non eravamo a conoscenza
che qualcuno ha risolto prima di noi
fare un lavoro interessante di infortunio e
eravamo assolutamente diligenti in una specie di
non solo andando per sempre, stavamo andando
per eccellenza in tutto ciò che eravamo
facendo noi vorremmo andare l’extra
miglio per essere sicuri che il nostro codice fosse
elegante e pulito e questo è il massimo
sviluppo del software produttivo
ambiente che ho mai lavorato in noi
potrei fare qualsiasi cambiamento, voglio dire che potremmo
potrebbe farlo e valutarlo e
capire le conseguenze di questo
cambia molto velocemente perché il codice era
pulirlo era facile ragione su di esso era
elegante è stato facile lavorare con esso
è stato testato come descriverò molto molto
molto diffusamente abbiamo parlato di alcuni di
gli altri in modo da non NON mezzi nella
mani degli utenti che offrono valore
tutti sono responsabili per il rilascio
elaborare così i processi e gli strumenti e
i meccanismi devono essere trasparenti e
facile, dobbiamo essere in grado di crunchare
informazioni giù nel lavoro di consumo
unità se stai producendo in maniera massiccia
grafico complicato della tua performance
statistiche che non sono abbastanza buone come
dicendo un blocco di lettura o una scatola verde
dicendo se ha superato la sua esibizione
criteri o non semplici è buono e tu
voglio che tu voglia i dettagli in più tu
vuoi i dati extra che vuoi essere in grado di
tuffati e trova di più ma è necessario
rendere questo materiale di consumo per tutti
interessato al processo di rilascio è
non solo quei nerd tecnici è tutto
ognuno il CEO sta per essere
interessato al prezioso software
se stiamo rilasciando questa cosa
quindi assicurandoci che ci stiamo concentrando
sul valore delle cose che siamo veramente
consegnando non i passaggi intermedi
quello che attraversiamo è una specie di
importante e sorta di considerare che
e preoccupante dal punto di vista reale
dal punto di vista dei nostri utenti
questo è ciò che è ciò che siamo
cercando di fornire così come presentiamo
il progresso delle idee attraverso il nostro
sistemi che sai se un utente è entrato
avrebbero capito come quelle idee
stanno attraversando e questo non è un
processo in cui hai detto okay, lo faremo
abbiamo un processo di due anni e siamo
intenzione di fare continuo
consegna e poi dopo ci fermeremo
lo faremo solo allora non è così
funziona davvero così che quello che è è un
la cultura cambia di cosa si tratta è a
è un cambiamento significativo nel
modo in cui lavori, lo spero
il modo in cui li sto presentando
idee e spiegherò di più su uno
è che sto parlando in un minuto è
ragionevolmente semplice e diretto
in realtà in questo caso lo fa
maledettamente duro è difficile ci vuole un
orribile sacco di diverse parti mobili da
una tecnologia di organizzazione o di processo
la prospettiva di progettazione del software tutto
queste cose se vuoi diventare bravo
questa roba di cui tutte queste cose hanno bisogno
si uniscono e partecipano
essere bravi in questa roba
e ciò richiede impegno e abilità e
un nuovo modo di pensare ad alcuni di
queste cose e quindi dobbiamo essere
stabilendo modi di lavorare che permettono
noi per migliorare continuamente dobbiamo essere
sperimentale nel modo in cui lavoriamo
i modi in cui adottiamo il processo nel
modo in cui le squadre vengono formate e organizzate
così come sperimentale nel modo
in cui scrivi solo software questo è
solo pura hybris da parte mia questo è un
citazione da Forrester qualche tempo fa
dire se lo sviluppo del software è agile
l’ atto di apertura per una grande prestazione
la consegna continua è l’headliner
con noi stiamo iniziando a ottenere trazione noi
iniziato a ottenere dati reali è parte di esso
una delle presentazioni precedenti nel
conferenza ha dimostrato che stiamo diventando reali
dati per mostrare che questa è una linea di fondo
vantaggi per le organizzazioni che sono
eseguendo questo è questo non è solo uno dei
i piccoli cambiamenti che avvengono attraverso
la vita la vita del software
industria credo che questo sia un
passo cambiamento finalmente sappiamo come farlo
quindi come ti sembra quando sei
lavorando in questo tipo di ambienti
bene tende ad essere un po ‘ confuso lì
tende ad essere un sacco di informazioni che volano
intorno ad esso tendono ad essere ambienti rumorosi
perché tendono ad essere molto
collaborativo
luoghi in cui lavoriamo e discutiamo
idee e tendono ad essere molto appiccicose
le note di solito sono nella mia esperienza noi
avere radiatori di informazione che ci mostrano
lo stato del nostro avrei pensato
che il progresso professionale del software
attraverso i nostri sistemi abbiamo dati che
stiamo lavorando e stiamo lavorando io
incluso questo principalmente solo perché mi piace
il cartone animato ma abbiamo modificato il nostro aspetto
automatizzare tutte le cose se vogliamo a
lavoro due volte stiamo ora pensando bene ora
forse dovremmo automatizzare questo così voglio
per guidarti attraverso una sorta di tipico
processo per una consegna continua e a
un buon modello mentale per questo è se tu
immagina il nostro software diluire le mani a parte
dove il consumatore vende software
gli sviluppatori hanno ragione, quindi il software
gli sviluppatori il nostro compito è risolvere i problemi
progettando sai implementare
software quindi pensa al tuo software
processo di sviluppo c’è un problema a
essere risolto che costruiamo un po ‘di software
quello risolve quel problema così che cosa siamo
cercando di fare ciò che vogliamo fare è
abbiamo alcuni sviluppatori qui che lavorano
su un cambiamento e stanno andando a commettere
la modifica al repository di origine e
che sta per dare il via ad una valutazione
di quel cambiamento per vedere se è buono
o no, quindi gestiremo ciò che
chiama lo stadio di commit contro quello
cambia e valuta quel cambiamento finora
questa è l’integrazione continua che c’è
nessuna distinzione tra questo e
integrazione continua di ciò che vogliamo
questa fase di commit è che vogliamo molto velocemente
feedback vogliamo che gli sviluppatori siano
avere come indicazione precoce che sono
che loro hanno fregato qualcosa
su come possiamo dare loro e il più veloce
indica che l’indicazione che ottieni è la
piccola linea ondulata rossa il tuo IDE
sotto il codice cattivo il secondo più veloce
è che si ottiene un test in mancanza così
faremo questi test così vogliamo
questi test sono leggeri e vogliamo
per essere vicini al processo che non facciamo
voglio che tocchino la scrivania o
andando al database o parlando al
rete vogliamo che siano in corso
chiudere così possiamo correre decine di migliaia di
questi test e ottenere risultati in sotto
cinque minuti idealmente è gentile
di un ballpark dove siamo
mirando a questo è dove iniziamo a divergere
un po ‘dalla continua integrazione
quello che vogliamo anche è che come risultato a
risultato di a
build di commit di successo che vogliamo memorizzare
le uscite binarie che vogliamo memorizzare
artefatti schierabili che finiranno dentro
produzione se questo rilascio di bacio
candidato rende fino in fondo
la ragione per cui vogliamo farlo è
Ho lavorato in molti posti dove tu
vorresti compilare il codice
stai lavorando a un particolare
obiettivo di distribuzione perché vorresti metterlo
in una configurazione con il compilato
roba e tu li avvolgerei insieme
e il rovescio della medaglia è forse quello
la prossima volta che costruisco se lo costruisco
più avanti e verrò a sapere un
compilarlo appena prima di rilasciarlo
produzione forse sto usando un diverso
versione del compilatore forse lo farà
collegami diverse librerie che ho
ha sofferto degli errori che ha ottenuto
introdotto attraverso il fare che utilizzando
la versione sbagliata quindi cosa voglio fare
voglio essere dannatamente sicuro che il
roba che ho provato qui è roba del genere
la stessa roba
questo finirà in produzione
questo candidato dovrebbe farlo
attraverso il processo così vado a
conservare gli artefatti rilasciabili se
quelli sono vasi o rpm o giovani moduli
o ho dimenticato quale rete li ha causati
assemblee qualunque esse siano, noi siamo
li conserverò qui ora penso da
i miei commenti precedenti probabilmente prendi il
impressione Sono un grande fan del test-driven
sviluppo e hai ragione e penso
lo sviluppo basato sui test è un grande passo
avanti nello sviluppo del software
ma il rovescio della medaglia è che cosa
fa è dimostra che il software fa
cosa pensa lo sviluppatore del software
dovrebbe fare e questa è una cosa diversa
per affermare che cosa fa il software cosa
tu gli utenti lo vogliono fare è a
cosa diversa quindi abbiamo bisogno di test da a
prospettiva diversa in aggiunta al
Il test TDD sarebbe stato di vitale importanza per
dacci quella verifica che il
il software fa quello che noi come sviluppatori
cosa abbiamo bisogno anche di una verifica
farà quello che siamo veramente
puntando a ciò che volevamo veramente fare
quindi eseguiamo un sacco di test di accettazione per
per valutare che il test di accettazione noi
voglio che i test di accettazione siano
correre in produzione come ambienti
vogliamo che sia abbastanza vicino a
produzione per catturare i tipi comuni di
errori che potremmo perdere altrimenti
in modo che i confini del processo che
sono importanti nella topologia di
l’applicazione delle versioni del
sistema operativo l’infrastruttura che
è in esecuzione nella versione vaniglia di
il database del server web tutto quel tipo di
roba quelle cose che vogliamo tutte quelle
le cose devono essere esattamente le stesse di loro
sarà in produzione e configurato in
esattamente allo stesso modo quando li eseguiamo
prova se passano tutti i test o se loro
non stiamo andando a raccogliere i risultati
e li conserveremo contro il
rilasciare candidato quindi abbiamo il
storia di quello che è successo
prima su esseri umani non essere
ripetibile o affidabile, quindi qual è il
ruolo del test manuale penso che se
usi gli esseri umani per qualsiasi forma di
test di regressione è un anti-modello
Penso che sia un abuso di
gli esseri umani è un lavoro putrefatto
e non è che è costoso
qualità inefficiente e non molto alto in modo
usare i computer per quello che sono gli esseri umani
assolutamente meraviglioso altri tipi di
le cose umane sono più grandi
esplorare e chiedendo circa ed essere
creativamente distruttivo e facendo il
pazzo , sai se io lo sono davvero
semplice per me come sviluppatore di software
scrivi un pulsante su una pagina blu
con testo blu su di esso in modo che non puoi
leggi cosa dice il testo e il software
se ne andrà felicemente e cliccherà
pulsante perché hai costruito nel
presupposto che questo è il tasto che
stai facendo clic e non sta leggendo
l’etichetta che gli uomini individueranno
tipo di errore immediatamente più sottilmente
e ancora più importante sono gli esseri umani
andando a ottenere il senso di se
l’uso di questo che è questo software
utilizzabile se il viaggio che ci vuole
ti porta attraverso è ragionevole e e
e dà un quadro mentale coerente
in modo che consente di lavorare con la
software in modo che tu voglia usare gli esseri umani
per quel tipo di cose e così tu
coinvolgendoli dove li hai
un sacco di cose che tutto il resto automatizza
come ho detto questo questo questo era una sorta di
basato su alcune prestazioni molto elevate
software quindi le prestazioni sono state fondamentali
componente del nostro sistema quindi ci siamo divisi
test delle prestazioni in due fasi noi
farebbe prestazioni a livello di componenti
test per
attributi che erano componenti del nostro
sistema che sapevamo essere prestazioni
critico quindi il sistema di messaggistica
sistema di journaling l’ abbinamento
motore fuori per il nostro scambio quelli
tipi di cose e noi vorremmo costruirle
in un modo quindi abbiamo una soglia di
performance in modo che sapessimo che tu
sai che potresti farne così tanti
milioni di messaggi al secondo nel
motore corrispondente e se fosse caduto sotto
che sapevo di aver fatto qualcosa di stupido
e l’ho rallentato, ma di nuovo quello
non ti dà il tutto
immagina quella cosa che ti cattura
sono le cose che non pensi
circa e così rovinando l’ intero sistema
la performance era così di nuovo avremmo avuto un
rappresentazione realistica del nostro
sistema di produzione che abbiamo avuto esattamente
lo stesso hardware configurato in
esattamente allo stesso modo per il
bit ad alte prestazioni e lo faremmo allora
eseguire scenari molto realistici così dentro
fatto quello che abbiamo fatto è che abbiamo registrato un
giorno di traffico e poi noi
ripetuto che in una versione 5 5 X di a
traffico diurno attraverso il sistema e
capito che sai dov’è
prosciugato o allungato o altro
e di nuovo abbiamo avuto delle soglie
qui come prestazioni dal throughput
di mestieri e quel genere di cose che noi
usato come punto di riferimento per se otteniamo un
risultato superato / non superato da questi test
si può si può immaginare la nostra liberazione
candidato in movimento attraverso il processo e
gradualmente stavamo aumentando il nostro
fiducia nella qualità di questo
rilasciare candidato e tu sai se in qualsiasi
mettere in scena un test fallisce uccidiamo quella release
candidato è fatto lo buttiamo fuori
non lo fa mai in produzione, se presente
il test fallisce ma se tutti i test falliscono
allora tutto quello che abbiamo è un livello più alto di
fiducia ma tu sai che è meglio
di quello che avevamo prima dell’ultima tappa
questo lo sapevi che per te è tutto fantastico
il tipo di codice che scrivi nel
configurazione dei tuoi sistemi e di tutti
quel genere di cose, ma per quanto riguarda il
dati e per quanto riguarda i dati che sei
costruendo in produzione, così abbiamo lavorato
nei modi in cui vorremmo migrare
i nostri dati dispiace che sarebbe se volessimo
cambiare la struttura dei nostri dati in qualsiasi
via qualsiasi dato statico faremmo così
una serie di delta e applicheremmo
quelli come patch e il nostro tipo
strumenti di implementazione automatica farebbero il
migrazione dei dati per
come parte della distribuzione e così noi
assemblerebbe gli archi del telaio destro di
le patch li applicano in ordine e quindi eseguono
un po ‘una serie di test di valutazione
se il software sembrava ancora
sano e lo faremmo come parte di
il test di migrazione dei dati alla fine noi
arrivare al punto in cui eravamo pronti
rilascio in produzione e a questo
punta così così questa questa è una macchina
questa è una macchina che è sforna
rilasciare candidati o o escludere
rilasciare candidati e ai punti di
che siamo pronti a rilasciare cosa
ora abbiamo ottenuto abbiamo una grande lista di
rilasciare candidati che sappiamo avere
passato tutti questi test così lontano
possiamo sapere che i candidati per il rilascio sono
buono e pronto per andare in produzione e
quindi possiamo scegliere uno di questi così e
generalmente prendiamo semplicemente quello più nuovo
e premere il pulsante e rilasciarlo in
produzione quelli di noi che nel
spazio di consegna continua fare a
distinzione tra consegna continua
e distribuzione continua continua
la distribuzione è un sottoinsieme di continuo
consegna in consegna continua sai
devi fare la consegna continua a
arrivare alla distribuzione di consegna continua
la distribuzione continua è il processo di
rilasciando automaticamente in produzione
qualsiasi cambiamento che ha superato tutti i suoi
prova in modo da poter fare solo il possibile
puoi immaginare di arrivare a questo punto
niente un essere umano qui ma solo il
robot che sta solo dicendo che è impossibile
è un test ancora da implementare e molti altri
le organizzazioni lo fanno ma è un de
la consegna continua di decisione aziendale è
il processo di lavorare in modo tale
il tuo software è sempre sbloccabile
stato ed è una decisione commerciale per
decidere se è una buona idea
rilascia quello in produzione o no nel nostro
caso eravamo eravamo una finanziaria
scambiare file a bassa latenza a livello finanziario
scambio non c’era modo che potessimo
automatizzare il rilascio nella produzione
senza imporre un cambiamento di latenza a
su una delle nostre caratteristiche una delle persone
che facevano trading nel nostro sistema così noi
conferirebbe un vantaggio ingiusto
su alcune persone contro un’altra se noi
dovevano essere rilasciati mentre le persone lo erano
trading in modo che possiamo farlo, ma così abbiamo solo
rilasciato periodicamente alla fine
alla fine di ogni settimana dobbiamo solo premere
il pulsante che rilascia alla produzione in
il mercato
sono chiusi una delle cose che ti voglio
pensare a questa proteina questo
l’intero processo è chiamato distribuzione
pipeline e questa è una specie di a
idea fondamentale nella consegna continua
questo è ascoltare sai davvero cosa
è su questo è il canale per il cambiamento
alla produzione e automatizziamo il
canale dal cambiamento alla produzione e noi
veterinario, non vogliamo buttare via nessuno
rilasciare candidati che non sono idonei
questo è il suo lavoro ok ora pensa un po ‘
un po ‘in particolare gli sviluppatori di software
nel pubblico penso un po ‘
su quello che serve per costruirlo
canale non puoi costruire quel canale
con aver senza aver completato
tracciabilità quindi se lavori in a
ambiente regolamentato che è stato il mio
sfondo per questo per un po ‘questo è
in quanto questo è un po ‘come un
sognare per i regolatori perché questo dà
loro un’immagine completa di ciò che è successo
si collega questa parte sapendo che si collega il
la parte iniziale in te è un ingegnere o
qualcosa del genere che richiede
sistema di gestione e hai pieno
tracciabilità da zuppa a noce di ogni
angolo a pensarci su chi ci ha lavorato
quali test sono stati eseguiti contro chi ha fatto
la decisione che lo convalidano
sappi che nel test manuale che esso
era che andava bene
chi ha premuto il pulsante per rilasciarlo
in produzione sai che tempi tutti
di quelle cose accadono tutte quelle cose
è controllato e tu hai mai completato l’audit
tutto ciò che serve è mettere qualcosa a
bella piccola utility in cima per farlo
sembra carino da dare agli auditor miei
l’esperienza è la mia esperienza di
trattare con i regolatori nella finanza
industria qui e negli stati con il
i sistemi che funzionano in questo modo sono quelli a
prima sono estremamente diffidenti perché
è al di là della loro esperienza e poi
loro lo amano assolutamente lo mangiano
pensano che sia quello che sono stati
cercando tutto il tempo, così via
un po ‘ convincente ma questo è
meglio di quello che stava succedendo da
industrie fortemente regolamentate, quindi perché io
parliamo molto di questa roba e una di queste
i respingimenti che ottengo lui è okay questo
questo può funzionare per piccoli progetti ma è così
non può assolutamente scalare in modo mio esempio che
Cito per contestare che è Google
quindi Google ha preso la decisione insolita
prendendo la decisione insolita di decidere
che tutto il loro software vive in uno
grande repository ogni volta come un Google
sviluppatore questa è la stragrande maggioranza di
le cose penso che non sia completamente vero
su tutto ma quasi tutto
è in un grande repo e ogni volta che tu
fai un commit che attiva la build
per tutto e fa scattare tutto il
il test funziona per tutto e quindi ottieni
a non conosci una bella immagine coerente
se tutto funziona insieme
corrono sei miss che questo non è aggiornato
questi dati eseguono 60 milioni di build a
anno 100 milioni di righe di codice 20
impegna un minuto è 100 milioni di test
caso esperto eseguito al giorno quindi se il tuo
il problema è più grande di quello che è
possibile che questo non scala ma io
Penso che per lo più penso che ciò che dice sia
che puoi farti avere loro
investito enormemente in alcuni molto intelligenti
roba da fare parallel build e paralleli
test eseguito per rendere questo efficiente e
questo è il risultato
di prendere questo tipo di decisione e
c’è un altro modo di farlo in modo tale
è questo è questo è questo è l’altro
pushback che vedo spesso anche questo
rilasci rischioso tutto il tempo è a
ricetta per il disastro potrebbero essere rilasci
davvero spaventoso ho rilasciato ogni sei mesi
e hanno detto l’incubo
quindi il mio argomento è Amazon
costruire Pres nessuno ha usato Amazon di recente
la settimana scorsa quale versione di Amazon ha fatto
usi non sai che non ti interessa
questo perché Amazon ha il tempo medio
tra schieramenti di 11,6 secondi e
l’ospite medio che rilascia simultaneamente a
distribuzione così una volta ogni 11,6 secondi
c’è un cambiamento in media dieci
migliaia di server da quando hanno iniziato
facendo questo hanno visto un drammatico
riduzione delle interruzioni e un lettore a
drastica riduzione del tempo trascorso
risolvere le interruzioni e avere il numero di
schieramenti in cui hanno avuto un problema
è sceso drasticamente fino all’ultimo
respingi quell’ultimo respingimento che sono
andare a parlare di ciò spesso vede bene
abbastanza giusto
Amazon può fare questo Facebook non ha fatto
questa scuola può farlo, ma lo sono
sono solo siti web che è facile
giusto, la mia tecnologia è troppo dura
fare
fallo e per questo cito HP
firmware team quindi il team del firmware HP
erano in uno stato piuttosto terribile pochi anni
fa hanno ottenuto una posizione che era così
male che i loro affari si erano fermati
chiedendo loro di cambiare il business
non chiedevamo loro alcun cambiamento
perché non li hanno mai comunque
hanno appena rinunciato se si guarda
quello che hanno fatto il crollo del lavoro
quello che hanno fatto in quel momento è questo
tipo di interessante questa roba così loro
ha speso il 25% del proprio impegno nel porting del codice
e il motivo che lo hanno fatto era
che questo è così, questo è il
firmware che viene eseguito in ogni HP
Dispositivo LaserJet e cosa hanno fatto
quel tempo in quello prima del 2008 era quello
ognuno di questi dispositivi praticamente
aveva una propria filiale quindi avevano un singolo
base di codice ma ognuna di queste cose
era su un ramo separato e poi tu
aggiunto una funzione a quel ramo e tu
voglio fare questa stampante qui così tu
vai a migrare a questi hanno speso il 25%
del loro sforzo di sviluppo globale
porting code tra le filiali che hanno speso
25% sul supporto del prodotto che probabilmente
significa che sono rivestiti era merda e loro
speso meno del 5% su ciò che hanno chiamato
innovazione che io e te chiameremmo
funzionalità di consegna questo non era reale
innovazione, questo stava solo facendo qualcosa
nuovo così hanno cambiato quello e quello
degli aspetti interessanti di questo da
la mia prospettiva è che non avevano letto
nessuna della letteratura agile che non avevano
non hanno letto il mio libro su
consegna continua quando hanno fatto questo
hanno appena finito e hanno detto
torniamo ai primi principi, facciamolo
pensa a cosa vorremmo fare
e hanno appena iniziato a seguirlo
attraverso e hanno co-evoluto cosa
sembra una consegna continua uguale
processo sono venuti allo stesso
conclusioni attraverso questo
esperto di un cavo di ingegneria sperimentale
pensando che questo tipo di ha preso giù
questa direzione sono finiti in un molto
stato di base dello stato molto più sano di loro
trascorrere un sacco di tempo in continuo
integrazione che scrive test automatizzati
ci sono due cose per i test automatici
Non sono del tutto sicuro del perché ci sia, um
pianificazione agile di tutti quei tipi di
cose come se fossero un po ‘scambiate
del lavoro che stavano facendo qui
per altre cose, ma la linea di fondo è
che hanno finito per liberare il
possibilità di spendere il 40 percento dei loro
sforzo di sviluppo globale per fare di nuovo
la qualità è passata attraverso il tetto
sul loro sul loro sul loro software e
e questo è un po ‘ dettagliato in davvero
ottimo libro che consiglio a voi
chiamato approccio pratico a larga scala
sviluppo agile che descrive il genere
dal punto di vista del processo questo
non è un libro tecnico, questo è molto
più su come mappare come gestisci
cambiamento della cultura a catena nelle organizzazioni
e lui è davvero interessante da quello
prospettiva e l’esito è stato nel complesso
i costi di sviluppo erano programmi ridotti
in fase di sviluppo è aumentato e come
abbiamo descritto la quantità di sforzo spesa
la costruzione di nuove cose è stata aumentata
drammaticamente di cosa sto parlando qui
è che la consegna continua cambia il
economia dello sviluppo del software e
sempre più come abbiamo visto dal
presentazione precedente nella
conferenza che alcuni di questi dati sono
da lì i vantaggi di fondo
agli altri delle organizzazioni che
lo stanno impiegando e questo è il primo
il tempo che abbiamo visto questo nel software
l’industria lo facciamo noi software
gli sviluppi stanno facendo la differenza
siamo in grado di seguire un razionale
processo empirico del software
sviluppo non facendo supposizioni di
espirando facendo formazione
ipotesi vale la pena capire come
testare quelle ipotesi e lavorare in
in questo modo
lavorando in modo iterativo siamo in grado di fare un
drammatica differenza delle imprese
che operiamo nei dati
i dati crescono sempre e
sono una grande storia
Credo che sarete influenzati da
consegna continua se voi se
lo impieghi o no se stai impiegando
ti divertirai di più, hai ragione
software di qualità superiore più veloce
in modo efficiente e stai facendo
vantaggi di fondo per le imprese
che si opera in
se non lo usi, i tuoi concorrenti
lo farò e ti prenderanno a calci in culo
quindi ecco alcune delle organizzazioni e
questo è solo un esempio ci sono molti
organizzazioni e alcuni di loro sono gentili
di quelli che ti aspetteresti e
alcuni di loro sono una specie di probabilmente un
un po ‘ più inaspettato di Google Amazon
Facebook Etsy che fanno alti livelli di
Sperimentazione in produzione abbiamo un
infrastruttura classificata facendo test a / b
e tutto quel genere di cose per Flickr
Netflix ci bruciamo, ma noi
ascoltato ieri per un penc parlando
ing x ‘esperienza che hanno visto drammatico
miglioramenti nella loro capacità
consegnare come risultato l’ AP mi ha sorpreso
ci sono ragazzi fuori a parlare
circuito e circuito di scrittura a parlare
circa il grande vantaggio nella qualità di
questo dopo e la produttività dei loro
squadre che impiegano queste cose, oh mio mentale
il modello è si questo tipo di definizione
di sistemi legacy ma New York Stock
Scambi New York Times ci sono molti
di organizzazioni e la lista sta crescendo
tutto il tempo che le persone stanno prendendo
avviso perché questo funziona questo è un altro
modo efficace di fornire software e
siamo che ho finito, per favore ricordati di
votare nella domanda se ce ne sono
domande felici di prenderli se vuoi
per metterli avrei dovuto dirlo a
l’inizio della presentazione ma se tu
voglio metterli attraverso l’ app che è
bene anche noi abbiamo pochi minuti per
domande sì sì cool così il primo
la domanda è costruire quel tipo di build
la pipeline di prova è dura almeno in
Jenkins come si consiglia di farlo
okay, non sono così bravo che usiamo, usiamo noi
iniziato utilizzando il cruise control che
noi che è anche peggio di Jenkins o
era lì e poi ci siamo trasferiti a Jenkins
che confesso non è il mio preferito
pezzo di software non mi piaci molto
molto ma fa il lavoro che ho usato
teamcity pure per costruire condutture nessuno
di loro in realtà nessuno di loro ha davvero successo
a mio parere ancora condutture di distribuzione
il modello in loro è rot è
questo non importa molto
anche se in realtà non è quello
difficile da risolvere penso sia fattibile
quindi puoi usare Jenkins che puoi
usa il cruise control puoi usare il vapore
città è possibile costruire la propria cosa è
non così complicato o requisito ciascuno
passo ogni piccolo pezzo è relativamente
semplice e quindi puoi tipo
scrivi piccoli pezzi di codice che incollano
le cose insieme e tu puoi gentilmente
coppia le cose insieme e potresti essere
un po ‘brutto qui dentro ma ma
è assolutamente fattibile e puoi costruire
condutture di costruzione abbastanza sofisticate in
In questo modo penso che ci siano più cose
venendo penso che penso che le persone
stanno pagando per questo ci sono un sacco
e ci sono molte persone che conosco
che stanno lavorando su strumenti in questo spazio
Amazon ha una pipeline di codice che loro chiamano
in AWS che stanno cercando di trasferirmi
sii Emma parlando di costruirne alcuni
condutture di distribuzione nel loro bluemix
roba ci sono tutti quei tipi di persone
stanno guardando questa roba ma penso come
eppure gli strumenti sono immaturi e
in realtà sono le idee e per me
le idee sono drammaticamente di più
importante degli strumenti gli strumenti
non sono così difficili da costruire da soli a
risolvere voi stessi se siete impegnati a
le idee
Sì
c’è un sacco di dettagli nei dettagli
abbastanza III hanno un altro discorso su tranne
l’ eccezione di assistere è come penso il
TDD e test di unità tipo di lavorato
abbastanza bene riguardo a ciò che penso
test di accettazione probabilmente un po ‘meno
così e così sai che faccio qualcosa
Sto parlando degli aspetti tecnici di
là e ci sono quali sono i modi in
che scrivi i tuoi test hanno
implicazioni per i modi in cui
aumenteranno i modi in cui voi
può chiamare assicurato il merito e tutto
quel genere di cose quindi c’è questo
livello ma sai quando stai parlando
sulle grandi organizzazioni con molti
progetti allora tu arrivi al tipo di
div la radice di Amazon o la radice di Google
se vai per un grande repository e
gestendo tutto insieme che ha
alcuni vantaggi sai che non è un
cosa stupida da fare significa che il tuo
la gestione delle dipendenze è solo uno a
una relazione tutto il tempo che
è che è bello
quella delle cose che sta venendo fuori
di Amazon Amazon sono andati dall’altra parte
Amazon ha i suoi due picchi di squadre
e micro servizio ogni servizio è gentile
di costruito sai costruito da un piccolo di a
piccola squadra e gestito da una piccola squadra oggi
la difficoltà che c’è è è di cosa si tratta
che dire delle interazioni che attraversano il
confini dei servizi e poi hai
hai capito come gestire i protocolli
di scambio di informazioni tra il
servizi e questo genere di cose che
diventa una che è il trade-off
quindi il compromesso per il monolite
approccio è che devi investire in
infrastrutture e cose intelligenti da essere
in grado di eseguire questa roba in parallelo a
ottenere un ragionevole tempo di ciclo per il trade-off
dell’approccio del micro servizio è questo
devi preoccuparti della dipendenza
gestione e nessuno dei due nemmeno conosce
di quelle facilità è sbagliato o giusto è
solo quelli di quelli sono i punti dolenti
a seconda di quale percorso che si va
giù ed entrambi erano
praticabile ma entrambi hanno
complessità nel riuscire a farli
lavoro so che non risponde al tuo
domanda ma io non penso che sia un
domanda che posso solo rispondere in questo
periodo di tempo mi dispiace se vuoi parlare
in seguito in più dati sono felice di fare
la prossima domanda puoi passare al continuo
consegna senza una chiamata per cambiare a
coreani cross-funzionali alti
la collaborazione ne ordina uno
solo lavoro con l’ altro io non lo faccio
penso di essere così da poter ottenere benefici
Faccio solo un passo indietro, Mike mio
l’esperienza è stata che non puoi
davvero fare questa transizione dall’essere un
organizzazione regolare ad essere a
consegna continua un’organizzazione in
molto meno di due anni sta andando
piuttosto bene se riesci ad avvicinarti
essere decente in questo dopo due anni
ma ad ogni passo lungo la strada c’è
valore incrementale quindi se non stai usando
versione controllo l’introduzione di
il controllo della versione è Lopes un rivelatore se
non stai usando l’integrazione continua
questo è che è un enorme passo se
non stai usando TDD che è enorme
miglioramento quindi ci sono tutti questi
cose che il valore aggiunto non lo sei
diventerà davvero di classe mondiale a questo
roba se non hai il tipo di
imparando squadre collaborative incrociate che
abbiamo parlato tutti di questo
conferenza si può ottenere meglio di te
sei puoi essere tu puoi ottenere valore da
facendo queste cose ma non stai andando
per diventare di classe mondiale
la classe mondiale richiede la sperimentazione
ambiente di apprendimento e quello reale
richiede la stretta collaborazione di
squadre a mio avviso una qualsiasi delle domande
finisce per non devi metterlo attraverso
l’app se si desidera, nel qual caso
grazie davvero per il tuo tempo
Please follow and like us: