Ogni giorno mi chiedo se ho tralasciato qualcosa. Cerco di predire il futuro del software di cui fornisco la rotta, alcuni la chiamano architettura.
Il software è una creatura vivente ed evolutiva e, proprio come ogni organismo, tende a crescere.
Ogni volta che cresce vedrete se le vostre aspettative sul figlio che avete generato sono ben riposte o se avete tralasciato qualcosa.
Quando vi troverete, per esempio, a dire no a prodotto, a sostenere che qualcosa è complicato da realizzare, quello sarà il campanello d’allarme: avete tralasciato qualcosa.
Quel qualcosa può essere nascosta in qualche complicazione non prevista in una tecnologia o in una struttura dati, in una catena di micro servizi: raramente si tratta semplicemente di codice. Il codice è la parte più rapida da refactorare.
Personalmente cerco sempre di non stravolgere le predilezioni del team di sviluppo, talvolta questo può causare guai. Il “trucco” sta nel lasciare che il team si accorga da solo dell’eventuale inadeguatezza dello strumento, prima possibile.
C’è anche l’eventualità che sia io a sbagliarmi e che il team abbia ragione.
Una volta il software era disegnato dall’inizio alla fine e prevedere gli esiti e le necessità delle versioni era molto semplice.
Con l’adozione della metodologia lean si lavora per MVP, si ascolta il cliente, si verificano le proprie assunzioni, la rotta del software non è lineare, le tempeste frequenti, tornare indietro non è raro e non ci si deve preoccupare troppo se accade.
Quindi l’architettura del software è diventata un campo minato? No. È solo tutto più divertente.
Atomizzare ogni cosa, rendere ogni servizio duttile e espandibile, pensare al software come un insieme di messaggi, vi eviterà la maggior parte dei problemi.
Per il resto avete la vostra esperienza e il vostro team. Contateci sempre.
Buon divertimento.