| 0.11 | | I revisori tecnici |
| 0.13 | | Prefazione |
| 0.15 | | Ringraziamenti |
| 0.17 | | Introduzione |
| 0.17 | | Costruire dal niente |
| 0.19 | | Costruire dalle fondamenta |
| 0.20 | | Struttura del libro |
| 0.22 | | Codice sorgente per esercitazioni ed esempi |
| 0.23 | | Suggerimenti e segnalazioni |
| 0.23 | | Licenze |
| | | {titolo} |
| 1 | Parte I. | Il software dall’idea alla produzione |
| 3 | Capitolo 1. | Software, economia e sistemi complessi |
| 3 | | L’informazione nella modernità |
| 6 | | Realizzare software nel contesto di mercato |
| 7 | | Un’epoca caotica |
| 9 | | L’aspettativa e i consumatori |
| 10 | | L’aspettativa utente e i modelli di probabilità |
| 12 | | L’asimmetria informativa: il mercato dei limoni |
| 16 | | La produzione e la tecnologia |
| 20 | | DevOps: numeri alla mano |
| 22 | | Realizzare software con i modelli open source |
| 25 | | Sistemi e complessità |
| 26 | | La teoria generale dei sistemi |
| 31 | | Gli incidenti sono inevitabili |
| 33 | | Il Cynefin framework |
| 34 | | Esercizi e domande |
| 37 | Capitolo 2. | Definire DevOps |
| 38 | | La storia del movimento |
| 41 | | Il cambiamento come costante |
| 41 | | L’evoluzione dell’infrastruttura |
| 42 | | L’evoluzione delle applicazioni |
| 43 | | L’evoluzione tra presente e futuro |
| 44 | | DevOps e l’approccio a tre vie |
| 47 | | Esercizi e domande |
| 49 | Capitolo 3. | Organizzazioni e fondamenti DevOps |
| 49 | | Un’organizzazione DevOps |
| 51 | I. | La cultura |
| 52 | | L’organizzazione a silos |
| 53 | | Una struttura cross-funzionale |
| 54 | | Chi appartiene alla sfera DevOps? |
| 58 | II. | L’automazione |
| 58 | | Il costo di una modifica applicativa |
| 58 | | Il costo delle lavorazioni sull’infrastruttura |
| 60 | | Fino a dove esiste automazione |
| 60 | III. | Il Lean |
| 62 | | Principi di Lean nei metodi Agili |
| 62 | IV. | La misurazione |
| 65 | | Misurare per il miglioramento |
| 67 | | Scegliere metriche e indicatori |
| 74 | V. | La condivisione |
| 74 | | Il confine della responsabilità |
| 76 | | I modi per comunicare |
| 77 | | Esercizi e domande |
| 79 | Capitolo 4. | Verso il vostro movimento DevOps |
| 79 | | Definire la rotta |
| 80 | | Il primo esperimento DevOps |
| 82 | | Costruire un piano dai fondamentali DevOps |
| 84 | | Come avviene il cambiamento |
| 87 | | La diffusione della tecnologia |
| 90 | | La necessità di apprendere |
| 91 | | Dare il via a un movimento: autorità e autorevolezza |
| 92 | | Navigare e aggiustare la rotta |
| 92 | | Il pericolo della cultura del cargo |
| 93 | | In cerca del profilo giusto |
| 95 | | Esercizi e domande |
| 97 | Capitolo 5. | Il valore, il Lean e il Flow |
| 97 | | L’idea di valore |
| 99 | | Il valore dello sviluppo di software |
| 101 | | Il valore delle persone |
| 103 | | Toyota e le basi del Lean Manufacturing |
| 104 | | La struttura del Toyota Way |
| 107 | | L’essenza del Lean Thinking in cinque passi |
| 109 | | Il Product Development Flow e il TPS |
| 110 | | Esercizi e domande |
| 111 | Capitolo 6. | Evoluzione dei metodi: verso XP e DevOps |
| 111 | | I metodi di produzione |
| 112 | | Metodi e metodologie |
| 112 | | Primi tentativi: i metodi predittivi |
| 114 | | Verso la responsabilità: i metodi iterativi |
| 118 | | I progenitori di DevOps: i metodi adattivi |
| 121 | | I principi economici nei metodi Agili |
| 127 | | Extreme Programming e DevOps |
| 131 | | Il rapporto tra valori, principi e pratiche di XP |
| 139 | | I problemi del software |
| 139 | | I difetti (bug) |
| 141 | | La carenza di design architetturale |
| 143 | | Debito tecnico e atteggiamenti risolutivi |
| 144 | | Esercizi e domande |
| 147 | Capitolo 7. | Il ruolo del linguaggio nella produzione di software |
| 147 | | Comunicare nella produzione di software |
| 148 | | La comunicazione tra uomini e macchine |
| 148 | | I limiti dei linguaggi di programmazione |
| 150 | | I limiti di design e la Legge di Conway |
| 151 | | La comunicazione tra individui |
| 151 | | I rischi nel rendere visibile ciò che non si vede |
| 153 | | Comunicare il software e i prodotti immateriali |
| 154 | | Comunicare e pianificare con le User Story |
| 156 | | La conferma delle funzionalità: i test del cliente |
| 158 | | Ridurre i rischi con il Minimum Viable Product del Lean |
| 159 | | Strumenti ed efficacia della comunicazione |
| 160 | | Il ruolo delle metafore e del linguaggio ubiquo |
| 161 | | Esercizi e domande |
| 163 | Parte II. | Il rilascio e il mantenimento del software |
| 165 | Capitolo 8. | Infrastrutture DevOps, Unix Way e Linux |
| 165 | | Molti modi di fare DevOps |
| 166 | | Sistemi operativi e infrastrutture Unix-like |
| 169 | | Dalla filosofia Unix Way al cloud |
| 172 | | Piattaforme cloud e la Linux Way |
| 174 | | Le piattaforme cloud nei processi produttivi |
| 174 | Esercitazione 1 – | Una mini piattaforma in locale |
| 179 | | Esercizi e domande |
| 181 | Capitolo 9. | Piattaforme e processi: lavorazioni con Git |
| 181 | | Dagli strumenti open source alle piattaforme |
| 182 | | La comunità open source e le sue piattaforme |
| 186 | | Contribuire al codice di team con Git |
| 186 | | Caratteristiche fondamentali di Git |
| 189 | | Introduzione di una modifica trunk-based con Gogs |
| 189 | Esercitazione 2 – | Contribuire a un repository |
| 197 | | La versatilità dello strumento Pull Request |
| 198 | | Esercizi e domande |
| 201 | Capitolo 10. | Continuous Integration, Linux e Jenkins |
| 201 | | La Continuous Integration e DevOps |
| 202 | | Il valore del testing come pre-requisito |
| 202 | | I test fatti dai tecnici |
| 207 | | Il valore del testing e il suo bilanciamento |
| 208 | | Realizzare una build per il rilascio |
| 210 | | Le fasi di build del software |
| 213 | Esercitazione 3 – | Una build automatica su Jenkins |
| 217 | | Esercizi e domande |
| 219 | Capitolo 11. | Architetture software: container con Docker |
| 219 | | Applicazioni e architettura nel cloud |
| 220 | | Definire l’architettura |
| 225 | | Dalle macchine virtuali ai container |
| 227 | Esercitazione 4 – | Realizzare un container Docker |
| 229 | | Applicare il testing a un container Docker |
| 232 | | Esercizi e domande |
| 233 | Capitolo 12. | Continuous Delivery con Nomad: strategie di release |
| 233 | | Creare flussi senza interruzioni |
| 234 | | Dal clic al rilascio in produzione |
| 235 | | Garantire la qualità a monte del processo |
| 236 | | L’osservabilità dei servizi |
| 239 | | Strategie di release e rollback |
| 240 | | Strategie di provisioning |
| 241 | | Strategie di rollout dell’applicazione |
| 242 | Esercitazione 5 – | Rilasciare un servizio |
| 246 | | Esercizi e domande |
| 247 | Capitolo 13. | La gestione DevOps della produzione con Kanban |
| 247 | | La produzione è parte del processo |
| 248 | | Incidenti e fermo della produzione |
| 249 | | Un processo produttivo organizzato in Kanban |
| 249 | | Teoria delle code e supermercati |
| 251 | | Il teorema di Little per prevedere i tempi d’attesa |
| 252 | | Usare l’economia per livellare il work-in-progress |
| 254 | | Quanto costano le code |
| 255 | | Lavorazioni disomogenee |
| 259 | | Esercizi e domande |
| 261 | Capitolo 14. | Apprendere nella cultura DevOps |
| 261 | | Continuare a imparare |
| 262 | | Le pratiche per migliorare |
| 263 | | La finestra di Johari |
| 265 | | Imparare con il gioco serio |
| 267 | | Scrum e la città di Lego |
| 267 | | Kanban e le tortine |
| 268 | | Il furto al museo e gli anti-pattern |
| 268 | | La scuola del gioco |
| 269 | | Esercizi e domande |
| 271 | | Considerazioni finali |
| 271 | | Le infrastrutture oltre le organizzazione |
| 277 | Appendice A. | Anti-pattern e miti da sfatare |
| 277 | | Esempi di anti-pattern |
| 277 | | È sufficiente creare un team di DevOps |
| 278 | | Gli specialisti non servono più |
| 278 | | Non facciamo Agile: da noi non si può fare |
| 279 | | Che cos’è il vero TDD? |
| 281 | Appendice B. | Codice sorgente, esercizi e guide |
| 281 | | Struttura dei repository |
| 283 | | Bibliografia |
| 283 | | Con riferimento nel testo |
| 286 | | Fonti bibliografiche |
| 293 | | Indice analitico |