Il codice? È un fastidioso contrattempo.

Tra le pagine del gruppo SIAgile, che da poco più di un anno si impegna a diffondere la cultura agile nella Svizzera italiana, mi è capitato di incontrare il concetto di Behavior Driven Development, inteso come un estensione del Test Driven Development che arriva perfino a mettere in secondo piano gli stessi test, pur conservandone – inevitabilmente direi – l’indispensabile utilità.

Questa visione dei test come side effect di una tecnica di design – Test Driven Dev… Design – mi ricorda un mio vecchio post in cui sostenevo la maggiore importanza della manovrabilità delle specifiche rispetto al codice sorgente, relegando quest’ultimo al ruolo di mero strumento. Ovviamente la decentralizzazione del software che ho sostenuto in quell’occasione e in molte successive non ha nulla a che vedere con una presunta dequalificazione del codice stesso, che anzi, essendo espressione efficace dei nostri obiettivi, deve essere garantito di qualità eccellente. Nel corso dell’ultimo anno però ho potuto riflettere parecchio sul legame tra (sviluppo) software e user experience e sono quindi giunto ad una conclusione ulteriore, che integra quelle precedenti, estendendole.

Io credo che l’intero concetto di software sia in realtà un concetto collaterale. Noi sviluppatori vendiamo sì manovrabilità, ma non per ottenere software come prodotto finale. L’elevata qualità del nostro prodotto, il codice – che a questo punto scopriamo essere un semilavorato – serve infatti a garantire il successo del prodotto finito vero e proprio: la user experience. Il flusso di cassa diventa positivo nel momento esatto in cui il primo utente vive con successo l’esperienza che il nostro software contribuisce a realizzare. Non un solo attimo prima.

Una prova del 9 semplice semplice? Prova a sviluppare del software e a non farlo usare mai a nessuno. Pensi possa valere qualcosa? :P

January 06 2010 | Visione agile | 8 Comments »

Agile UX, Facebook e il refactoring delle interfacce

In un recentissimo post di Alberto Mucignat, caro amico più volte ospite di questo blog, nonché esperto progettista di interfacce, si possono leggere sintetizzati i punti salienti per capire come lavorano gli interaction designer di Facebook.

Sebbene mi piacerebbe soffermarmi sul punto

3. I designer lavorano principalmente in codice (html/css e un pizzico di php)

tradendo così la mia estrazione da sviluppatore e confermando il codice come valido (!= perfetto) formalismo per questi scopi, preferisco invece farti notare questo:

4. Non si affezionano troppo al lavoro: il software cambia continuamente.

È più di un anno che scrivo e dico che l’unica via per rendere più agile il lavoro degli interaction designers è basata su due punti:

  1. Trovare strumenti che permettano il facile refactoring dei wireframe.
  2. Adottare una filosofia di progettazione più incline al rifacimento e meno al desiderio di essere – disperatamente – up front.

Il primo vincolo potrà anche essere squisitamente tecnico – ed è solo questione di tempo, ma il secondo non è che di natura umana.

E ti pare poco!

September 17 2009 | Dalle trincee | 6 Comments »

AgileCamp2009: Lo sviluppo delle mucche viola

Con tempi degni della migliore tradizione della teoria tettonica a placche, ecco qui le slide, il video e la mappa concettuale del mio talk all’ultimo AgileCamp2009. Buona visione/lettura/ascolto!

(dritta: il video è talk fino al 21° minuto poi diventa sessione di domande&risposte)

Mappa concettuale del talk su progettazione della User Experience e sviluppo agile

Mappa concettuale del talk su progettazione della User Experience e sviluppo agile

March 26 2009 | Eventi | No Comments »