Perché il tuo team tecnologico non rispetta le scadenze e le attività si accumulano?

Hai mai la sensazione che gestire lo sviluppo e la manutenzione del tuo prodotto digitale svolte dal tuo team (interno o esterno) siano come cercare di spegnere un palazzo in fiamme?

Mi riferisco al fatto che definire le priorità degli sviluppi, delle attività di supporto, degli incidenti e di tutte le altre operazioni digitali è un vero e proprio inferno dove si risolve una cosa e se ne rompe un’altra, si litiga continuamente nel definire delle scadenze che molto frequentemente non vengono rispettate e lo spazio per migliorare la situazione si fa sempre più ristretto.

E questo avviene in modo paradossale: più si cerca di pianificare le attività in modo esatto, tentando di mettere a punto anche il più piccolo dei dettagli, facendosi dare stime più precise possibili dagli sviluppatori e dagli altri specialisti, allineandosi il più frequentemente possibile con il team, più la situazione si aggrava invece di migliorare.

Continua a leggere

Come ottenere un prodotto digitale di qualità evitando i problemi dei contratti a corpo

Alcuni clienti preferiscono ricevere offerte a corpo dai loro fornitori, nella convinzione di poter rimuovere l’incertezza in termini di costo, tempistiche e funzionalità dei progetti. I clienti sono soddisfatti nel pensare di poter mantenere il controllo su questi aspetti, senza tuttavia rendersi conto che così facendo perdono il controllo sulla qualità.

Cosa ci vuole per realizzare un prodotto digitale di alta qualità? Innanzitutto, i prodotti migliori sono il risultato di uno sforzo collaborativo tra cliente e fornitore poiché è necessaria l’esperienza di entrambi. Inoltre, è indispensabile poter adattare un progetto agli inevitabili cambiamenti che ci saranno in corso d’opera, come avviene e come in realtà deve essere in un prodotto digitale.

Non è necessario che tutte le funzionalità siano completamente definite all’inizio del progetto, che è il momento in cui quest’ultimo è meno conosciuto: sia il cliente che il fornitore sono nella posizione di poterle dettagliare meglio solo man mano che passa il tempo.

Continua a leggere

Come evitare i tre errori più comuni nella progettazione di un prodotto digitale

Navigando molti siti e applicazioni web, l’esperienza è spesso poco piacevole: alcune volte l’interfaccia è poco intuitiva o troppo pesante, l’aspetto è sgradevole, l’applicazione non risponde come dovrebbe o è lenta in modo frustrante. Anche se di solito gli utenti non sono in grado di indicare uno specifico problema, si rendono conto lo stesso che qualcosa non funziona nel modo migliore e non tornano più.

Anche uno solo di questi problemi può far sprofondare il tuo prodotto, ed è necessaria una grande capacità su tutti questi fronti per realizzare qualcosa di veramente speciale. E’ per questo motivo che un’attenzione quasi fastidiosa ai dettagli del design, dell’esperienza utente, dell’architettura dell’informazione, della tecnologia e dell’infrastruttura è fondamentale per il successo dei progetti dei nostri clienti.

Continua a leggere

Git Flow – Un modello di branching per git che funziona

Continua a leggere

Introduzione al Domain Driven Design

Molte cose possono mettere un grande progetto fuori rotta: la burocrazia, obiettivi poco chiari, mancanza di risorse, solo per citarne alcuni, ma è l’approccio alla progettazione che determina in gran parte come il software complesso può diventare.

Quando la complessità sfugge di mano il software non può più essere compreso abbastanza bene per essere facilmente modificato o esteso; al contrario, un buon design può dare opportunità su quelle caratteristiche complesse.

Alcuni di questi fattori di complessità nella progettazione sono di carattere tecnico, ma per molte applicazioni non lo sono, la complessità è nel dominio stesso o l’attività commerciale dell’utente.

Quando questa complessità di dominio non viene affrontata nella progettazione, non importa se la tecnologia infrastrutturale sia ben concepita. Un design di successo deve affrontare sistematicamente questo aspetto centrale del software.

In questi casi un ottimo approccio da valutare è proprio il Domain Driven Design.

Continua a leggere