Riprendere in mano un progetto fallito, completarlo e farlo fruttare
Un cliente aveva provato a fare in outsourcing un prodotto, ma la complessità gli era esplosa in mano e si ritrovava con un software ampio, incompleto e confuso.
L'ho aiutato a prendere il punto di vista del cliente, capire cosa davvero era importante terminare e quali delle cose incomplete scartare, ed è riuscito ad andare online e far fruttare il suo investimento.
Migliorare la UX senza fare costosi redesign
Avere una buona User eXperience spesso è molto importante, ma i grossi redesign sono costosi sia in termini economici, che di tempo che di focus. A volte, come in questo caso, usare un approccio iterativo e rimanere in ascolto dei clienti ti permette di migliorare la situazione quanto basta per avere clienti soddisfatti in tempi ragionevoli.
Far scalare un team di sviluppo
Quando una startup ha successo, il team cresce e le abitudini che lo hanno portato fino a lì devono cambiare per fare posto a quelle che gli permettano di scalare.
Ho aiutato un team a ristrutturarsi, diminuendo il tempo di introduzione di nuovi sviluppatori e portando tutto il team a migliorare le proprie abitudini di sviluppo con risultati misurabili (come ad esempio diminuire di un ordine di grandezza la complessità ciclomatica media del nuovo codice rispetto al vecchio).
Affrontare la riscrittura di un software critico contenendo i rischi
A volte alcuni pezzi di software diventano così complessi che nessuno sa più completamente come funzionano, e riscriverli è molto rischioso.
Lavorando con il team e gli esperti dell'ambito, li ho aiutati con delle sessioni di Event storming a unire tutta la conoscenza sparsa tra i vari ruoli ed a raggiungere una comprensione condivisa di un pezzo di logica di business particolarmente ostico.