L'approccio Agile ha vinto
Recenti statistiche riportano che l'approccio agile nello sviluppo software è stato adottato - in forme pure o ibride - dalla maggioranza delle aziende software. Secondo il 13th Annual State Of Agile Report nel 2018 il 97% delle 1300 persone intervistate ha dichiarato che la loro azienda pratica metodi di sviluppo agile. Statista riporta numeri simili: il 91% degli sviluppatori hanno adottato un approccio agile.
Scrum ha vinto
E, fra le metodologie agili utilizzate, Scrum appare la dominante. Secondo lo State of Agile è utilizzata da più del 50% dei rispondenti, seguita da approcci ibridi e da mix di scrum e XP.
Non conosco i tassi di adozione in Italia, ma è innegabile che chi si occupa di ux debba confrontarsi con questo approccio.
Perché Agile?
Perché le aziende si sono orientate alla metodologia Agile? Sempre lo State of Agile riporta una serie di ragioni:
Accelerate software delivery, Enhance ability to manage changing priorities, Increase productivity, Improve Business/It alignment, Enhance software quality.
Fra i benefici riportati, i più votati sono:
Ability to manage changing priorities, Project visibility, Business/IT alignment, Team morale, Delivery speed/time to market, Increased team productivity, Project predictability
In entrambe le liste, gli utenti finali - e la user experience - sono del tutto assenti. Ad onor del vero gli utenti sono citati nella domanda relativa a come il successo di un progetto viene misurato. Le risposte più votate sono infatti
Customer/user satisfaction, Business value, On-time delivery, Quality, Productivity
Il fatto di aver messo assieme il Customer e l'User, però, fa sorgere il sospetto che le due figure siano confuse, e che al centro del processo Agile rimanga il Customer (ovvero il committente) e non l'utente finale.
Il processo UX
L'user experience design è un approccio progettuale orientato all'utente che adotta una metodologia partecipativa.
Secondo la Interaction Design Foundation
User experience (UX) design is the process design teams use to create products that provide meaningful and relevant experiences to users. This involves the design of the entire process of acquiring and integrating the product, including aspects of branding, design, usability and function.
Secondo Usability.gov
User experience (UX) focuses on having a deep understanding of users, what they need, what they value, their abilities, and also their limitations. It also takes into account the business goals and objectives of the group managing the project. UX best practices promote improving the quality of the user’s interaction with and perceptions of your product and any related services.
Ux e Agile: le divergenze
Il customer non è lo user
Vi sono principalmente tre aspetti che rendono problematico il rapporto fra ux e sviluppo agile. Il primo è che il customer nella letteratura Agile è una figura diversa dal customer dell'ux. Il secondo è che la ux research non può essere costretta in uno sprint. Il terzo è che le user stories sono uno strumento inadeguato a rappresentare i requisiti (ne parlo nel post dedicato alla concettualizzazione.
Agile è un approccio di sviluppo centrato su sviluppatori e committenti. Il primo comandamento dell'Agile Manifesto recita che
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
In questa accezione, customer è generalmente il committente, e se a volte si intende anche l'utente finale questa distinzione non è concettualmente chiara.
Ad esempio, secondo lo Scaled Agile Framework il Customer è l'ultimate buyer
: può essere il Business Owner, e fra le altre cose gestisce il perimetro, i tempi, i vincoli, contribuisce a definire la roadmap, le milestone, i rilasci, definisce e comunica gli aspetti di business. Dunque sicuramente quando si parla di customer si pensa al committente e non all'utente finale.
Ora, né il customer né il product owner possono sostituirsi agli utenti finali, in base al fatto che tu non sei il tuo utente: committente ed utente hanno motivazioni diverse, e diversi modelli mentali. Il committente e l'utente sono due figure completamente diverse.
Le fasi dello UX
Lo user experience design si occupa di identificare le motivazioni degli utenti, di far emergere i modelli concettuali di utenti ed esperti di dominio, di progettare delle interfacce che permettano agli utenti di utilizzare i prodotti e servizi sviluppati in maniera efficace, efficiente, e con soddisfazione. Per fare questo, devono intraprendere delle attività di esplorazione (benchmark, analisi dei prodotti esistenti ...), di ricerca (osservazione e interviste con utenti, esperti di dominio e committenti), di sintesi, di progettazione, di test.
Queste attività vanno fatte prima che gli sviluppatori inizino a scrivere codice. E se non è pensabile che queste attività durino anni, non si possono nemmeno comprimere nello spazio di uno sprint o due.
UX e Agile: la letteratura
Sul rapporto fra l'approccio di sviluppo agile e l'UX (o il design centrato sull'utente) sono stati pubblicati numerosi lavori. Una recente rassegna (Brhel et al 2015) ha analizzato 83 articoli che hanno affrontato il problema dell'integrazione fra UXD e Agile.
The valuation of up-front analysis and design was recognized as one of the main tension points between UCD and ASD early on. While the former promotes the extensive upfront analysis of user requirements and the design of the users’ interaction with the system, the latter focuses on delivering a working code at the expense of an exhaustive planning and design phase.
Moreover, there is no common definition of what constitutes sufficient preparation, and the effort put into initial analysis and design activities ranges from days to weeks.
La soluzione concettuale proposta dagli autori è quella di distinguere le attività dello ux finalizzate alla product discovery
a quelle finalizzate alla product creation
. La progettazione e il test dell'interfaccia può essere integrata nel processo agile, immaginando degli sprint di progettazione e test, con una tempistica di due sprint di vantaggio per il design ed uno per il test.
La fase di discovery - ovvero esplorazione, ricerca e sintesi - dovrebbe essere fatta prima, e ad essa dovrebbe essere dedicato uno spazio maggiore di uno o due sprint.
Conclusioni
Il rapporto fra UX/UCD e Agile non è semplice. Il fine dell'approccio Agile è soddisfare il customer/committente, il fine dell'UCD è di soddisfare scopi e bisogni dell'utente. Affinché un prodotto abbia successo, è necessario che soddisfi sia le motivazioni degli utenti che gli scopi di business del committente. Integrare la progettazione orientata all'utente nello sviluppo agile non è banale, in quanto i vincoli di quest'ultimo (sprint brevi, little design up front) impediscono di fare una seria attività di ricerca e sintesi con utenti, esperti di dominio e committenti. Saltare la ricerca, o comprimerla in sprint di poche settimane, aumenta di molto il rischio che il prodotto non soddisfi i bisogni degli utenti.
La soluzione proposta da Brhel e colleghi, che io sottoscrivo, è di dividere - concettualmente ed empiricamente - la fase che loro definiscono di product discovery (esplorazione, ricerca, sintesi) da quella di design, test di usabilità, sviluppo, test di conformità.
La seconda fase, con la giusta calibrazione, può essere organizzata adottando i processi e i metodi dell'approccio Agile. La prima parte dovrebbe avere un respiro più ampio, per permettere a ricercatori, designer, esperti di dominio e committenti di mappare motivazioni e modelli concettuali che guideranno il design, il test e l'implementazione del prodotto.
Bibliografia
Brhel, M., Meth, H., Maedche, A., & Werder, K. (2015). Exploring principles of user-centered agile software development: A literature review. Information and software technology, 61, 163-181.
L'immagine: Thomson's Gazelles | Stig Nygaard | Flickr