Are you a Software Architect?

Come si può definire oggi un “Software Architect”? Il termine è molto utilizzato, ma spesso non viene inteso con la giusta connotazione e si tende a confondere il concetto di architettura del software con le tecniche di sviluppo del software a vari livelli.

Si può dire, in termini generali, che un Software Architect è colui che è in grado di avere una visione d’insieme del progetto e quindi capire (progettare, immaginare) il funzionamento dell’intero sistema.

Per essere un buon Software Architect occorre innanzitutto esperienza. Successivamente vengono evidenziati vari aspetti essenziali:

  • Definizione dell’architettura del software
    • Gestione dei requisiti non-funzionali (qualità del sistema)
    • Definizione dell’architettura (come risolvere il problema?)
    • Scelta delle tecnologie (gestione di rischi, complessità, costi)
    • Valutazione (astratta) dell’architettura
    • Capacità di interoperabilità dell’architettura (nei confronti di altri sistemi esistenti)
  • Realizzazione dell’architettura, occorrono:
    • Piena consapevolezza e visione del disegno finale (bisogna poter seguire tutto il ciclo di sviluppo per portare il progetto a compimento con successo)
    • Leadership (responsabilità, capacità decisionali e tecniche)
    • Coaching e mentoring (per supportare i vari membri coinvolti nello sviluppo)
    • Qualità (non solo nella scelta dell’architettura, ma in tutto il processo! Revisioni e analisi del codice, applicazione di standard e principi di design, continuous integration, test automatici di unità, misurazione del code coverage…)
    • Progettazione, sviluppo, testing (anche se non necessariamente nelle attività di tutti i giorni, il bravo Software Architect deve prendere parte al processo di sviluppo)

Leggi anche l’articolo originale.

Condividi e seguici su:
20
error: