Metodologia AGILE - UD 1 Metodologia AGILE • • • • • • • • • Metodologie di PM L’approccio Waterfall La metodologia Agile La pianificazione Agile Team Agile I vantaggi dell’Agile Gli svantaggi dell’Agile Waterfall vs Agile Framework Agile Metodologie di Project Management Diverse sono le metodologie di Project Management. Vediamo le principali: 1. PMI 2. Percorso Critico 3. Waterfall 4. Agile 5. Scrum 6. Kanban 7. Lean 8. Six Sigma 9. Rapid application development 10.Prince 2 Metodologie di PM - PMI La pianificazione è la chiave del metodo PMI (Project Management Institute). Il PMI suddivide il progetto in 5 fasi: concezione e avvio, pianificazione, esecuzione, compimento e monitoraggio e chiusura. Le fasi sono organizzate in un ordine progressivo cosicché ogni fase sia completata prima dell'inizio della successiva. Il metodo è applicato su ogni tipologia di progetto. Metodologie di PM – Percorso Critico Questa metodologia si basa su un algoritmo. Nel metodo del percorso critico, si seguono tre fasi: determinare le attività, impostare le dipendenze tra attività e determinare il tempo per ciascuna attività che verrà svolta. Il metodo del percorso critico permette di verificare le attività che incidono sui tempi del progetto e consente di liberarti di alcune attività che potrebbero rallentare il progetto. Il metodo è applicato su ogni tipologia di progetto. Metodologie di PM – Waterfall Il modello a cascata come nel metodo PMI dà molta importanza alla fase di pianificazione. Bisogna conoscere i tempi di consegna esatti, il budget e fissare scadenze precise. Il progetto si divide in fasi e ognuna dipende dal completamento della precedente. Il metodo si applica prevalentemente ai progetti software. Metodologie di PM – Agile La metodologia Agile è una delle metodologie più popolari oggigiorno. Radicata nello sviluppo del software, la metodologia Agile implica la divisione del progetto in iterazioni e, successivamente, si lavora su un’iterazione alla volta mentre si riceve costantemente un flusso di feedback. Il metodo nasce per i progetti software ma viene utilizzato anche nei progetti di innovazione digitale. Metodologie di PM – SCRUM Scrum è una metodologia di sviluppo software molto popolare. Si basa sulla metodologia Agile, si basa sull'idea di piccole iterazioni, ma sono presenti alcuni step aggiuntivi e risorse professionali specifiche. Il metodo nasce per i progetti software ma viene utilizzato anche nei progetti di innovazione digitale. Metodologie di PM – Kanban Kanban è un altro metodo che può essere utilizzato in qualsiasi area di business. Proveniente dal Giappone, la scheda Kanban viene usata per dividere visivamente il progetto in incarichi e vedere lo stato di ognuno di questi. La scheda Kanban di solito include tre segmenti: da fare, in corso e fatto ma è possibile organizzarli e rinominarli come si preferisce. Il metodo è applicato su ogni tipologia di progetto. Metodologie di PM – Lean Lean è più una filosofia di lavoro che una metodologia. Il messaggio chiave della filosofia Lean è: lavorare in modo più intelligente e non più intensamente. Lean definisce tutte le cose che dovrebbero essere eliminate dalla tua vita, in modo tale da renderti più produttivo. Queste sono Muda, Mura e Muri.. Il metodo è applicato su ogni tipologia di progetto. Metodologie di PM – Six Sigma Il Six Sigma, metodologia relativamente nuova, mira a trovare il perfetto equilibrio tra efficienza del progetto, obiettivi aziendali e morale dei dipendenti. L'idea chiave di questo metodo è prevenire gli errori prima ancora che si verifichino. Un'altra cosa importante nel metodo Six Sigma è il pensiero statistico, infatti, i membri del team dovrebbero conoscere la statistica avanzata e il project management. Il metodo è applicato su ogni tipologia di progetto. Metodologie di PM – Six Sigma Il Six Sigma, metodologia relativamente nuova, mira a trovare equilibrio tra efficienza del progetto, obiettivi aziendali e morale dei dipendenti. L'idea chiave di questo metodo è prevenire gli errori prima ancora che si verifichino. Il metodo è usato per progetti che hanno degli obiettivi chiari e un team decisionale solido. Metodologie di PM – Rapid application development Lo sviluppo software ci ha dato un’infinità di metodologie di project management e il Rapid application development è una di queste. Questo è un metodo basato su un'iterazione costante, proprio come Agile e Scrum. Questo metodo funziona meglio per progetti altamente adattabili che possono essere migliorati praticamente all'infinito. Metodologie di PM – PRINCE2 Il metodo PRINCE2 descrive nel dettaglio ogni processo con i suoi input fondamentali, gli output e gli specifici obiettivi e attività da realizzare per ottenere un controllo di eventuali deviazioni dal piano previsto. I cicli sono suddivisi in modo perfettamente gestibile, e il metodo permette di controllare efficacemente le risorse. Nato per i progetti IT è applicabile a tutti i progetti. L’approccio Waterfall L’approccio cosiddetto “Waterfall” – a cascata – prevede uno sviluppo sequenziale in fasi, le quali di fatto compongono il ciclo di vita del progetto software. L’approccio Waterfall I vantaggi dell’approccio Waterfall sono: • Requisiti definiti, concordati e formalizzati; • Possibili difetti o rischi sono già valutati nelle fasi iniziali del progetto; • Documentazione redatta dettagliata e puntuale; • Anche dei collaboratori non esperti possono gestire il progetto data la documentazione dettagliata disponibile. L’approccio Waterfall Gli svantaggi di questo approccio sono invece i seguenti: • Le attività di analisi e pianificazione possono richiedere molto tempo e ritardare l’avvio del progetto; • I requisiti, appena formalizzati, possono venire modificati solo attraverso un altro processo, che richiede tempo; • Durante l’elaborazione del progetto, possono insorgere nuove esigenze o nuovi strumenti per i quali potrebbe essere necessaria più flessibilità. L’approccio Waterfall Un approccio tradizionale, com’è ad esempio il Waterfall, funziona bene in situazioni che hanno un livello relativamente basso di incertezza e in cui la prevedibilità, la pianificazione e il controllo sono fondamentali. L’approccio Waterfall Qui l’esempio migliore può essere la costruzione di un ponte che deve necessariamente seguire sempre uno stesso sistema. Metodologia AGILE La metodologia Agile è una metodologia di project management che utilizza cicli di sviluppo brevi, denominati “sprint”, per concentrarsi sul miglioramento continuo nello sviluppo di un prodotto o servizio. Metodologia AGILE Alcune situazioni in cui è ottimo l’utilizzo di Agile: • Per start up in cui non è possibile fare una previsione di budget e definire le tempistiche. • Quando un cliente deve lanciare il prodotto e ha fretta di commercializzarlo. • Per aziende che vogliono diventare customercentriche e cambiare approccio e conoscenza del cliente. • Per progetti in cui si prevedono modifiche che verranno apportate durante il ciclo di sviluppo. Metodologia AGILE • Per progetti che non hanno bisogno di una pianificazione dettagliata e precisa. • Per progetti che non necessitano approvazioni ad ogni stadio dello sviluppo del prodotto. • Per aziende che vogliono introdurre innovazione continua. • Per le organizzazioni che vogliono trasformare l’intera azienda, non un reparto aziendale o un team soltanto. • In ogni progetto di digital transformation. Metodologia AGILE Punto di partenza di questa nuova metodologia è Il Manifesto Agile. Il Manifesto Agile nasce nel 2001 dalla collaborazione di 17 professionisti del software. Metodologia AGILE Il loro obiettivo era quello di definire i valori e i principi alla base dello sviluppo software in un contesto in continua evoluzione. Il manifesto si pone in contrapposizione ai metodi classici che non sempre si erano rivelati efficaci, e vuole proporre una nuova visione di organizzazione dei processi di lavoro. Metodologia AGILE Metodologia AGILE Esistono diversi metodi Agile, ma Agile stesso non è una vera e propria metodologia o un framework. È un insieme di valori e principi. Questo è il motivo per cui è incredibilmente flessibile e può essere applicato da diverse organizzazioni. L'implementazione dei 12 principi Agile è esattamente il modo in cui lo costruisci. Metodologia AGILE 12 sono i principi chiave che guidano la gestione del progetto secondo la metodologia Agile. 1. 2. 3. 4. 5. 6. 7. Soddisfazione del cliente Evoluzione Rilasci frequenti Team integrati e coesi Team motivati sugli obiettivi Riunioni costanti Software funzionante 8. Processi agili 9. Eccellenza 10. Semplicità 11. Team auto organizzati 12. Cambiamento continuo Metodologia AGILE – Soddisfazione del cliente Soddisfa i clienti attraverso rilasci anticipati e continui. I clienti saranno più coinvolti perché otterranno il valore per cui stanno pagando più frequentemente. Applicabile anche per progetti fuori dello sviluppo del software. Metodologia AGILE – Evoluzione Le richieste di modifica dovrebbero essere ben accette anche nelle ultime fasi dell'esecuzione del progetto. Il testo originale del secondo dei principi Agile afferma che il tuo team ha bisogno di "accogliere con favore i requisiti in evoluzione, anche in fase avanzata di sviluppo. I processi Agili sfruttano il cambiamento per il vantaggio competitivo del cliente". Metodologia AGILE – Rilasci frequenti Il terzo principio di gestione dei progetti Agile afferma: "fornisci software funzionante frequentemente, da un paio di settimane a un paio di mesi, con una preferenza per la tempistica più breve". Il suo obiettivo principale è ridurre le dimensioni dei lotti utilizzate per elaborare il lavoro. Metodologia AGILE – Team integrati e coesi Agile si affida a team interfunzionali per facilitare la comunicazione tra i diversi stakeholder del progetto. L'obiettivo è creare una sincronizzazione tra le persone che creano valore e coloro che lo pianificano o lo vendono. In questo modo, puoi semplificare la collaborazione interna e migliorare le prestazioni dei tuoi processi. Metodologia AGILE – Team motivati sugli obiettivi La logica alla base del quinto principio Agile è che dando potere ai membri del team motivati, i progetti saranno completati più velocemente e con una migliore qualità. Come afferma il testo originale del manifesto Agile «è necessario costruire progetti attorno a individui motivati». Dare loro l'ambiente e il supporto di cui hanno bisogno e fidarsi di loro per portare a termine il lavoro". Metodologia AGILE – Riunioni costanti Il metodo più efficiente ed efficace per trasmettere informazioni a e all'interno di un team di sviluppo è la conversazione faccia a faccia. Per fortuna, con lo sviluppo della tecnologia, si può interpretare il "faccia a faccia" a una comunicazione "sincrona" o comunque diretta. Quindi, finché hai un modo per raggiungere rapidamente il tuo team e discutere di questioni di lavoro senza rimbalzare avanti e indietro e-mail per giorni, sei a posto. Metodologia AGILE – Software funzionante Il settimo dei principi fondamentali di Agile è piuttosto semplice. Non importa quante ore di lavoro hai investito nel tuo progetto, quanti bug sei riuscito a correggere o quante righe di codice ha scritto il tuo team. Se il risultato del tuo lavoro non è come si aspetta il tuo cliente, sei nei guai Metodologia AGILE – Processi Agili La formulazione precisa di questo principio è "I processi Agili promuovono lo sviluppo sostenibile. Gli sponsor, gli sviluppatori e gli utenti dovrebbero essere in grado di mantenere un ritmo costante indefinitamente". L’obiettivo è evitare il sovraccarico e ottimizzare il modo di lavorare in modo da rispondere al cambiamento senza richiedere atti eroici da parte del tuo team. Metodologia AGILE – Eccellenza L'attenzione continua all'eccellenza tecnica e al buon design migliora l'agilità. In un contesto di sviluppo, questo principio consente ai team di creare non solo software funzionante ma anche un prodotto stabile di alta qualità. Quando mantieni l'eccellenza operativa, avrai meno problemi a reagire ai cambiamenti e a mantenere l'agilità. Metodologia AGILE – Semplicità Il contenuto originale di questo principio può creare un po' di confusione in quanto afferma: "La semplicità, l'arte di massimizzare la quantità di lavoro non svolto, è essenziale". Se puoi fare qualcosa in modo semplice, perché perdere tempo a complicarla? I tuoi clienti non stanno pagando per la quantità di impegno che investi. Quando implementi Agile ed evita di fare qualcosa solo per il gusto di farlo. Metodologia AGILE – Team auto organizzati Quando viene fornita la libertà, i team motivati generano il massimo valore per il cliente. Le migliori architetture, requisiti e progetti emergono da team che si auto-organizzano". Metodologia AGILE – Cambiamento continuo L'ultimo dei principi di gestione Agile è correlato alla valutazione delle prestazioni e all'identificazione di margini di miglioramento. La versione del principio afferma: "A intervalli regolari, la squadra riflette su come diventare più efficace, quindi si sintonizza e regola di conseguenza il proprio comportamento" . Metodologia AGILE L’approccio Agile crea un flusso di lavoro in cui l'obiettivo è fornire continuamente piccoli pezzi di lavoro ai clienti finali e ottenere il loro feedback il più velocemente possibile. In questo modo, il team può adattarsi ai cambiamenti emergenti che inevitabilmente si verificano nella maggior parte dei progetti di knowledge work al giorno d'oggi. Metodologia AGILE Metodologia AGILE Metodologia AGILE Metodologia AGILE Metodologia AGILE Tradizionalmente, il lavoro è gestito in modo sequenziale e lineare, composto da diverse fasi. Nessuna fase inizia a meno che la precedente non sia completata. Questo è noto come l'approccio "a cascata (waterfall)" alla gestione dei progetti. Metodologia AGILE Trasparenza e visibilità sono alla base dei progetti Agile. Uno strumento utile per definire un semplice processo di mappatura è la "lavagna Kanban". Il flusso di lavoro si divide in tre fasi di base: - "Da fare" (lavoro che deve essere svolto) - "In corso" (il lavoro è in movimento) - "Completato" (il lavoro è completato). Metodologia AGILE Ciò consente di tenere traccia del lavoro mentre matura, vedere dove rallenta e cosa potrebbe impedirgli di spostarsi a valle. La pianificazione Agile Come abbiamo già affermato, la pianificazione Agile è iterativa. Ciò significa che sviluppi e modifichi il tuo piano più volte, se lo ritieni necessario. L'obiettivo è investire tempo nella pianificazione nel miglior momento possibile e adattarsi facilmente ai cambiamenti se si verificano durante la fase di esecuzione. La pianificazione Agile Queste sono le caratteristiche più importanti di un buon piano Agile: - Obiettivo dagli occhi di un cliente - Mancanza di dettagli quando può essere evitata - Consegne frequenti - Intervalli di date anziché stime di date singole - Concentrati sul lavoro e non sul lavoratore - Nessuna fase separata per l'assicurazione della qualità (controlla mentre produci e non dopo) - Piani a due livelli - Basato sui dati storici e sulle simulazioni La pianificazione Agile I piani di progetto Agili hanno caratteristiche simili: - L'obiettivo dagli occhi di un cliente (valore) - Mancanza di dettagli (impegnati il più tardi possibile) - Consegne frequenti (piccoli lotti) - Intervalli di date invece di stime di data - Concentrarsi sul lavoro e non sul lavoratore (il team è responsabile) - Nessuna fase separata per la garanzia della qualità (la qualità è incorporata) - Piani a due livelli (le tempistiche per le iniziative, le attività non hanno date di inizio/fine) - Basato sui dati (basato su dati storici e simulazioni) La pianificazione Agile Nel mondo Agile, ci sono vari modi per organizzare il lavoro. Alcuni dei termini più comunemente usati sono, ad esempio: - Temi e Iniziative - Epiche e Progetti - Storie degli utenti, Risultati finali e Attività - Sprint La pianificazione Agile La pianificazione Agile – Temi e Iniziative I Temi e le Iniziative sono considerati come obiettivi a lungo termine con un focus più ampio che avrà l'impatto più significativo sulle prestazioni dell’azienda. Sono come obiettivi aziendali strategici sotto forma di articoli. I temi o le iniziative Agile sono in cima alla gerarchia di suddivisione del lavoro. La pianificazione Agile – Epiche e Progetti Le Epiche ed i Progetti in Agile sono una raccolta di più attività o storie utente. Nella gestione dei progetti Agile, le epiche sono corpi di lavoro più ampi, che possono essere gli elementi costitutivi delle iniziative/temi sopra menzionati. Dovrebbero essere più specifici e misurabili in modo da poter vedere il loro contributo all'obiettivo principale. La pianificazione Agile – Storie degli utenti Le Storie degli utenti sono il pezzo più piccolo della catena. Si tratta di qualsiasi cosa su cui i team lavorano (nuova funzionalità, contenuto, disegno, prototipo, documento legale, ecc.). Si usano i termini Storie degli utenti (nello sviluppo del software), Risultati finali (nel marketing) o semplicemente Attività a questo livello. La pianificazione Agile – Sprint Le Storie degli utenti devono essere implementate in uno Sprint. Uno Sprint deve durare da due settimane ad un massimo di due mesi. La pianificazione Agile – Esempio Immaginiamo che si voglia penetrare in un nuovo mercato, ad esempio il mercato del software di gestione dei progetti Agile. Tale Tema può essere diviso in Epiche e/o Progetti più piccoli e attuabili come ad esempio: - Implementazione nuove funzionalità - Migliorare le funzionalità esistenti Analizzando le Epiche è possibile identificare delle Storie degli utenti La pianificazione Agile – Esempio La pianificazione Agile – Esempio Suddividere il lavoro in una dimensione più piccola aiuterà il team a costruire una struttura chiara delle attività e a concentrarsi sul completamento del lavoro molto più velocemente. D'altra parte, l'intera struttura direzione guida all'organizzazione . fornirà una La pianificazione Agile – Esempio La Agile Work Breakdown consente di: 1. Visualizzare i piani del top management e le iniziative aziendali in cui si visualizzano tutte le iniziative/temi strategici dell'azienda. 2. Tracciare in bacheche le epiche e i progetti. In cima a queste bacheche, i membri del team creano una sequenza temporale per tenere traccia delle epopee/progetti Agile specifici. 3. Tracciare in basso il flusso dei più piccoli elementi di lavoro/compiti/user story. Agile Work Breakdown – Esempio Team AGILE Un team Agile non ha un team leader, non ha un project manager che assegna i compiti. Un team Agile si auto-organizza, è autonomo e ha il potere di prendere decisioni dirette. Team AGILE I team di formano su base volontaria e le persone sono libere di scegliere a che progetto lavorare e conseguentemente a quale team appartenere. Le organizzazione Agile per costituire un team partono da una Call To Action (CTA). Team AGILE I team Agile sono multidisciplinari e la dimensione ideale è tra i 10 e 15 membri. Se raggiungono la dimensione massima questi team si dividono. Team AGILE I Team Agile hanno una struttura decentrata, autonoma e responsabile end to end del valore che creano al cliente finale. Team AGILE Scopo e valori sono chiari e condivisi e sono spesso il collante tra tutti i team che hanno obiettivi propri all’interno dell’organizzazione. Team AGILE I team vanno e vengono, si formano e si dissolvono per seguire nuovi progetti o per soddisfare i bisogni dei clienti. Team AGILE Le tecnologie oggi permettono a questi team autonomi di essere connessi da piattaforme ICT su cui scambiano informazioni, condividono progetti, comunicano e che promuovono la trasparenza di cui Agile si nutre. Agile Sprint Lo sprint è composto da: • • • • Pianificazione Sprint Scrum giornaliero Recensione Sprint Retrospettiva Sprint Agile Sprint – Pianificazione Sprint Il periodo di pianificazione dello sprint viene utilizzato per pianificare lo sprint imminente ed è un evento per il team che fornisce input collaborativi per determinare quale lavoro verrà svolto e come verrà svolto il lavoro scelto. Agile Sprint – Pianificazione Sprint Durante questo periodo il proprietario del prodotto, lo scrum master e il team di sviluppo preparano un obiettivo collaborativo sull'obiettivo dello sprint e sul portafoglio ordini del prodotto. Il backlog del prodotto viene spostato in stato di avanzamento e al termine della pianificazione dello sprint, il team dispone di un set di elementi di lavoro per lo sprint. Agile Sprint – Scrum giornaliero Scrum giornaliero si riferisce agli standup giornalieri in una squadra in cui il check-in viene fornito dal team sullo stato di avanzamento dell'elemento di lavoro, durante questi standup vengono identificate le sfide e i blocchi. Agile Sprint – Sprint Review Sprint Review si riferisce alla dimostrazione del team sui risultati dello sprint per gli stakeholder ed è la fase finale prima che il prodotto raggiunga la produzione. Agile Sprint – Sprint Retrospective Lo sprint Retrospective meeting si tiene dopo ogni revisione dello sprint e offre la possibilità al team di identificare le aree di miglioramento per lo sprint successivo. I vantaggi della metodologia AGILE La metodologia Agile è stata originariamente sviluppata per l’industria del software. Il suo compito era di ottimizzare e migliorare il processo di sviluppo nel tentativo di identificare e correggere rapidamente problemi e difetti. Questa metodologia permette di fornire un prodotto migliore, in modo più rapido, attraverso sessioni / sprint brevi e interattive. I vantaggi della metodologia AGILE Nell’era della trasformazione digitale, con molte aziende che migrano verso un luogo di lavoro digitale, la metodologia Agile si adatta perfettamente alle organizzazioni che cercano di trasformare il modo in cui si gestiscono i progetti e il modo in cui operano nel loro complesso. I vantaggi della metodologia AGILE In termini di benefici per l’azienda, il posto di lavoro digitale e l’Agile forniscono: • Maggiore flessibilità; • Maggiore produttività; • Maggiore trasparenza; • Prodotti di qualità superiore; • Diminuzione del rischio di mancati obiettivi; • Maggiore coinvolgimento e soddisfazione delle parti interessate. I vantaggi della metodologia AGILE Nel campo della gestione del progetto, la metodologia Agile fornisce ai team, agli sponsor, ai project manager ed ai clienti molti vantaggi specifici, tra cui: • Maggiore flessibilità e adattabilità al cambiamento; • Tempi di consegna più rapidi; • Processi di sviluppo ottimizzati; • Maggiore attenzione a specifiche esigenze del cliente; • Maggiore frequenza di collaborazione e feedback. Gli svantaggi della metodologia AGILE A causa dei suoi processi meno formali e più flessibili, la metodologia Agile potrebbe non essere sempre facilmente assorbita all’interno di organizzazioni più grandi e tradizionali. Qui, infatti, potrebbe regnare la rigidità all’interno di processi, delle politiche o dei team. Gli svantaggi della metodologia AGILE Come nel caso di qualsiasi altra metodologia, anche l’approccio Agile non è adatto ad ogni progetto. L’Agile potrebbe non funzionare come previsto, ad esempio, se un cliente non è chiaro sugli obiettivi, se il project manager o il team non hanno esperienza o se questi non ”funzionano bene” sotto pressione. Gli svantaggi della metodologia AGILE La metodologia Agile è anche difficile da attuare nel caso di clienti che seguono processi o metodi operativi rigidi. Inoltre, dato che questa metodologia si concentra principalmente sul breve termine, sussiste il rischio che si perda la visione a lungo termine. Waterfall vs Agile Il metodo Waterfall, si concentra maggiormente sulla gestione di obiettivi e rischi e sulla previsione ed il controllo dei costi. Un approccio Agile funziona meglio in situazioni che hanno un livello relativamente alto di incertezza, in cui creatività e innovazione per trovare la soluzione appropriata sono più importanti della prevedibilità. Waterfall vs Agile Waterfall vs Agile Tratti Agile Waterfall Disponibilità del cliente Preferisce che i clienti siano disponibili durante tutto il progetto. Richiede la disponibilità del cliente solo alle pietre miliari. Scopo Le modifiche possono essere apportate con largo anticipo con il tempo a disposizione ed entro il budget indicato. Funziona bene quando un ambito non è noto in anticipo. Funziona bene quando l'ambito è noto in anticipo e le condizioni contrattuali limitano le modifiche. Waterfall vs Agile Tratti Agile Waterfall Priorità delle funzioni Le caratteristiche di un progetto hanno la priorità e i problemi vengono risolti su base prioritaria, aumentando l'efficienza del finanziamento e consentendo un successo parziale evitando il fallimento completo. Le funzionalità non sono prioritarie, il che porta al successo completo o al fallimento completo massimizzando il rischio di errore. Team Preferisce team piccoli e dedicati con un elevato coordinamento. Preferisce team di grandi dimensioni che riducono il coordinamento tra i membri del team. Waterfall vs Agile Tratti Agile Waterfall Finanziamento Funziona molto bene aumentando l'efficienza del finanziamento. Funziona bene riducendo i finanziamenti fissi attraverso contratti anticipati. Fattibilità Agile è migliore quando è fattibile. Lavorare sulla gestione della cascata non dipende dalla sua fattibilità. Framework Agile