Il tuo carrello รจ attualmente vuoto!

Una software factory (azienda o divisione allโinterno di unโazienda) affronta delle fasi riassunte in quella che chiamo โla traiettoria evolutivaโ. La traiettoria descrive il percorso di una software factory a mano a mano che cambia e matura. ร fondamentale che una volta arrivati a un certo stadio non si torni piรน indietro al punto precedente.
Secondo la filosofia kaizen (miglioramento continuo) bisogna tenere sempre un minimo di tensione organizzativa orientata al miglioramento altrimenti subentrano lโentropia e le vecchie abitudini, che tornano a fare capolino facendoci retrocedere nella traiettoria evolutiva.
La leadership aziendale deve considerare che la software factory non potrร funzionare sempre allo stesso modo durante la sua vita. Cultura, valore e tecnologia dovranno evolvere perchรฉ ciรฒ che ha portato la software factory (e quindi il business) fino a un certo punto comincerร a non essere piรน ottimale nei punti successivi.
STORY โ Non sta piรน in piedi
Alessandro รจ un imprenditore che, insieme a due soci, fonda unโazienda che produce una piattaforma software per il settore delle scommesse sportive. I soci fondatori sono competenti, appassionati e cominciano a costruire lโazienda ispirandosi ai principi agile e DevOps che fanno parte del loro DNA. Dopo qualche anno nel mercato Alessandro si trova ad affrontare un momento di crescita improvvisa: deve passare da 10 persone a circa 40. La mia avventura nellโazienda di Alessandro nasce da una cena:
โMichele, i miei processi non scalano piรน. Ciรฒ che funzionava per 10 non sta in piedi per 40. Ho bisogno di una persona di fiducia che mi aiuti a ristrutturare certe parti. Cโรจ del casino, ti interessa lavorare con noi?โ
Con Alessandro abbiamo un poโ alla volta cambiato il modo di visualizzare il lavoro, introdotto automazione spinta fino alla produzione di documentazione per scopi di compliance legale, automatizzato lโevoluzione dello schema di database e stravolto il processo tecnologico di deployment (citando solo gli aspetti piรน tecnici). Lโazienda ha dovuto evolvere anche nellโassistenza clienti, supporto, reperibilitร e molto altro. Ciรฒ che funzionava per 10 persone e le aveva portate fino lรฌ, non era piรน adeguato.
Sopravvivere
In questa fase iniziale, la Software factory รจ appena stata creata e il suo obiettivo principale รจ quello di diventare operativa il piรน rapidamente possibile. La prioritร รจ rilasciare funzionalitร utili per il business, anche a costo di accumulare del debito tecnico che dovrร essere gestito successivamente. L’attenzione รจ sulla costruzione di una base solida per lo sviluppo, configurando strumenti essenziali e stabilendo politiche iniziali che permettano ai team di lavorare in modo produttivo. ร una fase caratterizzata da pragmatismo e velocitร , dove si pongono le fondamenta per un sistema che sarร migliorato e raffinato nel tempo. Leadership ed Engineering iniziano a costruire un dialogo che sarร cruciale per il futuro allineamento strategico.
Alcuni segnali di questa fase:
- Definizione iniziale di una piattaforma di gestione application lifecycle management (es. Azure DevOps, GitHub, GitLab).
- Policy di gestione e uso del version control/repository.
- Creazione di linee guida minime per pull-request e revisione del codice.
- Pipeline di build e deployment configurate, anche se con processi manuali parziali.
- Pianificazione a breve termine basata sulle prioritร di business immediate.
- Stabilire un minimo di automazione per i processi ripetitivi.
- Dialogo iniziale tra Leadership e Engineering per allineamento sugli obiettivi.
Vivere
In questa fase, il business comincia a vedere una certa prevedibilitร nei rilasci, e le dinamiche del team Engineering sono stabilizzate. I processi di base per la gestione del lavoro e delle prioritร sono consolidati, permettendo al team di operare con una maggiore consapevolezza e controllo del flusso di lavoro. Lโazienda comincia ad adottare pratiche piรน strutturate, come il testing automatizzato e la gestione del debito tecnico, mentre le retrospettive regolari permettono di identificare opportunitร di miglioramento continuo. La leadership e il team Engineering hanno sviluppato un dialogo solido, con una visione condivisa del lavoro da svolgere e delle prioritร strategiche. Il focus รจ ora su miglioramenti incrementali e sulla riduzione degli sprechi nel processo produttivo.
Alcuni segnali di questa fase:
- Processo strutturato per la gestione dei requisiti e del backlog.
- Limitazione consapevole del work-in-progress (WIP) per evitare sovraccarichi.
- Inizio di un approccio formale al testing automatizzato.
- Retrospettive regolari per individuare e pianificare miglioramenti.
- Analisi non strutturata del feedback e della telemetria per decisioni operative.
- Dialogo consolidato tra Leadership e Engineering, con definizione di ruoli e responsabilitร chiari.
- Prime pratiche di gestione del debito tecnico.
- Strutturazione di una cultura del miglioramento continuo.
Funzionare
In questa fase, la Software factory ha trovato un ritmo stabile e produttivo. Le pratiche fondamentali sono ben radicate nella mentalitร aziendale, e i team operano in modo autonomo, mantenendo un costante allineamento con gli obiettivi di business. La suite di testing automatizzato รจ robusta e ben strutturata, e l’azienda inizia a fare uso piรน intensivo di dati e telemetria per prendere decisioni informate, fin dalla fase di requisiti. Il debito tecnico รจ monitorato e ridotto, e il focus si sposta su una pianificazione di medio termine. L’attenzione รจ rivolta alla formazione continua del personale e agli investimenti in ricerca e sviluppo, con lโobiettivo di migliorare le capacitร aziendali e di esplorare nuove opportunitร di innovazione.
Alcuni segnali di questa fase:
- Team autonomi e allineati agli obiettivi strategici del business.
- Suite di testing automatizzato ben strutturata, con copertura significativa.
- Assistenza clienti strutturata, con feedback diretto al team di sviluppo.
- Collaborazione attiva tra Marketing e Engineering per integrare feedback utente nelle roadmap.
- Decisioni basate su dati provenienti da telemetria e analisi avanzate.
- Sicurezza e telemetria considerati giร dalla fase di definizione dei requisiti.
- Debito tecnico monitorato e ridotto secondo prioritร .
- Pianificazione a medio termine, con roadmap chiara e scadenze realistiche.
- Programmi di formazione e aggiornamento continuo per il personale.
- Investimenti regolari in ricerca e sviluppo, con sperimentazione di nuove tecnologie.
Prosperare
A questo punto, la Software factory รจ una realtร matura e leader nel suo settore. I processi sono fluidi e lโinterazione tra i vari dipartimenti รจ ottimizzata per minimizzare gli sprechi e massimizzare la consegna di valore agli utenti finali. La fase di prosperitร รจ caratterizzata da forti investimenti in ricerca e sviluppo, pratiche avanzate come chaos engineering e red-teaming per garantire la resilienza dei sistemi, e un focus costante sul miglioramento della sicurezza e della compliance attraverso DevOps. I team operano con efficienza, grazie a una cultura aziendale che promuove il benessere del personale e una mentalitร orientata all’innovazione continua. L’organizzazione รจ agile, adattabile e in grado di sperimentare con nuove tecnologie e pratiche per mantenere la sua posizione di leadership.
Alcuni segnali di questa fase:
- Forti e continui investimenti in ricerca e sviluppo, con focus sull’innovazione.
- Politiche di wellbeing strutturate e mirate al mantenimento del benessere del personale.
- Esperimenti avanzati e sistematici di A/B testing per la validazione delle feature.
- Implementazione di pratiche di chaos engineering per testare la resilienza dei sistemi.
- Team di red-teaming dedicati alla sicurezza e alla simulazione di attacchi.
- Implementazione di team SRE (Site Reliability Engineering) per la gestione proattiva delle operazioni.
- Integrazione di DevOps nei processi di Compliance e audit.
- Cultura aziendale orientata all’eccellenza, con flusso di lavoro ottimizzato tra i dipartimenti.
- Capacitร di adattamento rapido alle esigenze del mercato e innovazione continua.
Quando iniziai a lavorare nel 2010, il manifesto Agile stava compiendo 9 anni. Pubblicato nel 2001 diede inizio a una nuova era nellโapproccio alla gestione dei progetti software. Scrum e Kanban, le principali implementazioni ispirate ai principi Agile, si stavano diffondendo a macchia dโolio (soprattutto la prima).
Ma, giร da qualche anno, in vari angoli del mondo, si stava sperimentando lโadozione dei principi Lean del mondo manifatturiero nei contesti di sviluppo software. Nella comunitร DevOps ci si riferisce a questo periodo come โLa convergenza DevOpsโ.
Da quel periodo sono passati svariati anni e si puรฒ empiricamente affermare che quegli esperimenti hanno avuto successo. Le pratiche che permettono a una software factory di essere come definita in questo libro si basano profondamente su queste ideologie.
Ancora prima, nei primi anni 2000, era XP (Extreme Programming) una delle metodologie Agile piรน diffuse con le sue pratiche di Test-Driven-Development e Continuous Integration: concetti che saranno poi fondamentali per arrivare al movimento DevOps.
Usare un framework oppure un altro fa davvero tutta questa differenza? Su cosa dobbiamo concentrarci davvero per capire se la nostra Software factory sta funzionando bene? E cosa significa farla funzionare bene?