Lo sviluppo software Agile non riguarda solo gli sviluppatori
Nessuno vuole rilasciare software con numerosi bug, problemi di prestazioni e scarsa soddisfazione del cliente. La continuous integration e le revisioni del codice contribuiscono a evitare questo problema, ma richiedono tempo. Bene: con i team Agile e DevOps potrai trovare il tempo che serve.
Gli sviluppatori di software Agile si concentrano sullo sviluppo sostenibile, non sull'eroismo. Sostenibilità significa effettuare una stima adeguata, strategie di creazione dei branch per la gestione del codice, test automatizzati per proteggere la qualità e il continuous deployment per ottenere feedback rapidi dagli utenti.
L'adozione di pratiche di sviluppo sostenibile richiede una disciplina a cui la maggior parte di noi aspira a livello personale, ma spesso fatica a realizzare. Questo perché nessuno può diventare Agile o DevOps nel vuoto. Dietro deve esserci la cultura dell'intera organizzazione e talvolta è necessario un agente del cambiamento, come un ingegnere DevOps. Ciò significa convincere i responsabili di progetto ad accettare l'idea che la qualità sia più importante dell'ambito o della programmazione, che spesso è la parte più difficile dell'adozione di Agile.
Ma ne vale la pena! Gli sviluppatori ottengono la libertà e la responsabilità di sviluppare software in modo sostenibile, pur mantenendo un ottimo rapporto con l'azienda, e l'azienda riesce a portare sul mercato un prodotto di qualità superiore, il che rafforza ulteriormente l'ottimo rapporto con il team di ingegneri. Inoltre, e questo è l'aspetto migliore, gli sviluppatori di software Agile raramente affrontano "marce funebri". Quando lo sviluppo è in ritardo perché il mantenimento di una qualità elevata richiede più impegno del previsto, il lato relativo all'ambito del triangolo di ferro può flettersi per adattarsi a quella realtà e nessuno vede rovinato il proprio fine settimana.
Tutti gli sviluppatori di software conoscono il "triangolo di ferro" della gestione dei progetti: ambito, programmazione e qualità. Inoltre, la maggior parte di noi ha partecipato a progetti in cui l'ambito era inflessibile, la programmazione è stata stravolta e lo sviluppo è stato sopraffatto dall'aumento del debito tecnico. A volte, per aggiungere la beffa al danno, il prodotto finale non era nemmeno quello che il mercato voleva. È una situazione frustrante e tragicamente nota.
Ma non temere: ci sono buone notizie.
Con lo sviluppo software Agile, l'ambito diventa la variabile dinamica in modo che i team possano proteggere la qualità, creare una vivace cultura dello sviluppo e rimanere strettamente associato al business. In Atlassian, Agile è al centro di ogni team di sviluppo (nonché di molti team non di sviluppo). E questo per validi motivi.
Fornisce alle persone delle pratiche che creano una solida base tecnica nel loro prodotto e una cultura di collaborazione nel loro team. Gli sviluppatori di team Agile sono più coinvolti, scrivono codice migliore e si divertono di più.
I rapporti solidi consolidano il prodotto
Agile riguarda il lavoro di squadra, il che non sorprende dal momento che la maggior parte dei software oggi è creata dai team. Gli sviluppatori creano solide relazioni con la gestione del prodotto, la progettazione, il controllo di qualità e le operazioni, perché scrivere codice sostenibile significa rimanere connessi a tutti gli aspetti del progetto. Offrendo agli sviluppatori gli strumenti per lavorare direttamente con altre parti del business, Atlassian ha ottenuto enormi vantaggi in termini di qualità del codice e soddisfazione degli sviluppatori. Codice migliore, meno "spazzatura" (cioè duplicazione dell'impegno e/o flussi di lavoro in conflitto) e un interfunzionalismo più efficace sono solo alcuni dei vantaggi.
Anche il mentoring è importante. I team Agile si formano a vicenda per garantire che la conoscenza della base del codice sia diffusa in tutto il team. Un modo per farlo è l'utilizzo delle revisioni del codice che, oltre a proteggere la qualità, effettuano una sorta di "impollinazione incrociata" della conoscenza del codice in tutto il team. Indipendentemente dal modo in cui viene diffusa la conoscenza, i team Agile non si ritrovano ad avere sviluppatori di "percorsi critici" che non possono andare in ferie perché sono gli unici a comprendere una particolare area di codice. Nessuno sviluppatore vuole trovarsi in quella situazione.
Gli sviluppatori Agile possono anche lavorare verticalmente lungo lo stack tecnologico dei loro prodotti con maggiore facilità rispetto alle controparti a cascata perché i team Agile si auto-organizzano, offrendo ai membri la possibilità di acquisire nuove competenze. È un dato di fatto che gli sviluppatori che forniscono intere funzionalità, dall'interfaccia utente al database, si assumono una maggiore ownership del proprio codice. In Atlassian, promuoviamo la crescita degli sviluppatori full stack perché crediamo nella condivisione della conoscenza all'interno del team e in tutta l'azienda.
Codifica, cultura e sviluppo software Agile straordinario
Diventare Agile significa costruire un'eccellente cultura dello sviluppo nell'organizzazione. Continua a leggere per sapere di più sulle strategie di creazione di branch efficaci, sulle tecniche di test automatizzati, sulla continuous integration e sulla creazione di relazioni efficaci con altre parti del business. Nei prossimi articoli verranno approfonditi i cambiamenti specifici che migliaia di sviluppatori hanno introdotto durante la transizione alla metodologia Agile, traendone ampi vantaggi.
Il software Agile è un percorso e noi ti affianchiamo in ogni fase del processo.
Inizia gratuitamente con il modello di pianificazione dei progetti DevOps
Sviluppa, distribuisci e gestisci le applicazioni con un approccio agli strumenti aperto.