Sviluppatore di software
# Sviluppatore di software

In informatica uno sviluppatore software è un programmatore che si prende cura di uno o più aspetti del ciclo di vita del software, che è un qualcosa di più ampio della vera programmazione in sé. Questa figura può contribuire alla visione d'insieme del progetto ad un livello applicativo così come a livello di componenti o operazioni individuali di programmazione (la codifica dell'algoritmo). Altri nomi che vengono spesso usati nello stesso contesto ravvicinato sono analista software e ingegnere del software.

## Descrizione

Col passar del tempo, le differenze tra progettazione di sistema, ciclo del software (o sviluppo del software) e programmazione sono più evidenti. Già nel mercato del lavoro ci sono differenziazioni tra i programmatori e gli sviluppatori, essendo colui che in pratica implementa il software non è lo stesso che progetta la struttura di una classe o la gerarchia delle classi o dei moduli.

Nel settore delle applicazioni e dei servizi IT, esiste un'altra categoria professionale, distinta da quella dei programmatori e degli sviluppatori (sebbene sia una derivazione di quest'ultima): i "consulenti (applicativi)" (spesso si utilizzano termini inglesi per descrivere questi ruoli). I consulenti sono quelli che configurano il sistema/applicazione per il suo utilizzo in un determinato ambiente di utilizzo (tipicamente per o presso un cliente). Ad esempio, un'azienda che produce o commercializza software ERP utilizza i consulenti applicativi per adattare e implementare (questo significa configurare e customizzare) la soluzione standard presso il cliente. Qualora l'adattamento richieda delle personalizzazioni che necessitano di programmazione (uscendo quindi dall'ambito della configurazione), allora essi ricorrono al reparto specifico.

Col termine inglese source code repository (o source code hosting facilities) si indicano siti Internet in cui è disponibile un'enorme quantità di codice, accessibile pubblicamente a chiunque oppure con restrizioni di licenza e a pagamento, per l'assemblaggio di componenti software "chiavi in mano" o di pagine web. Il codice sorgente è reso disponibile tramite archivi di file oppure nella pagina Internet, e spesso è già testato in ambiente di produzione e funzionante. Una volta inserito, viene legato a progetti di sviluppo open-source o di molteplici versioni. Offrono funzionalità di controllo versione, bug tracking system, gestione dei rilasci, mailing list, e documentazione basata su siti wiki.

