AcmIeee

Editoriale: sviluppare o essere sviluppatore?

Roberto Orgiu

Quanti di noi conoscono le due associazioni (ACM e IEEE) che citiamo nell’immagine di testa? Speriamo di essere in tanti, ma sappiamo che purtroppo non è così e, prima di lanciarci in una dissertazione in cui risponderemo (anche) alla domanda che ci poniamo nel titolo, vediamo un pochino in che ambiente ci stiamo per addentrare e come ci siamo arrivati.

Fortunatamente o meno, l’arrivo delle tecnologie cui siamo abituati (Java, XML, linguaggi per il web e chi più ne ha, più ne metta) ha aperto le porte dell’informatica, della programmazione e del modding (inteso nel senso della modifica del firmware di Android) a sempre più persone del settore e non, arricchendo notevolmente il patrimonio informatico che ci circonda. Questo è senza ombra di dubbio un bene, basti pensare a comunità come la nostra o anche XDA: se ci fossero solamente Ingegneri o Informatici, quanti iscritti avremmo?

Questa situazione ha però (come tutte, del resto) un rovescio della medaglia: alla grande maggioranza manca un’educazione informatica, un’infarinatura di cos’è, quali sono i principi, le regole, le associazioni e le persone che hanno reso questa scienza la base del mondo moderno. Vedendola da un punto di vista più ampio, senza queste basi non avremmo trasporti così sicuri ed evoluti, ospedali così pronti, un’informazione così capillare o una comunicazione così semplice. Ma se non ci fossero stati degli standard, saremmo mai riusciti ad avere tutto questo? Senza delle regole, saremmo mai riusciti ad avere, per esempio, Android?

Ed eccoci quindi alle due organizzazioni di cui sopra, l’ACM e la IEEE, pilastri dell’IT, che hanno reso possibile, tra le altre cose, il Wi-Fi: quanti di noi sanno che il nome di questa tecnologia è legato a doppio filo con lo standard IEEE 802.11? Penserete che non è importante sapere il nome specifico di uno standard, ma non è la nomenclatura il punto focale, bensì la presenza di questo standard.

Molte poche persone usano ormai il C come linguaggio principale, e ancora meno sanno cosa sia; molti lo confondono con il C++ e ancor di più lo credono una reminiscenza del passato: l’informatica è una scienza giovane, il passato quanto può essere distante? Chi su questo linguaggio ha passato le notti, tenendo come un tesoro il K&R, vede ad occhio quanta innovazione ha portato guardando un listato Java, ma chi questo paradigma non lo ha mai vissuto?

Per questo ci siamo posti la domanda nel titolo, perché sviluppare ed essere sviluppatore non sono la stessa cosa: entrambe le figure sono accomunate dall’amore per questo mondo, ma lo sviluppatore deve seguire 8 regole che lo contraddistinguano chiaramente, principi stesi da chi vive di questa professione, ci ha buttato ore ed ore, lasciandoci in eredità quello che vediamo e utilizziamo ogni giorno:

  1. Pubblico: gli sviluppatori software devono agire in linea con l’interesse pubblico.
  2. Cliente e datore di lavoro: gli sviluppatori software devono agire in un modo conforme agli interessi del loro cliente e datore di lavoro, restando in accordo con l’interesse pubblico.
  3. Prodotto: gli sviluppatori software devono assicurare che i loro prodotti e le modifiche che vi applicano siano al livello di standard professionale più elevato possibile.
  4. Giudizio: gli sviluppatori software devono mantenere integrità ed indipendenza nel loro giudizio professionale.
  5. Management: manager e leader degli sviluppatori software devono sottoscrivere e promuovere un approccio etico al management dello sviluppo e della manutenzione del software.
  6. Professione: gli sviluppatori software devono far progredire l’integrità e la reputazione della professione, restando in accordo con l’interesse pubblico.
  7. Colleghi: gli sviluppatori software devono essere leali e di supporto nei confronti dei loro colleghi.
  8. Se stessi: gli sviluppatori software devono, per tutta la durata della loro attività lavorativa, continuare la propria formazione sulla pratica della professione, e devono promuovere un approccio etico ad essa.

 

Come leggiamo, è un’etica molto precisa, una serie di regole che dobbiamo accettare e seguire se vogliamo essere considerati sviluppatori, delle norme che vanno sempre di più a confondersi nel mucchio delle cose che nessuno usa più, ma che, se rispolverate, renderebbero migliore la nostra comunità. Molti (troppi) pensano ancora che ostacolando i propri colleghi (per esempio non rivelando come risolvere determinati problemi) riescano a mettersi in una luce migliore, non rilasciando il proprio codice (ma solo il prodotto finito) possano incrementare i propri introiti, fornendo un prodotto non finito gli acquirenti siano costretti a rivolgersi a loro per gli aggiornamenti e le modifiche. Ma per quanto possano essere veritiere queste affermazioni in alcune sporadiche situazioni, quello che si sta facendo è solamente uccidere il progresso e la circolazione delle conoscenze: tutti noi, chi ha ricevuto un’istruzione informatica e chi si avvicina a questo mondo per passione, dovremmo condividere le nostre competenze, insegnando e imparando, presentando Dennis Ritchie a chi non lo conosce e imparando qualcosa da chi ha imparato con passione.

Parlavamo di un’educazione informatica, e siamo convinti che sia la base per essere uno sviluppatore, ma questa istruzione non la possiamo apprendere solo sui banchi, ma anche da chi ci vuole insegnare qualcosa, e allora non dobbiamo fare altro che accettare e ricambiare il favore, perché per potersi considerare a tutti gli effetti un developer non bastano le conoscenze o le competenze, e le nostre non saranno mai abbastanza, che lo vogliamo o no.

Vi lasciamo con i link alla pagina ufficiale degli 8 principi citati, a una versione tradotta e a una scaricabile, e vi salutiamo citando un passaggio del libro scritto da Ian Sommerville, docente di Ingegneria del Software presso l’Università di St. Andrew in Scozia:

Dato il loro ruolo nello sviluppo dei sistemi software, gli sviluppatori software hanno opportunità significative di fare del bene o di causare danni, di mettere in grado altre persone di fare del bene o di causare danni, o di influenzare altri a fare del bene o a causare danni. Per assicurare, per quanto possibile, che i loro sforzi verranno usati a fin di bene, gli sviluppatori software devono impegnarsi a rendere lo sviluppo software una professione rispettata e dagli effetti benefici. In accordo con questo impegno, gli sviluppatori software devono aderire al Codice Etico e di pratica professionale (n.d.r. si intendono i principi di cui sopra).