Il ruolo del Software Architect in sintesi

In CGN, la definizione dell'architettura software, nel caso in cui non sia affidata ad un ruolo specifico, è una responsabilità del team di sviluppo. I nostri software hanno domini complicati e lavorano in situazioni di elevato carico per periodi limitati. Abbiamo un framework proprietario su .NET che offre ai team di sviluppo un'architettura esagonale basata su DDD/CQRS e lo scambio asincrono di messaggi.
Quindi, in questo contesto, citando Martin Fowler, "l'architetto prende le decisioni importanti, qualunque esse siano", ovvero decide come garantire performance, scalabilità, sicurezza, resilienza e manutenibilità del sistema.

Qual è il tuo ruolo?

Paolo N.
Paolo N.

Lavoro in CGN dal 2011 ed in questi 13 anni ho ricoperto diversi ruoli. Ho avuto la possibilità di lavorare su molti progetti e su tanti aspetti dello sviluppo del software, dallo sviluppo del codice, alla gestione degli strumenti per supportare il ciclo di sviluppo del software fino agli aspetti più architetturali sia per quanto riguarda singole applicazioni che insiemi di applicazioni e i sistemi che le supportano.

Attualmente faccio parte del board della Software Factory come responsabile dell'architettura e delle tecnologie adottate.

Quali sono le attività che svolgi tipicamente durante un progetto software?

Paolo N.
Paolo N.

Prendo decisioni architetturali per garantire ad esempio performance, scalabilità, sicurezza, resilienza, manutenibilità ed evolvibilità futura del sistema, collaboro con i Product Owner per comprendere gli obbiettivi di business ed identificare soluzioni alternative dove ci possono essere criticità future.

Qual è l'ultima cosa che hai imparato che ti ha aiutato nell'esprimerti meglio nel tuo ruolo?

Paolo N.
Paolo N.

Negli anni ho imparato che non conta solo come il codice e come le applicazioni siano organizzate ma anche come le persone lavorano e che questi due aspetti siano in sintonia tra loro. In sua assenza si presenteranno sempre maggiori livelli di frizione dovuti alle dipendenze e alla necessità di coordinamento, se invece i due modelli sono allineati questi problemi spariscono o si riducono enormemente.

Com'è lavorare nella software factory CGN?

Paolo N.
Paolo N.

Stimolante, non solo per i colleghi con cui confrontarsi o le tecnologie all'avanguardia, ma anche per le sfide che è possibile affrontare. Il livello di complessità delle applicazioni, il loro numero e la necessità di supportarle ed evolverle per periodi molto lunghi offrono sempre nuove sfide.

LinkedIn
Paolo Nicodemo

Paolo Nicodemo

Senior Software Engineer @ Servizi CGN

Servizi CGN

Visualizza profilo

Ti piacerebbe ricoprire il ruolo di Software Architect?

Per ricoprire questa posizione devi aver maturato una lunga esperienza in design e analisi OO, nonché possedere una buona conoscenza delle architetture software, teorica e pratica. È necessario inoltre che tu abbia solide competenze in Domain Driven Design, tecniche di analisi e modellazione concettuale.
Nei nostri team di sviluppo questo ruolo, spesso ibrido, si sovrappone frequentemente a quello di Back-end Developer e corrisponde a figure con una elevata seniority tecnica.
In qualità di Software Architect, è importante avere la capacità di contribuire allo sviluppo del prodotto software, “sporcandosi le mani” nei progetti, anche svolgendo task più operativi.
Come dice Martin Fowler, “L’architetto è colui che concretamente prende le decisioni importanti in ambito software”. Sei tu?