COME LAVORA L'ITALIA IN REMOTO? 
20 aziende lo hanno studiato per 4 settimane con una piattaforma data-driven.

SCARICA IL REPORT!

Un'introduzione all'Agile: metodologia e vantaggi.

30/06/2020
Yumi Family
persone che si scambiano pareri

Carolina Rutta - Interaction Designer in Yumi

Nel 2001, a Snowbird in Utah, 17 esperti software si incontrarono per discutere delle attuali e inadeguate metodologie di sviluppo software. In quegli anni, le metodologie software erano processi lenti, poco efficaci, e molto pesanti. Da una parte, la metodologia Waterfall (Figura 1) si basa su una sequenza ben definita di passaggi in stile cascata: sebbene, dunque, il team sia a conoscenza dei propri compiti e delle tempistiche da rispettare, se c’è un ritardo, tutti i processi slittano fino a che il processo in questione non è terminato. Conseguentemente, il cliente potrebbe ricevere un prodotto diverso da quello che si aspettava perché la fase di testing e valutazione non viene iterata. Inoltre, a volte la soluzione tecnica implementata si rivela ben presto tecnologicamente obsoleta.

Waterfall image

Figura 1: grafico di Winston Royce che ispirò lo sviluppo Waterfall (W.W. Royce, Managing the development of large software systems, in Proceedings, IEEE WESCON, 1970)

Dall’altra parte, la tecnica Scientific Management è un approccio top-down, in cui i manager decidono le procedure da seguire per ottenere un determinato obiettivo, e le commissionano ai dipendenti. Ancora una volta, questa metodologia non prevede che ci siano ritardi, e non sempre è possibile pronosticare alternativi sviluppi alle procedure precedentemente decise.

In questo contesto, si sviluppa dunque la metodologia Agile. L’Agile consiste in un insieme di pratiche che supportano e facilitano il lavoro in piccoli gruppi di sviluppo software. Il suo manifesto si fonda su 4 valori principali:

  • 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

I dodici principi invece sono i seguenti:

  • La nostra massima priorità è soddisfare il cliente rilasciando software di valore, fin da subito e in maniera continua.
  • Accogliamo i cambiamenti nei requisiti, anche a stadi avanzati dello sviluppo. I processi agili sfruttano il cambiamento a favore del vantaggio competitivo del cliente.
  • Consegniamo frequentemente software funzionante, con cadenza variabile da un paio di settimane a un paio di mesi, preferendo i periodi brevi.
  • Committenti e sviluppatori devono lavorare insieme quotidianamente per tutta la durata del progetto.
  • Fondiamo i progetti su individui motivati. Diamo loro l'ambiente e il supporto di cui hanno bisogno e confidiamo nella loro capacità di portare il lavoro a termine.
  • Una conversazione faccia a faccia è il modo più efficiente e più efficace per comunicare con il team ed all'interno del team.
  • Il software funzionante è il principale metro di misura di progresso.
  • I processi agili promuovono uno sviluppo sostenibile. Gli sponsor, gli sviluppatori e gli utenti dovrebbero essere in grado di mantenere indefinitamente un ritmo costante.
  • La continua attenzione all'eccellenza tecnica e alla buona progettazione esaltano l'agilità.
  • La semplicità - l'arte di massimizzare la quantità di lavoro non svolto - è essenziale.
  • Le architetture, i requisiti e la progettazione migliori emergono da team che si auto-organizzano.
  • A intervalli regolari il team riflette su come diventare più efficace, dopodiché regola e adatta il proprio comportamento di conseguenza.

Nella pratica, tale processo consiste in 4 fasi, che si iterano, funzione dopo funzione. Nella fase zero, si elencano le funzionalità del progetto tramite delle user stories, e si stimano le tempistiche di implementazione. Nella fase uno, vengono scelte le funzionalità da implementare in base alle proprietà. Nella fase due, si passa alla progettazione software in cui tutto il team viene incluso. Nell’ultima fase, la quarta, si lavora sulla presentazione di una piccola demo e si rilascia una versione del software. Ogni una/due settimane questo processo viene iterato, a partire dalla fase uno, in cui vengono scelte le funzionalità da implementare in base alle priorità, alla tre in cui vengono presentate (Figura 2).

Iterazione Agile

Figura 2: grafico che indica il processo Agile

Durante questo processo è necessario tenere a mente alcune pratiche che possono facilitare lo sviluppo software. Di seguite, se ne elencano alcune:

  • Iron Cross: i principi della fisica dei progetti software vincolano ad obbedire a un inevitabile compromesso della gestione dei progetti, in cui un progetto può avere solo 3 delle seguenti qualità’: buono, veloce, economico, finito.
  • Grafici sulla parete: un team agile deve essere in grado di fornire ai manager dei dati sulle tempistiche in modo tale da poter prendere determinate decisioni commerciali. Dei grafici attaccati alla parete possono facilitare una comunicazione efficace e corrette.
  • On-site customer: la distanza tra utenti e programmatori deve essere ridotta per migliorare la comunicazione e rendere più veloce lo sviluppo software.
  • Co-locazione: un team che lavora quasi interamente da casa non sarà in grado di lavorare bene come un team co-locato.
  • Stand-up meeting: ogni giorno il team di progetto organizza un meeting in cui in due minuti a testa risponde alle seguenti domande: 1. cosa ho fatto dallo scorso meeting? 2. cosa farò prima del prossimo meeting? 3. Quali ostacoli sono presenti?

Infine alcune pratiche di natura tecnica sono prese in considerazione come nucleo stesso della metodologia Agile affinché sia efficacemente applicata, come segue:

  • Debugging: azione di cercare errori, imperfezioni, problematiche e di correggerle per il funzionamento di un sistema o di un programma.
  • Pair programming: attività di programmazione in coppia in cui, di solito, una persona scrive il codice e l’altra lo supervisiona/fornisce un supporto.
  • Test-driven development: sviluppo delle funzionalità del software in base a test che sono stati già scritti.

In questo framework, la metodologia agile può portare molti vantaggi sia a tutti gli attori coinvolti (stakeholders, programmatori, manager) sia all’azienda stessa. L'implementazione della soluzione si snellisce, e diventa più rapida. Sussegue una riduzione degli sprechi grazie alla riduzione delle risorse necessarie, e una flessibilità e adattamento al cambiamento che garantisce un successo maggiore, riducendo gli sforzi. Infine, i processi di sviluppo sono ottimizzati, focalizzandosi su uno sviluppo ottimale del prodotto, consegnando un prodotto che si basi sulle esigenze specifiche del cliente.

Yumi è una piattaforma di continuous nudging che aumenta la misurazione, l'engagement e lo sviluppo personale dei team di lavoro in azienda

Aiuta le persone a chiedere e ottenere consigli sulle proprie interazioni in maniera semplice e spontanea. 

E permette all’azienda di capire in ogni momento che aria tira.
RICHIEDI UNA DEMO
Seguici !

Yumi è un marchio di Feedback Loop srl | Corso Sempione 15/A - 20145 Milano (Italia) 
Partita IVA e Codice Fiscale: IT 10109780964 | R.E.A. 2505840
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram