L’ingegneria del software dovrebbe richiedere una certificazione professionale, licenze, test e regolamentazione?

No, l'ingegneria del software non dovrebbe richiedere una certificazione professionale.

Sono stato un ingegnere del software con licenza in Canada (dove è la legge che bisogna avere una licenza per usare il titolo di ingegnere) per quasi 10 anni. Sono stato uno sviluppatore di software per più di 30.

Cinque anni fa avrei potuto dire SI, ma ho cambiato idea.

Ecco perché:

  • Le organizzazioni che rilasciano licenze sono burocratiche. È molto difficile per loro stare al passo con l'evoluzione delle sfide, dei problemi e delle forze economiche. I test rimarranno sempre indietro. Questo è particolarmente vero nella tecnologia dell'informazione.
  • In Canada, queste organizzazioni non sono la polizia, quindi si affidano ad altre persone per denunciare gli ingegneri che non rispettano le regole. La gestione dei reclami è molto burocratica. È una specie di copia a buon mercato dei sistemi giudiziari già esistenti nel governo, perché le risorse sono molto limitate. Il risultato peggiore di una denuncia è che una persona viene espulsa dall'organizzazione e non può più praticare sul campo. Questo è davvero nulla, rispetto alle sanzioni civili per aver fatto qualcosa di irresponsabile.
  • Gli ingegneri sono umani e quindi corruttibili, nonostante la certificazione, la licenza, ecc. Cercate la commissione Charbonneau per sapere quanto è estremo questo problema in Quebec. È così grave che l'Ordine degli ingegneri qui deve usare risorse per fare un controllo politico dei danni, il che diluisce ulteriormente la sua efficacia nel fare le cose per cui è stato progettato.

In effetti, sono stato una delle prime persone ad avere la licenza di ingegnere del software in Quebec, perché sono un professore in un'università che ha offerto una delle prime lauree di ingegneria del software in Quebec nel 2001.

Quando ho fatto domanda per la licenza di ingegnere del software, non c'erano test stabiliti per cose come la progettazione del software, l'ingegneria dei requisiti, ecc. C'erano test relativi all'informatica, come strutture di dati, algoritmi, ecc. La licenza per la parte di ingegneria del software era basata su testimonianze (lettere) dei miei ex datori di lavoro riguardo alla natura delle attività di ingegneria dei lavori che svolgevo, così come un colloquio di 3 ore con l'Ordine sul mio CV.

Un anno circa dopo aver ottenuto la licenza di ingegnere junior, sono stato contattato dall'Ordine per creare e amministrare i test di progettazione software per loro. Il lavoro non era davvero interessante dal punto di vista della paga, quindi ho educatamente rifiutato.

In conclusione, anche se credo che la nozione teorica di licenza abbia senso (in termini di stabilire la competenza -- insegno in un programma di bachelor di ingegneria del software), semplicemente non funziona bene nella pratica. Il software che è critico per la sicurezza passa già attraverso una validazione che è rigorosa (DO-178C, ISO-62304). Le forze del mercato e i tribunali civili faranno il lavoro per il resto.