Dove e come lavora
L’Analista si inserisce nell’Area Tecnica e, nello specifico, nel Reparto Sviluppo di aziende informatiche che si occupano dello sviluppo di software. Lavora sotto le direttive e la supervisione del Responsabile Tecnico, del Responsabile Sviluppo, se presente, e del Project Manager.
Cosa fa
L’Analista si occupa di definire i requisiti che devono avere i software per soddisfare le esigenze del cliente. È, quindi, la figura professionale che analizza e studia la struttura organizzativa e i processi interni all’azienda committente al fine di impostare le soluzioni software che meglio soddisfano le esigenze del cliente, sia per quanto riguarda i requisiti funzionali che quelli applicativi. In particolare, provvede ad analizzare e documentare le funzionalità del progetto, analizza nel dettaglio i requisiti tecnici, definisce le metodologie di sviluppo, progetta le componenti software e, in particolare, la struttura dei sistemi di archiviazione ed elaborazione di dati, definisce il diagramma di flusso degli applicativi e, spesso, partecipa attivamente alla realizzazione delle soluzioni tecniche. Si occupa, inoltre, di analizzare ed interpretare i dati ottenuti dall’attività di testing, apportando eventuali modifiche o migliorie, oltreché della risoluzione dei problemi funzionali e tecnici più complessi segnalati dal cliente o dall’utente e di eventuali successive integrazioni o cambiamenti. Infine, si occupa, per la parte di sua competenza, della stesura della documentazione tecnica.
L’Analista, una volta acquisita la commessa, si relaziona direttamente con i clienti per la definizione delle funzionalità e dei requisiti tecnici di progetto e, in alcuni casi, partecipa anche alle attività di prevendita per capire quali sono le loro richieste/esigenze. Si relaziona, inoltre, con tutte le altre figure che operano nell’Area Tecnica durante tutte le fasi di sviluppo del progetto, in particolare, nella fase di progettazione 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 rispettino i requisiti funzionali e tecnici, 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 degli utenti o successive richieste da parte dei clienti.
Formazione
Questa figura è solitamente ricoperta da laureati in Informatica o in Ingegneria Informatica, ma anche da laureati in Ingegneria Elettronica, Ingegneria dell’Informazione, Ingegneria delle Telecomunicazioni, Matematica, Fisica, Statistica e, più in generale, in corsi di laurea ad indirizzo scientifico. Si tratta di laureati sia triennali che magistrali, in tal senso le aziende non fanno una grossa distinzione tra i due livelli di studi, tuttavia generalmente una laurea magistrale permette di raggiungere più facilmente questo ruolo e una maggiore crescita professionale. Spesso, comunque, questa figura è ricoperta anche da diplomati presso istituti tecnici o professionali con indirizzo in ambito informatico, telecomunicazioni ed elettronico.
Competenze tecniche
L’Analista deve possedere ottime conoscenze in materia di analisi organizzativa e di business management (strutture, processi e funzioni delle organizzazioni). Deve, quindi, possedere ottime conoscenze in materia di analisi funzionale e della relativa progettazione tecnica di software, deve conoscere le tecniche di rilevazione e specificazione dei requisiti, le logiche di programmazione strutturata e a oggetti, i diagrammi di flusso, le metodologie di sviluppo, configurazione, ottimizzazione e test di software e i criteri di progettazione di sistemi di archiviazione ed elaborazione di dati. Deve, inoltre, conoscere 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, infine, conoscere gli ambienti di rete e i servizi web, i principali sistemi operativi e le architetture hardware e software.
Competenze digitali e linguistiche
Generalmente 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 ad organizzare il proprio lavoro, al lavoro di gruppo, al problem solving e alla relazione con i clienti. Deve, chiaramente, essere una persona molto precisa, con una mentalità analitica, ma comunque flessibile mentalmente. È, inoltre, fondamentale che sia una persona propensa all’innovazione e, vista la rapidità con cui si evolve il settore, propensa all’aggiornamento e alla formazione continua. Infine, in alcuni casi deve essere disponibile ad effettuare trasferte.
Note
Nelle aziende più strutturate è possibile trovare la figura dell’Analista distinta tra Analista Funzionale ed Analista Tecnico, il primo specializzato nella definizione dei requisiti funzionali, il secondo nella definizione dei requisiti tecnici. Essenzialmente, l’Analista Funzionale si occupa di definire cosa deve fare l’applicazione software, mentre l’Analista Tecnico definisce come lo deve fare. In tali contesti l’Analista Funzionale non deve necessariamente sapere programmare.
Un’ulteriore distinzione, molto usata nelle aziende più strutturate, è tra l’Analista Junior e Senior le cui differenze sono legate principalmente all’esperienza maturata nella posizione; di conseguenza, l’Analista Junior si occupa dei progetti più semplici, mentre l’Analista Senior si occupa dei progetti più complessi.
Spesso, inoltre, è possibile trovare anche la figura dell’Analista Programmatore, quindi una figura che ricopre sia il ruolo dell’Analista che del Programmatore; si tratta, dunque, di un Analista che si occupa anche della scrittura del codice necessario per realizzare operativamente le soluzioni tecniche individuate. In particolare, nelle realtà più strutturate l’Analista Programmatore può sostituire la figura dell’Analista Tecnico, mentre nelle realtà più piccole, che difficilmente possono permettersi di avere analisti che poi non partecipano all’attività di programmazione, può trattarsi di un Programmatore Senior che svolge anche le mansioni dell’Analista.