Dove e come lavora
L’Architetto Software (Software Architect, Progettista Software) si inserisce nell’Area Tecnica e, nello specifico, nel Reparto Sviluppo di aziende informatiche che si occupano dello sviluppo di software. Opera a stretto contatto con il Responsabile Tecnico, con il Responsabile Sviluppo, se presente, e con il Project Manager, tant’è che gli stessi compiti possono essere svolti direttamente da una di queste figure professionali.
Cosa fa
L’Architetto Software si occupa della progettazione dei software per quanto riguarda l’architettura del software e l’architettura sistemica. È, quindi, la figura professionale che si occupa di progettare la struttura dei software commissionati all’azienda e l’infrastruttura sistemistica su cui gireranno e con la quale dovranno integrarsi. In particolare, l’Architetto Software, in base all’analisi dei bisogni del cliente, individua le tecnologie più appropriate, studia la soluzione più idonea, definisce la scomposizione in strati applicativi (layer applicativi) e le specifiche tecniche degli applicativi, progetta e dimensiona le infrastrutture sistemistiche di supporto e, quindi, realizza il disegno logico delle singole componenti e del complesso del software e delle infrastrutture, producendo la documentazione tecnica di dettaglio dell’architettura; il tutto tenendo conto dei costi e dei tempi di realizzazione. Si occupa, inoltre, della formazione dei programmatori e spesso partecipa attivamente alla realizzazione dei software da lui progettati.
L’Architetto Software partecipa alle attività di prevendita relazionandosi direttamente con i clienti per capire quali sono le loro richieste/esigenze. Una volta acquisita la commessa si relaziona con tutte le altre figure che operano nell’Area Tecnica durante tutte le fasi di sviluppo del progetto, in particolare, nella fase di progettazione ed analisi funzionale per condividere le soluzioni individuate e per valutarne la fattibilità tecnica, nella fase di sviluppo per supervisionare l’attività dei programmatori e per assicurarsi che tutti i progetti vadano a buon fine e, quindi, nella fase di testing per valutare eventuali aggiustamenti e per risolvere le problematiche più complesse. Interviene, infine, nella fase di post vendita se si rendono necessarie eventuali revisioni ed aggiornamenti in seguito a segnalazioni o successive richieste da parte dei clienti.
Formazione
Questa figura è solitamente ricoperta da laureati in Ingegneria Informatica, in Ingegneria dell’Informazione, in Ingegneria delle Telecomunicazioni o in Informatica, ma anche da laureati in Ingegneria Elettronica, Matematica, Fisica, Statistica e, più in generale, in corsi di laurea ad indirizzo scientifico. Si tratta di laureati sia triennali che magistrali tuttavia generalmente una laurea magistrale permette di raggiungere più facilmente questo ruolo. In alcuni casi, comunque, questa figura è ricoperta anche da diplomati presso istituti tecnici o professionali con indirizzo in ambito informatico, telecomunicazioni ed elettronico.
Competenze tecniche
L’Architetto Software deve possedere ottime conoscenze in materia di progettazione di architetture software e delle relative architetture sistemistiche di supporto. Deve, quindi, conoscere i principi di progettazione e definizione di un’architettura software, i principi di programmazione sicura, i criteri di progettazione di sistemi di archiviazione ed elaborazione di dati, le metodologie di ottimizzazione dei processi, gli ambienti di sviluppo e i supporti tecnologici da utilizzare, le modalità di integrazione tra componenti software e le metodologie di sviluppo di servizi on-line. Deve conoscere le tecniche di software testing, le tecniche di valutazione della copertura funzionale dei pacchetti software e le tecniche di verifica e comparazione tra soluzioni software alternative. Deve conoscere i principali sistemi operativi e uno o più dei linguaggi di programmazione più diffusi che, a seconda dell’ambito in cui opera, sono: Java, JavaScript, Dot. NET, Node.js, Angular, Perl, Ruby, Pyton, Swift, PHP, SQL, RPG, CSS, HTML, C, C++, C#. Deve, inoltre, possedere competenze nell’ambito della progettazione di infrastrutture informatiche e di architetture di rete, oltreché di integrazione di sistemi.
Competenze digitali e linguistiche
Chiaramente per tale figura sono richieste competenze digitali da programmatore, oltreché la conoscenza della lingua inglese.
Competenze trasversali, caratteristiche personali e disponibilità
Completano e caratterizzano tale figura l’attitudine alla relazione con i clienti, al problem solving, al lavoro di gruppo e a scrivere relazioni. Deve, inoltre, essere una persona molto precisa e fantasiosa, propensa all’innovazione e, vista la rapidità con cui si evolve il settore, propensa all’aggiornamento e alla formazione continua. Infine, deve essere disponibile ad effettuare trasferte.