Cos’è e cosa non è l’Agile

Negli ultimi anni si fa un gran parlare di agile (da leggere “agiail” in inglese), soprattutto quando si parla di sviluppo software ma sempre più anche in altri contesti. Ma di cosa si parla, quando si parla di agile?

Developer
Foto di Miguel Ángel Avila Lombana, Flickr

Agile NON è una metodologia di sviluppo software. Agile non è una metodologia, punto. È piuttosto un approccio o meglio: un insieme di valori e di principi. Si riferisce al modo di affrontare il progetto che si sta intraprendendo, sia esso di sviluppo o meno.

Agile NON è scrum, anche se scrum è Agile: SCRUM è un framework, una struttura agile di sviluppo software, ma ne esistono anche molte altre. Le più note e diffuse sono probabilmente appunto SCRUM e Kanban.

Nel suo contesto originale, ossia quello dello sviluppo software, si è iniziato a parlare di agile nel 2001 quando è nato il Manifesto Agile.

Il modo migliore per capire cos’è l’Agile è proprio partire dal suo manifesto, eccolo qui:

Stiamo scoprendo modi migliori di creare software,
sviluppandolo e aiutando gli altri a fare lo stesso.
Grazie a questa attività siamo arrivati a considerare importanti:

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.

Quindi in pratica ed estendendo un po’: è più efficace avere un team cross-funzionale, in grado di auto-organizzarsi, piuttosto che organizzare il lavoro in base alle differenti funzioni e introdurre processi per regolare il susseguirsi di fasi e le interazioni tra team diversi.

Inoltre, in un ambiente in continua evoluzione come quello dell’informatica è importante essere in grado di adattarsi al cambiamento anche quando arriva tardi nel processo di sviluppo. Ed è inutile scrivere tonnellate di documentazione se nessuno le legge. Conviene invece mostrare spesso al cliente incrementi di software funzionante (anche se incompleto) in modo che possa verificare con mano se risponde alle sue aspettative e farci avere i suoi commenti per poter aggiustare il tiro nelle prossime versioni. Per questo motivo le metodologie agile si basano su un processo di sviluppo iterativo e incrementale.

Il manifesto è supportato da una serie di 12 principi che ne spiegano per esteso l’idea di fondo.

Come si diceva all’inizio all’interno del mondo agile troviamo numerose metodologie differenti, alcune nate anche prima del Manifesto Agile. Ciascuna descrive in modo più o meno formale un procedimento scandito da eventi o fasi. Accanto alle metodologie ci sono poi una serie di “strumenti” a supporto: potreste aver sentito parlare di planning poker, ad esempio, o di scrum (o kanban) board. Ma ne esistono davvero tantissimi! E ancora più ampio è l’ecosistema di applicazioni create per facilitare chi lavora in agile.

Scrum

La definizione completa di SCRUM è contenuta in una guida che ne specifica eventi e artefatti. Se però vi state avvicinando per la prima volta a questo mondo vi consiglio di iniziare da un altro testo, The elements of Scrum: è davvero ben scritto e aiuta a comprendere come funziona questo framework.

Sviluppare in modo agile non significa “fare le cose a caso”, e Scrum è un ottimo esempio di come anche per fare agile occorra seguire delle regole e un approccio strutturato, iterativo e incrementale.

Una curiosità: il termine “scrum” arriva dal mondo del rugby, dove indica quella che in italiano è chiamata “mischia chiusa”; serve a ricordarci che in un team scrum si lavora assieme, a stretto contatto, per un obiettivo comune.

Kanban

Scrum è pensato in modo specifico per lo sviluppo software, quindi la creazione di un nuovo prodotto o l’evoluzione di uno esistente. Ma nell’ambito IT ci sono anche tante altre attività (supporto, in primis) cui un approccio del genere si applica con difficoltà. Per questo motivo spesso si affiancano diverse metodologie o strumenti. Tra questi Kanban, che è spesso usato proprio per la gestione del supporto.

Kanban nasce nel 2007 ed è descritto in Kanban: Successful Evolutionary Change di David Anderson, uscito nel 2010. L’idea principale su cui si basa è quella di un continuo e progressivo miglioramento dei processi.

 Cosa ne pensate? Dopo aver letto questo articolo siete curiosi di saperne di più? Internet è piena di risorse dedicate all’Agile. Ecco alcuni esempi per tenersi informati:

Di Silvia Bindelli

Silvia è un'ingegnere informatico trapiantato in Costa Azzurra. Nel tempo libero collabora con la comunità open source di Ubuntu, esplora e fotografa la più grande quantità di mondo possibile, trasforma la cucina in un campo di battaglia da cui escono cupcake, brownies, loaf, crostate...e qualche volta anche qualcosa di salato!

13 commenti

  1. Ottimo articolo, molto chiaro, bravissima! Aggiungerei una piccola curiosità: Agile è nato per lo sviluppo software, ma al giorno d’oggi viene usato anche in molte realtà non tecniche. Per esempio, io ho provato Scrum in una redazione giornalistica e conosco qualcuno che l’ha portato persino a scuola (se n’é parlato parecchio a Firenze, a Better Software 2014, in rete trovate delle presentazioni e dei video).

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.