Storia del Manifesto Agile
Il Manifesto Agile e i dodici principi del software Agile sono state le conseguenze della frustrazione del settore negli anni '90. L'enorme ritardo tra i requisiti aziendali (le applicazioni e le funzionalità richieste dai clienti) e la fornitura di tecnologia che rispondeva a tali esigenze ha portato all'annullamento di molti progetti. Il business, i requisiti e i clienti sono cambiati durante questo periodo di ritardo e il prodotto finale non soddisfaceva più le esigenze attuali. I modelli di sviluppo software di allora, guidati dal modello a cascata, non soddisfacevano la domanda di velocità e non sfruttavano la rapidità con cui il software poteva essere modificato.
Nel 2000, un gruppo di diciassette "leader del pensiero", tra cui Jon Kern, Kent Beck, Ward Cunningham, Arie van Bennekum e Alistair Cockburn, si sono incontrati prima in un resort in Oregon e successivamente, nel 2001, al The Lodge at Snowbird Ski Resort nello Utah. Alla seconda riunione sono stati scritti formalmente il Manifesto Agile e i dodici principi. Il Manifesto recita:
"Stiamo scoprendo modi migliori per sviluppare
software facendolo e aiutando gli altri a farlo.
Attraverso questo lavoro siamo arrivati a valorizzare:
"Individui e interazioni su processi e strumenti
Software funzionante sulla documentazione completa
Collaborazione con i clienti sulla negoziazione del contratto
Rispondere al cambiamento anziché seguire un piano
"Se si dà valore agli elementi sulla destra,
anche quelli sulla sinistra acquisiscono maggior valore."
Per trovare un'ampia selezione di modelli Agile gratuiti per il tuo prossimo progetto Agile, visita i migliori modelli Excel di gestione dei progetti Agile.
I quattro valori del Manifesto Agile
Il Manifesto Agile è composto da quattro valori fondamentali e 12 principi di supporto che guidano l'approccio Agile allo sviluppo software. Ogni metodologia Agile applica i quattro valori in modo diverso, ma tutte si affidano a loro per guidare lo sviluppo e la fornitura di software funzionanti di alta qualità.
1. Individui e interazioni su processi e strumenti
Il primo valore del Manifesto Agile è "Individui e interazioni su processi e strumenti." Valutare le persone come più importanti dei processi o degli strumenti: un concetto facile da capire perché sono le persone che rispondono alle esigenze aziendali e guidano il processo di sviluppo. Se il processo o gli strumenti guidano lo sviluppo, il team sarà meno reattivo al cambiamento e avrà più difficoltà a soddisfare le esigenze dei clienti. La comunicazione è un esempio della differenza tra la valutazione degli individui rispetto ai processi. Nel caso degli individui, la comunicazione è fluida e si verifica quando si presenta una necessità. Nel caso del processo, la comunicazione è programmata e richiede contenuti specifici.
2. Software funzionante sulla documentazione completa
Storicamente, venivano spese enormi quantità di tempo per documentare il prodotto per lo sviluppo e la consegna finale. Specifiche tecniche, requisiti tecnici, prospetto tecnico, documenti di progettazione dell'interfaccia, piani di prova, piani di documentazione e approvazioni necessarie per ciascuno di essi. L'elenco era ampio e causava lunghi ritardi nello sviluppo. Agile non elimina la documentazione, ma la semplifica in una forma che fornisce allo sviluppatore tutto il necessario per svolgere il lavoro senza perdersi nelle minuzie. Agile documenta i requisiti come user story, che sono sufficienti per uno sviluppatore di software per iniziare la creazione di una nuova funzione.
Il Manifesto Agile valorizza la documentazione, ma valorizza ancora di più il software funzionante.
3. Collaborazione con i clienti sulla negoziazione del contratto
La negoziazione è il periodo in cui il cliente e il product manager rifiniscono i dettagli di una consegna, con punti di possibile rinegoziazione durante le varie fasi. La collaborazione è un concetto completamente diverso. Con modelli di sviluppo come quello a cascata, i clienti negoziano i requisiti del prodotto, spesso in modo molto dettagliato, prima di iniziare il lavoro. Ciò significa che il cliente è stato coinvolto nel processo di sviluppo prima del suo inizio e dopo la sua fine, ma non durante il processo. Il Manifesto Agile descrive un cliente che è impegnato e collabora durante tutto il processo di sviluppo. Ciò rende molto più facile per il team di sviluppatori soddisfare le loro esigenze del cliente. I metodi Agile possono includere il cliente a intervalli per demo periodiche, ma un progetto potrebbe anche avere facilmente un utente finale come parte quotidiana del team, facendolo partecipare a tutte le riunioni per assicurarsi che il prodotto soddisfi le sue esigenze aziendali.
4. Rispondere al cambiamento anziché seguire un piano
Lo sviluppo tradizionale di software considerava il cambiamento come una spesa, quindi da evitare. L'intento era quello di sviluppare piani dettagliati ed elaborati, con un insieme definito di funzionalità e con tutto che avesse sostanzialmente la stessa priorità di tutto, con un gran numero di dipendenze dalla consegna in un certo ordine, in modo che il team potesse lavorare sul pezzo successivo del puzzle.
Con Agile, la brevità di un'iterazione significa che le priorità possono essere spostate da un'iterazione all'altra e che nuove funzionalità possono essere aggiunte all'iterazione successiva. La visione di Agile prevede che i cambiamenti migliorino sempre un progetto e che forniscano un valore aggiuntivo.
Forse nulla illustra l'approccio positivo di Agile al cambiamento meglio del concetto di Method Tailoring, definito in An Agile Information Systems Development Method in uso come: "Un processo o capacità in cui gli agenti umani determinano un approccio di sviluppo di sistema per una specifica situazione di progetto attraverso cambiamenti reattivi e interazioni dinamiche tra contesti, intenzioni e frammenti di metodo." Le metodologie Agile consentono al team Agile di modificare il processo e renderlo adatto al team piuttosto che viceversa.
I dodici principi del Manifesto Agile
I dodici principi sono i principi guida per le metodologie incluse sotto il titolo "The Agile Movement." Descrivono una cultura in cui il cambiamento è benvenuto e il cliente è il fulcro del lavoro. Dimostrano anche l'intento del movimento, come descritto da Alistair Cockburn, uno dei firmatari del Manifesto Agile, che è quello di portare lo sviluppo in linea con le esigenze aziendali.
I dodici principi dello sviluppo agile includono:
- Soddisfazione del cliente attraverso la consegna tempestiva e continua del software - I clienti sono più felici quando ricevono software funzionante a intervalli regolari, piuttosto che aspettare lunghi periodi di tempo tra le release.
- Adattamento dei requisiti in continua evoluzione durante il processo di sviluppo - La possibilità di evitare ritardi in caso di modifica di un requisito o di una richiesta di funzionalità.
- Consegna frequente di software funzionante - Scrum si adatta a questo principio poiché il team opera in sprint o iterazioni del software che garantiscono la consegna regolare di software funzionante.
- Collaborazione tra gli stakeholder aziendali e gli sviluppatori durante tutto il progetto - Le decisioni migliori vengono prese quando l'azienda e il team tecnico sono allineati.
- Supporto, fiducia e motivazione delle persone coinvolte - I team motivati hanno maggiori probabilità di svolgere un lavoro migliore rispetto ai team insoddisfatti.
- Interazioni faccia a faccia - La comunicazione ha più successo quando i team di sviluppo sono co-localizzati.
- Il software funzionante è la misura principale del progresso - La fornitura di software funzionale al cliente è il fattore finale che misura i progressi.
- Processi Agile per supportare un ritmo di sviluppo coerente - I team stabiliscono una velocità ripetibile e manutenibile alla quale possono fornire software funzionanti e la ripetono a ogni release.
- L'attenzione ai dettagli tecnici e al design migliora l'agilità - Le giuste competenze e un buon design assicurano che il team possa mantenere il ritmo, migliorare costantemente il prodotto e sostenere il cambiamento.
- Semplicità - Sviluppare quanto basta per portare a termine il lavoro presente.
- I team auto-organizzati incoraggiano grandi architetture, requisiti e design - Membri del team esperti e motivati che hanno potere decisionale, assumono la proprietà, comunicano regolarmente con gli altri membri del team e condividono idee che forniscono prodotti di qualità.
- Riflessioni regolari su come diventare più efficaci - Auto-miglioramento, ottimizzazione dei processi, avanzamento delle competenze e tecniche che aiutano i membri del team a lavorare in modo più efficiente.
L'intenzione di Agile è quella di allineare lo sviluppo alle esigenze aziendali e il successo di questo approccio è evidente. I progetti Agile sono incentrati sul cliente e incoraggiano la guida e la partecipazione dei clienti stessi. Di conseguenza, Agile è diventato una visione generale dello sviluppo software in tutto il settore del software e, anzi, un settore a sé stante.
Usa Smartsheet per iniziare a utilizzare Agile
Smartsheet è uno strumento di gestione dei compiti e dei progetti ispirato ai fogli di calcolo, con ottime funzionalità di collaborazione e comunicazione fondamentali per la gestione dei progetti Agile. Puoi apportare aggiornamenti in tempo reale, avvisare il tuo team delle nuove modifiche e condividere il tuo piano con gli stakeholder interni ed esterni per aumentare la trasparenza e mantenere tutti sulla stessa lunghezza d'onda.
Poiché Smartsheet è basato sul cloud, è possibile monitorare i requisiti del progetto, accedere ai documenti, creare tempistiche e inviare avvisi praticamente da qualsiasi luogo. Scegli tra un'ampia gamma di visualizzazioni smart, griglia, calendario, Gantt e dashboard per gestire i progetti come desideri. Inoltre, la nuovissima visualizzazione cartellino offre ai team la possibilità di lavorare, comunicare e collaborare in Smartsheet in modo più visuale. La visualizzazione cartellino consente infatti di focalizzare l'attenzione con schede dettagliate, dare una prospettiva con viste flessibili e dare priorità e regolare il lavoro in modo più visivo. Agisci sulle attività e modifica lo stato del lavoro trascinando e rilasciando i cartellini in corsie per condividere immediatamente le decisioni con l'intero team.