Salta ai contenuti

Cos'è lo sviluppo agile?

Agile è il nome ombrello per una famiglia di metodi costruiti attorno a una singola scommessa: il software è troppo imprevedibile per essere pianificato in dettaglio in anticipo, quindi rilascia in piccole fette, ascolta ciò che ti torna indietro e aggiusta costantemente.

Questa pagina copre il contesto. Se già conosci tutto questo, passa rapidamente a Come East Agile Tracker si mappa su agile.

Nel febbraio 2001, diciassette professionisti del software — Kent Beck, Martin Fowler, Robert Martin, Ron Jeffries e altri — si incontrarono in uno chalet sciistico nello Utah e misero per iscritto ciò che avevano in comune. Lo chiamarono il Manifesto Agile. Sono quattro righe:

Stiamo scoprendo modi migliori di sviluppare software, facendolo e aiutando gli altri a farlo. Grazie a questo lavoro siamo arrivati a dare valore a:

  • Gli individui e le interazioni più che i processi e gli strumenti
  • Il software funzionante più che la documentazione esaustiva
  • La collaborazione col cliente più che la negoziazione dei contratti
  • Rispondere al cambiamento più che seguire un piano

Ovvero, fermo restando il valore delle voci a destra, consideriamo più importanti le voci a sinistra.

Tutto qui. Una pagina di preambolo, dodici principi di supporto e le quattro righe sopra. È il documento più influente nella pratica software moderna.

Dietro i quattro valori, i dodici principi del manifesto chiariscono come “agile” appaia davvero giorno per giorno:

  1. La priorità più alta è soddisfare il cliente attraverso il rilascio anticipato e continuo di software di valore.
  2. Accogli i requisiti che cambiano, anche tardivi. I processi agili sfruttano il cambiamento per il vantaggio competitivo del cliente.
  3. Rilascia software funzionante di frequente — settimane piuttosto che mesi.
  4. Le persone del business e gli sviluppatori devono lavorare insieme quotidianamente.
  5. Costruisci i progetti attorno a individui motivati. Dai loro ciò di cui hanno bisogno e abbi fiducia che portino a termine il lavoro.
  6. Il modo più efficiente per trasmettere informazioni è la conversazione faccia a faccia.
  7. Il software funzionante è la misura principale del progresso.
  8. I processi agili promuovono uno sviluppo sostenibile — un ritmo costante, indefinitamente.
  9. L’attenzione continua all’eccellenza tecnica e alla buona progettazione accresce l’agilità.
  10. La semplicità — l’arte di massimizzare la quantità di lavoro non svolto — è essenziale.
  11. Le migliori architetture, requisiti e progettazioni emergono da team auto-organizzati.
  12. Il team riflette regolarmente su come diventare più efficace, poi si regola e si adatta.

“Agile” è un ombrello. Sotto di esso siedono diverse metodologie distinte:

  • eXtreme Programming (XP) — La più esigente della famiglia. Pair programming, TDD, integrazione continua, cliente on-site, piccole release. Vedi la nostra pagina su XP.
  • Scrum — Iterazioni a tempo definito chiamate sprint, daily standup, ruoli con nome (Product Owner, Scrum Master). Più leggero di XP sulle pratiche ingegneristiche.
  • Kanban — Visualizza il flusso di lavoro, limita il lavoro in corso, ottimizza il flusso. Nessun blocco temporale; pull invece di push.
  • Lean — Preso in prestito dal sistema produttivo di Toyota: elimina gli sprechi, ottimizza il tutto, rilascia velocemente, costruisci qualità dall’interno.

Questi metodi si sovrappongono e si combinano. La maggior parte dei team al lavoro pesca da tutti e quattro. East Agile Tracker ha opinioni orientate verso XP — vedi eXtreme Programming — ma gran parte di ciò che offre funziona per qualsiasi sfumatura di agile.

Alcuni equivoci persistenti che vale la pena nominare:

  • Agile non è “nessuna pianificazione.” I piani sono più piccoli e più brevi, ma la pianificazione è costante.
  • Agile non è “nessuna documentazione.” Scrivi ciò che serve. Il manifesto dice che il software funzionante è più prezioso della documentazione esaustiva — non che la documentazione sia un male.
  • Agile non è Scrum. Scrum è un metodo agile. Ce ne sono diversi.
  • Agile non è uno strumento. Nessuno strumento ti rende agile. Agile è un modo di lavorare. Gli strumenti (compreso questo) aiutano; non lo sostituiscono.

East Agile Tracker è progettato attorno ai principi qui sopra. Ecco la corrispondenza:

PrincipioCome il tracker lo supporta
Rilascio continuoIterazioni di 1–4 settimane; auto-pianificazione basata sulla velocity; le release come tipo di storia a pieno titolo.
Accogliere il cambiamentoRiordina il backlog in qualsiasi momento; le storie si spostano tra le iterazioni liberamente; nessun “blocco dell’iterazione.”
Il software funzionante come misuraLa velocity conta i punti accepted per default — conta solo il lavoro consegnato e funzionante.
Ritmo sostenibileLa velocity non è un obiettivo; è un’osservazione. Il sistema pianifica l’iterazione successiva con ciò che fai davvero.
RiflessioneAnalisi per iterazione: burndown, tasso di rifiuto, cycle time, proiezioni.
Team auto-organizzatiI ruoli sono volutamente minimi: owner / member / viewer. Decide il team.
SemplicitàIl pannello di dettaglio è una sola schermata. La board sta in una pagina. Resistiamo alle funzionalità che distraggono dal rilasciare.

Il manifesto fu scritto nel 2001. Da allora, lo sviluppo software ha acquisito un nuovo tipo di partecipante: gli agenti IA.

Pensiamo che gli agenti facciano parte del team agile — come partecipanti con nome, con i propri ruoli, che svolgono lavoro reale al fianco degli umani. I principi reggono ancora. Gli individui e le interazioni ora includono i partecipanti agenti. I team auto-organizzati ora includono il decidere quali agenti portare e cosa è loro consentito fare. La riflessione ora include il guardare i contributi degli agenti nel log delle attività e l’aggiustare ciò su cui stanno lavorando.

East Agile Tracker è costruito per rendere tutto questo pratico. Ogni storia può essere posseduta da un umano o da un agente. Ogni voce dell’audit log attribuisce l’attore reale. Ogni azione che un agente compie è visibile, revisionabile e revocabile.

Costruito da East Agile.