DevOps non è "l'applicazione dei processi di sviluppo alle attività operative". Ci sono alcune interpretazioni diverse su cosa sia DevOps, ma lo descrivo come una mentalità o cultura in cui l'implementazione, le operazioni e la manutenzione di un sistema sono considerate in tutto lo SDLC.
L'idea di "DevTest" o "DevQA" esiste già. Si chiama Agile, come definito dal Manifesto per lo sviluppo di software agile e Dodici principi dietro il manifesto agile . Sebbene il Manifesto Agile non sia l'unico modo per abbattere i silos in un'organizzazione, è probabilmente uno dei più comuni.
Per capire questo, dovresti tornare indietro nel tempo. Nei giorni in cui i modelli basati su piani erano visti come il modo di costruire software, si avrebbero dei silos. A seconda delle organizzazioni, i silos sarebbero diversi, ma sarebbero spesso basati sulle fasi di SDLC - avresti un team di requisiti che ha trasformato le esigenze degli stakeholder in una specifica, un'architettura e un team di progettazione che ha trasformato i requisiti in un design specifica, un team di codifica che prendeva le specifiche di progettazione e le trasformava in codice, un team di test che prendeva il prodotto costruito e lo testava, quindi un team di rilascio o di operazioni che avrebbe preso il sistema e lo avrebbe implementato ed eseguito.
Ma non è stato efficiente. L'idea di "lanciare il lavoro oltre il muro" alla squadra successiva ha portato solo a ritardi nella comunicazione, rielaborazioni e altri sprechi e lentezza nel ciclo di sviluppo. I vari metodi Agile lo hanno capito e hanno cercato di abbattere i muri dello sviluppo del prodotto e hanno richiesto team interfunzionali: quasi tutti i processi agili (XP, Scrum, Disciplined Agile Delivery e così via) richiedono un team interfunzionale che contiene tutte le conoscenze e l'esperienza necessarie per fornire software di lavoro su base regolare.
Tuttavia, agli inizi di quello che sarebbe diventato il metodo Agile (la fine degli anni '80 e '90), le operazioni erano diverse da quelle attuali. I progressi nella virtualizzazione, nella containerizzazione, nell'infrastruttura come codice (e nella capacità di gestire più facilmente la configurazione dell'infrastruttura) e nel cloud computing hanno cambiato il modo in cui le attività operative potrebbero essere svolte. Questi progressi e cambiamenti hanno portato alla capacità di abbattere i silos tra l'organizzazione di sviluppo prodotto (business e prodotto, sviluppo, test, assicurazione qualità) e il team operativo.
Tornando al Manifesto Agile e ai principi che ne sono alla base, alcuni dei principi sarebbero un po 'diversi nella cultura DevOps:
Business people, developers, and operations staff must work together daily throughout the project.
Working software and the infrastructure it runs on is the primary measure of progress.
The best architectures, requirements, and designs, and infrastructures emerge from self-organizing teams.
Il modo in cui questo si manifesta dipende dall'organizzazione di sviluppo. Potrebbe trattarsi di un team operativo continuo che è coinvolto nello sviluppo continuo come forma di ruolo specialistico. Potrebbe significare che gli esperti delle operazioni vengono assegnati a ciascun team per supportare le attività del team. Potrebbe anche significare che uno o più membri dei team di sviluppo hanno un certo livello di formazione incrociata nel lavoro delle operazioni. O potrebbe essere una combinazione di questi.