Un caso industriale di successo come modello evolutivo dell’XP

E’ proprio vero che sul tema Project Management il mondo software abbia definitivamente preso una strada a sè stante, che ha ormai poco da condividere con altri ambienti di lavoro e sviluppo?

Venendo da più di un decennio di progetti industriali ho dovuto per prima cosa riconoscere ed affrontare le tante diversità rispetto al mondo della programmazione e del web. Penso tuttavia anche che sia stata per me una grande fortuna poter vivere due ambienti tanto diversi, oltretutto sommata a quella di aver conosciuto, nella mia “precedente vita” compagnie appartenenti a Paesi molto eterogenei e con mentalità agli antipodi.

Le fortune vanno valorizzate e mi è quindi venuto naturale cercare di carpire il meglio dalle tante esperienze avute, convinto che nella diversità stia la vera ricchezza e la possibilità – talvolta affatto banale – di integrazione e di continuo miglioramento.

In sostanza, il superamento di modelli classici di project management da sempre legati allo sviluppo industriale di prodotti, a favore di metodi più adatti al mondo della programmazione, sta facendo erroneamente credere che i diversi modelli di gestione di progetto siano destinati a divergere sempre di più. A mio modesto avviso invece c’è spazio per condividere esperienze e avvantaggiarsene nei diversi ambienti.

Continua a leggere

Costruire software SOLID(O)

Una delle sfide più importanti nello sviluppo di applicazioni software critiche per le aziende è la progettazione di valide architetture che siano in grado di assicurare requisiti non funzionali quali l’estensibilità, la manutenibilità, la testabilità e la leggibilità del codice nel tempo.

Quando i clienti ci chiedono infatti di modificare o riscrivere le loro applicazioni, ciò avviene spesso perchè si ritrovano con una base di codice sviluppata male che ha costi e tempi di manutenzione troppo elevati per via delle (mancate) scelte progettuali; in questi casi riscrivere o effettuare il refactoring dell’applicazione con adeguati principi architetturali diventa una scelta da valutare molto seriamente dopo un accurato audit.

Continua a leggere

Catalogo Magento – Concetti Base

Ora che avete installato con successo la versione desiderata di Magento Community, possiamo tranquillamente iniziare a scoprire la più importante delle funzionalità che ci offre questo potente strumento di e-commerce, il Catalogo.

L’organizzazione del catalogo è alla base di un sistema che prevede stabilità, gestione semplice delle categorie e dei prodotti, ma soprattutto velocità di navigazione sul frontend.

Quest’ultima è la peculiarità base di ogni e-commerce che si rispetti, quindi l’importanza di mantenere il sistema Magento il più pulito possibile ci dà la possibilità di consultare il forum di Magento in caso di problemi, ma soprattutto siamo liberi di condividere il problema con un ampio numero di utenti, pronti a darci supporto. Chiaramente, più il nostro sistema è vicino a quello standard, meno difficoltà avremo nel condividere tale problema con la community di Magento.

Continua a leggere

Qualche consiglio di progettazione per la vostra prima app – Parte 2/2

“Splash screen? No, grazie”
Le animazioni che vengono caricate all’apertura delle apps non sono quasi mai utili. Anzi, ritengo siano fastidiose per l’utente, anche inconsciamente.
Dopotutto sono secondi preziosi di attesa ai quali si obbliga a sottostare passivamente, senza che l’utente ne ricavi alcuna utilità immediata. Ricordatevi che il suo tempo è prezioso. E se proprio non potete evitarle, riducetene durata e pesantezza all’osso, curandone con estrema cura i dettagli grafici e di animazione: se proprio volete stupire l’utente con effetti speciali, almeno siate sicuri che siano all’altezza delle sue aspettative.

Continua a leggere

L’importanza del collective ownership in un team agile

Programmare in XP è come lo sviluppo con poche pratiche e concetti in più, per esempio i test automatizzati. Comunque come tutto il resto lo sviluppo con XP, a differenza di come può sembrare, è semplice. Ogni concetto di esso è abbastanza semplice a dirsi, tuttavia è metterlo in pratica che diventa più difficile; oltretutto, sotto pressione le “vecchie” tecniche riaffiorano.

Tra alcuni dei concetti come il continuous integration, che riduce i conflitti e pone fine a incidenti e come il pair programming che ha una forza unificatrice nello sviluppo, troviamo il concetto di collective ownership che incoraggia tutto il team a rendere migliore l’intero sistema.

Continua a leggere