Agile Project Management
Report 5000 ufficiale: Manifesto Agile, Scrum (3 ruoli, 5 eventi, 3 artefatti), XP (TDD, pair programming), Kanban (WIP), Lean (7 principi/sprechi), SAFe 6.0, DevOps + 25 numeri + 15 trabocchetti.
1 Manifesto Agile e principi
Manifesto Agile (Snowbird, Utah, febbraio 2001)
17 firmatari (Beck, Fowler, Cockburn, Highsmith, Schwaber, Sutherland, Martin, ...). 4 valori cardine:
Individui e interazioni PIÙ CHE processi e strumenti
Software funzionante PIÙ CHE documentazione esaustiva
Collaborazione col cliente PIÙ CHE negoziazione contrattuale
Rispondere al cambiamento PIÙ CHE seguire un piano
I valori a destra hanno valore, ma quelli a sinistra hanno più valore.
12 Principi del Manifesto
- Soddisfazione cliente con consegne frequenti di software funzionante
- Accogliere i cambiamenti, anche tardivi
- Consegnare software funzionante frequentemente (settimane > mesi)
- Business e sviluppatori collaborano quotidianamente
- Persone motivate, ambiente di supporto, fiducia
- Conversazione faccia a faccia = metodo più efficiente
- Software funzionante = principale misura di progresso
- Sviluppo sostenibile (ritmo costante)
- Eccellenza tecnica e buon design
- Semplicità (massimizzare lavoro non fatto)
- Team auto-organizzati producono migliori architetture
- Riflessione regolare + adattamento (retrospettive)
2 Scrum (Schwaber & Sutherland)
Quadro
Framework agile più diffuso (~70% adoption Agile). Definito nello Scrum Guide (ultima versione 2020, edizione attuale).
3 Ruoli (Accountabilities)
- Product Owner — massimizza valore del prodotto, gestisce Product Backlog
- Scrum Master — facilita Scrum, rimuove impedimenti, coach
- Developers — auto-organizzati, costruiscono Increment
Il team Scrum totale: dimensione tipica 10 o meno persone.
5 Eventi
| Evento | Durata max | Scopo |
|---|---|---|
| Sprint | 1-4 settimane | Contenitore di tutti gli altri eventi, ciclo di sviluppo |
| Sprint Planning | 8 ore (Sprint 1 mese) | Pianifica cosa fare nello Sprint |
| Daily Scrum | 15 min | Sincronizzazione team, ispezione progresso |
| Sprint Review | 4 ore | Ispezione Increment con stakeholder |
| Sprint Retrospective | 3 ore | Ispezione di processo, miglioramento |
3 Artefatti + Commitment
- Product Backlog → commitment Product Goal
- Sprint Backlog → commitment Sprint Goal
- Increment → commitment Definition of Done (DoD)
Definition of Done (DoD)
Lista condivisa di criteri che un Increment deve soddisfare per essere considerato rilasciabile. Garantisce qualità e trasparenza.
Velocity
Misura quantità di lavoro completata per Sprint (in story point). Usata per stime, NON per confronti tra team.
3 XP (eXtreme Programming, Kent Beck 1999)
Filosofia
"Spingere agli estremi" pratiche di sviluppo riconosciute valide → maggior beneficio.
12 Pratiche XP originali
- Planning Game (planning collaborativo)
- Small Releases (rilasci piccoli e frequenti)
- Metaphor (vocabolario condiviso del sistema)
- Simple Design (design semplice)
- Testing (TDD — Test-Driven Development)
- Refactoring (miglioramento continuo del codice)
- Pair Programming (2 dev su una postazione)
- Collective Ownership (codice di tutti)
- Continuous Integration (build + test automatici frequenti)
- 40-Hour Week (sviluppo sostenibile)
- On-Site Customer (cliente in sede)
- Coding Standards (convenzioni codice)
TDD (Test-Driven Development) — ciclo Red-Green-Refactor
- Red: scrivi un test che fallisce
- Green: scrivi il codice minimo per passarlo
- Refactor: pulisci codice mantenendo i test verdi
Pair Programming — vantaggi
Code review continua, condivisione conoscenza, riduzione difetti, mentoring. Driver scrive, Navigator osserva e suggerisce.
4 Kanban
Origine
Sistema giapponese (Toyota, Taiichi Ohno, anni '40-50) — significato letterale "cartellino visuale". Adattato al software da David Anderson (2010).
6 Pratiche Kanban
- Visualizzare il flusso (Kanban Board)
- Limitare il WIP (Work In Progress) — colonne con numero massimo card
- Gestire il flusso (ottimizzare lead time)
- Rendere esplicite le policy
- Implementare loop di feedback
- Migliorare collaborativamente, evolvere sperimentalmente
Kanban Board tipico
| To Do | In Progress (WIP=3) | Review (WIP=2) | Done |
|---|---|---|---|
| Card pendenti | Card in lavorazione | Card in revisione | Card completate |
Metriche Kanban
- Lead Time: tempo da inizio richiesta a consegna
- Cycle Time: tempo lavorazione effettiva
- Throughput: numero card completate per unità tempo
- CFD (Cumulative Flow Diagram) — visualizza accumuli/colli di bottiglia
Scrumban
Ibrido Scrum + Kanban — sprint Scrum con board Kanban e WIP limit.
5 Lean Software Development
Origine
Adattamento del Toyota Production System (Lean Manufacturing, 1950) al software, formalizzato da Mary e Tom Poppendieck (2003).
7 Principi Lean
- Eliminate waste (ridurre sprechi)
- Build quality in (costruisci la qualità dentro il processo)
- Create knowledge (crea conoscenza, learning)
- Defer commitment (rimanda decisioni al momento opportuno)
- Deliver fast (consegna rapidamente)
- Respect people (rispetta le persone)
- Optimize the whole (ottimizza il sistema, non le parti)
7 Sprechi (Muda)
- Lavoro parzialmente fatto
- Funzionalità extra non richieste
- Re-apprendimento (informazione persa)
- Handoff (passaggio di consegne)
- Ritardi
- Task switching (cambio contesto)
- Difetti (bug)
Value Stream Mapping
Mappatura del flusso di valore dall'idea al deployment, identifica colli di bottiglia e sprechi.
6 Scalabilità Agile
Framework principali
| Framework | Caratteristica |
|---|---|
| SAFe (Scaled Agile Framework) | Più completo e prescrittivo, livelli Team/Program/Large Solution/Portfolio |
| LeSS (Large-Scale Scrum) | Estende Scrum minimizzando aggiunte |
| Nexus | 3-9 team Scrum integrati, Nexus Integration Team |
| Disciplined Agile (DA) | Toolkit ibrido (PMI dal 2019) |
| Spotify Model | Squad/Tribe/Chapter/Guild |
SAFe (Scaled Agile Framework) — versione attuale 6.0 (2023)
- Team Level: Scrum/XP/Kanban
- Program Level: ART (Agile Release Train) — 50-125 persone, PI Planning ogni 8-12 settimane
- Large Solution Level: per multipli ART
- Portfolio Level: lean budgeting, value streams strategici
7 DevOps, CI/CD e agilità
DevOps
Cultura + pratiche che uniscono Development e Operations → consegna rapida e affidabile. Pilastri: CALMS (Culture, Automation, Lean, Measurement, Sharing).
CI/CD pipeline
CI (Continuous Integration): merge frequente → build + test automatici.
CD (Continuous Delivery / Deployment): rilascio automatico.
Tool: Jenkins, GitLab CI, GitHub Actions, CircleCI, ArgoCD.
Metriche DORA (DevOps Research and Assessment)
- Deployment Frequency
- Lead Time for Changes
- Mean Time to Restore (MTTR)
- Change Failure Rate
8 25 numeri chiave
| # | Dato | Valore |
|---|---|---|
| 1 | Anno Manifesto Agile | 2001 (Snowbird, Utah) |
| 2 | Firmatari Manifesto | 17 |
| 3 | Valori Manifesto Agile | 4 |
| 4 | Principi Manifesto Agile | 12 |
| 5 | Ruoli Scrum | 3 |
| 6 | Eventi Scrum | 5 |
| 7 | Artefatti Scrum | 3 |
| 8 | Durata Sprint max | 1 mese (4 settimane) |
| 9 | Daily Scrum durata | 15 min |
| 10 | Sprint Review max (Sprint 1 mese) | 4 ore |
| 11 | Sprint Retrospective max | 3 ore |
| 12 | Sprint Planning max | 8 ore |
| 13 | Team Scrum dimensione | 10 o meno |
| 14 | Pratiche XP originali | 12 |
| 15 | Ciclo TDD | Red-Green-Refactor |
| 16 | Pratiche Kanban | 6 |
| 17 | Origine Kanban | Toyota anni '40-50 |
| 18 | Principi Lean Software | 7 (Poppendieck 2003) |
| 19 | Sprechi Muda | 7 |
| 20 | Versione Scrum Guide attuale | 2020 |
| 21 | SAFe versione attuale | 6.0 (2023) |
| 22 | ART (Agile Release Train) dimensione | 50-125 persone |
| 23 | PI Planning frequenza | 8-12 settimane |
| 24 | Pilastri DevOps | CALMS |
| 25 | Metriche DORA | 4 |
9 15 trabocchetti d'esame
| # | Trabocchetto | Risposta corretta |
|---|---|---|
| 1 | "Manifesto Agile esclude documentazione" | FALSO — privilegia software funzionante MA "documentazione ha valore" |
| 2 | "Scrum ha 4 ruoli" | FALSO — 3 ruoli (PO, SM, Developers) |
| 3 | "Daily Scrum dura 30 minuti" | FALSO — 15 minuti time-boxed |
| 4 | "Sprint può durare 6 mesi" | FALSO — max 1 mese (4 settimane) |
| 5 | "Scrum Master è il capo del team" | FALSO — è un facilitatore/coach, team auto-organizzato |
| 6 | "Velocity per confrontare team" | FALSO — usata SOLO per il singolo team (no benchmarking esterno) |
| 7 | "TDD = scrivi prima il codice poi i test" | FALSO — TDD = prima i test (che falliscono), poi codice |
| 8 | "Pair Programming raddoppia i costi" | FALSO — riduce difetti, condivide conoscenza, ROI positivo nel medio periodo |
| 9 | "Kanban è un'evoluzione di Scrum" | FALSO — Kanban ha origine Toyota (anni '40), pre-Scrum |
| 10 | "WIP illimitato in Kanban" | FALSO — WIP limitato è principio fondamentale |
| 11 | "Lean = solo per manifattura" | FALSO — adattato al software dai Poppendieck (2003) |
| 12 | "DevOps = solo automazione strumenti" | FALSO — anche cultura, lean, condivisione (CALMS) |
| 13 | "Sprint Review = retrospettiva" | FALSO — Review = ispezione prodotto con stakeholder; Retro = ispezione processo del team |
| 14 | "SAFe è uguale a Scrum" | FALSO — SAFe è framework di scaling con livelli multipli |
| 15 | "Definition of Done si decide a fine Sprint" | FALSO — DoD si stabilisce prima ed è criterio per Increment |