Come può un ingegnere informatico non produrre software?
Beh, certo, è possibile, anzi possibilissimo.
Comunque sia per me programmare è anche un divertimento. Dunque di tanto in tanto, preso da qualche raptus di follia, mi ritrovo a programmare ad improbabili orari, molto spesso senza neppure un preciso scopo.
In ordine sparso si può trovare in questa sezione qualche esempio di quel che ho creato per diletto.
Una nota che mi sta a cuore.
Fare software, specialmente per i non addetti al lavoro, sembra un'attività abbastanza semplice nonché veloce.
Evidentemente ci sono molteplici motivazioni che portano a questa credenza popolare. A mio avviso, la principale causa di tale diffuso pensiero risiede nel fatto che il codice non è tangibile, è qualcosa di assimilabile al pensiero, è etereo e dunque è pure difficile dargli un valore. Grosso (grosso) guaio per i poveri informatici è che tale concetto è radicato sia nelle sinapsi della massaia che fa la spesa al supermercato, sia in quelle dei super-mega-manager delle aziende (rarissimamente i pezzi grossi sono di estrazione informatica).
Gli aneddoti legati alla vita del programmatore che si scontra con i non programmatori sono miriadi.
Mi permetto di consigliarvi la lettura di alcuni dei libri della magnifica serie di "Dilbert" di Scott Adams. Scott Adams è un famoso fumettista americano che ha creato il personaggio di Dilbert; le sue striscie sono spassosissime ed il tema di fondo è il mondo del lavoro. Scott nella sua giovinezza fece il programmatore ed ha usato a piene mani la sua esperienza diretta nel magico mondo dell'informatica per scrivere i suoi geniali testi. Vi assicuro che incredibilmente le battute che mi fanno un sacco ridere sono decisamente molto vicine alla realtà che noi poveri e bistrattati programmatori viviamo quotidianamente!
Riporto di seguito delle frasi introduttive di alcuni famosi libri scritti da luminari della computer science, se lo dicono loro, chissà, magari hanno pure ragione.
"Progettare software ad oggetti è difficile; riuscire a renderlo riusabile è ancora più difficile"
[Design Patterns - E. Gamma]
"Even bad code can function. But if code isn't clean, it can bring a development organization to its knees."
[Clean Code - Robert C. Martin]
Qualche tempo fa tenni un breve corso introduttivo al software pensato per i colleghi appartenenti ad altri reparti. Riporto di seguito quanto scritto nella slide conclusiva del corso.
Regole d’oro per un sano rapporto con un SW engineer:
Se qualcosa non funziona prima è bene pensare che il problema sia meccanico, elettrico o elettronico. Solo in ultima battuta pensare che sia un probelma software! NON FARE IL VICEVERSA!
La probabilità che vi sia un baco in un software è alta, in fin dei conti gestisce una valanga di operazioni, specialmente a causa di errate progettazioni meccanico/elettriche;
Tener presente che: il mestire del programmatore è quanto più si avvicina alla figura del mago (riuscire a dare una sorta di intelligenza ad oggetti altresì inanimati è un miracolo pensando che la natura/società con molti esseri viventi non ci è riuscita).
[Ruffo Alberto E.]