Ingegneria del codice è un’applicazione creativa di metodi formali e di conoscenze tecnologiche ed empiriche in un processo produttivo sistematico che ha come finalità lo sviluppo di un progetto informatico.
Come già dalla definizione si evince, sono importanti i fattori di conoscenze tecnologiche ed empiriche e, dato che nel campo informatico esistono diverse tecnologie (linguaggi di programmazioe, framework, server di basi di dati, architetture dei processori, ecc), questo implicherebbe che in realtà non si tratta di una sola ingegneria, ma di un comune denominatore di un’intera famiglia di discipline. In realtà, non è proprio così, quei comuni denominatori permettono benissimo di trattare (e insegnare) l’ingegneria del codice in modo generico e agnostico rispetto alle particolari tecnologie, e starebbe poi a chi la applica di tener conto delle peculiarità delle tecnologie utilizzate. Però, noi non adottiamo (per nostra scelta, che fino ad ora si è dimostrata vincente!) questo approccio generico (non per tutto il corso, almeno). Il nostro approccio è proprio quello di insegnare l’ingegneria del codice in modo applicato e mirato, utilizzando le tecnologie scelte dal cliente in modo di renderlo più possibilmente produttivo nel minore tempo possibile, proprio con le tecnologie che lui usa. Dunque, i nostri corsi dell’ingegneria del codice hanno un impronta prettamente pratica.
I nostri corsi di ingegneria del codice, inoltre, non solo non sono generici, non solo tengono conto delle tecnologie utilizzate dai nostri clienti, ma se necessario possono anche essere pragmaticamente legati ai progetti concreti che il cliente ha bisogno di sviluppare. Il cliente che ci richiede una docenza dell’ingegneria del codice ci dovrebbe sotoporre l’elenco delle tecnologie usate, se lo ritiene necessario descriverci anche i progetti che deve realizzare, e in base a quelle informazioni noi sviluppiamo un corso dedicato.
I corsi, certo, devono sempre partire dai principi trasversali e generici, e questi fanno parte integrante dei nostri corsi, ma l’accento di ogni docenza è posto sulle esigenze pratiche in un contesto tecnologico ben definito.
Trattiamo, in maniera generale, argomenti come struttura e organizzazione dei programmi, architetture del codice, progettazione e schemi progettuali, regole empiriche di buona programmazione. Tutte queste cose vengono esposte come parte del contesto lavorativo presentatoci dal cliente.
Il nostro corso sull’Ingegneria del codice è organizzato in modo di essere strettamente correlato al nostro corso sulla prototipazione rapida e al corso di sviluppo guidato dalle verifiche. Suggeriamo, perciò, di considerare di prendere i tre corsi in un unico pacchetto. Altri corsi utili da considerare sono quelli sugli algoritmi e strutture dati e sugli automi.