Con programmazione intendiamo tutte le attività svolte direttamente sulla macchina per giungere al risultato finale. Avremo quindi sia una attività di codifica, che di installazione, configurazione, caricamento e manutenzione dei dati.
Considerando gli aspetti globali di un progetto software ci si accorge immediatamente che l’attività che viene svolta al computer non è solo di codifica.
Per ogni progetto va definita una particolare configurazione hardware, che può variare del singolo personal stand-alone alla rete geografica che connette reti locali di tipo diverso. Naturalmente chi guida il processo di produzione deve occuparsi anche della verifica della configurazione delle macchine su cui girerà il prodotto finale.
Terminato il lavoro di produzione dell’applicazione si dovranno impostare anche una serie di programmi collaterali, spesso legati all’architettura hardware ed ai sistemi operativi, come il salvataggio e il ripristino dei dati, la gestione della sicurezza, il check periodico per la verifica dell’integrità dei dati. Se nel corso dello sviluppo bisogna cambiare il database dovrà essere prodotto il programma di conversione dei dati già inseriti dall’utente.
Oltre al codice dell’applicazione che si sta producendo, bisogna gestire e mantenere tutti i tool di produzione. In ogni caso esisterà un interprete o un compilatore del linguaggio prescelto, delle librerie di routine di uso comune, dei linker, dei programmi di trasferimento tra la macchina di sviluppo e le macchine target.
Considerando tutti questi aspetti si vede come l’attività al computer vada ben oltre quella di sola creazione del codice del programma che verrà consegnato al cliente. Fortunatamente la via da seguire per la gestione di tutto quello che è il "collaterale" è oggi abbastanza ben definita: linguaggi ad alto livello con compilatori veloci, sistemi operativi con supporto almeno della rete, sistemi di database che rendano indipendenti i dati dal linguaggio con cui viene scritto il programma.