Indice degli argomenti
Il ruolo del software nelle nostre vite e nelle aziende
Sfide etiche affrontate dagli sviluppatori di software
Il Codice Etico nello sviluppo del software
Il ruolo del software nelle nostre vite e nelle aziende
Quando pensiamo alla parola software, l'etica professionale non è sempre la prima cosa che ci viene in mente.
La qualità di un software di solito viene valutata in base alla velocità di esecuzione, alla facilità di utilizzo o alla stabilità del codice. Cosa c’entra l’etica in tutto questo?
Cerchiamo allora di vedere le cose da un altro lato. Pensiamo a ciò che facciamo quotidianamente e a quante volte in un giorno le nostre abitudini ci portano a interagire con un qualche tipo di software.
Il software gestionale che usiamo per lavorare, le app che utilizziamo per comunicare nel tempo libero o la pagina web da cui leggiamo le notizie o il meteo. Non solo: telefonare, guidare un'auto, comprare cibo, scegliere un ristorante, viaggiare, guardare la TV, fare shopping online - l'elenco potrebbe continuare all'infinito.
La tecnologia e in particolare i software ormai sono parte della nostra vita e per molti sono addirittura irrinunciabili.
Come utilizzatori siamo così abituati a usufruire di questi strumenti da non accorgerci nemmeno più che la maggior parte dei nostri bisogni sono soddisfatti e le nostre azioni tradotte da infinite righe di codice sviluppato da programmatori.
Lo stesso accade nel mondo del business, dove i software aiutano le aziende a essere competitive. Pensiamo per esempio a come un gestionale del magazzino può velocizzare un servizio, a come un programma di contabilità ben progettato possa liberare le risorse aziendali da incombenze burocratiche e gestionali che possono essere rinvestite per innovare, formare il personale… Per non parlare di come la gestione dei clienti attraverso un CRM può impattare sulle vendite.
Se la tecnologia e il software hanno il potere di influenzare fortemente le nostre vite private e aziendali è allora doveroso chiedersi quali “regole” i programmatori seguano nella progettazione di un software, perché la necessità di fare profitti non può e non deve portare le aziende a trascurare gli standard etici di business, ignorando gli effetti collaterali o negativi che alcune azzardate iniziative possono causare alla vita delle persone.
Sfide etiche affrontate dagli sviluppatori di software
Come programmatori, durante la creazione e la progettazione di app e software, ci concentriamo su efficienza, efficacia, competitività e siamo totalmente focalizzati sul soddisfare le richieste e le specifiche del progetto. A prima vista, è facile pensare che la parte tecnica dello sviluppo non sia direttamente correlata all'etica e alla vita delle persone. Dopotutto, sono le pratiche commerciali che influenzano davvero gli utenti.
Tuttavia, è responsabilità di chi progetta - gli ingegneri del software - fornire agli utenti un programma sicuro e trasparente di cui si possano fidare.
I consumatori si affidano a chi crea software per avere un ausilio, strumenti utili per ottimizzare e migliorare il lavoro e la vita quotidiana. Questa fiducia non deve essere supportata solo da regolamenti normativi, ma dall’etica di chi disegna, progetta e produce il software.
Il Codice Etico nello sviluppo del software
Esiste un insieme di regole davvero utili chiamato Codice etico di ingegneria del software che indica gli impegni morali e professionali degli ingegneri del software. Questo codice è stato creato dall’ACM, un team globale composto da più di 100.000 membri esperti programmatori, governativi, militari e universitari.
Riportiamo qui di seguito la versione breve del codice e la relativa premessa:
Gli sviluppatori software devono impegnarsi a rendere l'analisi, la specifica, il disegno, lo sviluppo, il test e la manutenzione del software una professione rispettata e dagli effetti benefici. In accordo con il loro impegno alla salute, alla sicurezza fisica (safety) e al benessere del pubblico, gli sviluppatori software devono aderire agli otto principi qui elencati:
- Pubblico – gli sviluppatori software devono agire in linea con l'interesse pubblico
- 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
- 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
- Giudizio – Gli sviluppatori software devono mantenere integrità ed indipendenza nel loro giudizio professionale
- Management – manager e leader degli sviluppatori devono sottoscrivere e promuovere un approccio etico al management dello sviluppo e della manutenzione del software
- Professione – gli sviluppatori software devono far progredire l'integrità e la reputazione della professione, restando in accordo con l'interesse pubblico
- Colleghi – devono essere leali e di supporto nei confronti dei loro colleghi
- 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.
Cosa dobbiamo considerare quando scegliamo un software
Ma cosa significa nella pratica quotidiana applicare l’etica professionale allo sviluppo (e di conseguenza alla scelta) del software?
Ecco alcuni dei problemi etici di cui gli sviluppatori dovrebbero essere consapevoli quando creano i loro prodotti e che i consumatori dovrebbero valutare nella scelta del software da utilizzare.
- Protezione dei dati dei clienti
Numerosi servizi software oggi vengono offerti gratuitamente o a bassissimo costo in gran parte per raccogliere informazioni e poi riutilizzarle. La sicurezza dei dati personali è una delle maggiori preoccupazioni nel mondo digitale. Le informazioni personali raccolte dai software hanno valore economico non solo per le aziende in termini di marketing, ma anche per i criminali informatici.
Dall'altra parte dobbiamo pensare anche che in alcuni paesi del mondo, dove il reddito pro-capite è di poche decine di euro, utilizzare software free-ware è l'unico modo per dotarsi di un sistema informatico.
Un'azienda eticamente corretta deve esprimere chiaramente le proprie politiche di data privacy e deve dichiarare in modo esplicito il reale scopo per cui i dati sono raccolti.
I clienti devono essere informati in maniera comprensibile su come verranno trattati i loro dati, di come saranno custoditi, protetti, conservati e soprattutto trattati.
Uno sviluppo etico del software rende visibile all'utilizzatore ogni dato raccolto e non deve contenere tracciamenti nascosti.
Uno sviluppo etico del software non può obbligare l'utente a inserire dati che non sono pertinenti con l’applicazione stessa, il suo utilizzo ed il fine dichiarato in fase di installazione.
- Proprietà dei dati dei clienti
Anche la politica riguardante il rilascio dei dati gestiti con il software deve essere esplicitata chiaramente al momento in cui il consumatore sceglie il software. Come già visto sopra, il cliente si affida a chi crea software per avere uno strumento di lavoro.
Se la proprietà del codice utilizzato per creare il software che gestisce i dati è senza dubbio dell’azienda software, la proprietà del dato inserito, che il software gestisce, è sicuramente del consumatore.
Facciamo alcuni esempi: se sviluppiamo un gestionale CRM, il nostro cliente utilizza si aspetta di avere accesso a questi dati in qualsiasi momento, anche quando il rapporto con il fornitore cessa. Il gestionale deve essere progettato per esportare velocemente tutti i dati del cliente e deve essere presente una specifica procedura di restituzione. Così come non è corretto obbligare il cliente a cancellare dati pregressi inserendo vincoli di numero di documenti o record oppure cancellando le informazioni più vecchi di tot. mesi o anni. Un gestionale per la fatturazione elettronica e la gestione della contabilità dovrà lasciare libero accesso ai tutti i documenti che il cliente ha creato nel tempo. Nuovamente, anche in questo caso tutte le fatture e i dati inseriti devono essere riconsegnati al termine del contratto.
In sostanza tutti i dati devono essere accessibili al cliente in ogni momento, e alla cessazione del contratto, deve essere chiaro il modo in cui tali dati vengono resi (senza onere) al cliente.
Come ultimo passaggio, un’azienda eticamente corretta deve eliminare ogni dato di pertinenza del cliente non appena il rapporto contrattuale è cessato.
- Responsabilità nello sviluppo e nel rilascio
Sviluppare ogni parte del software a regola d’arte non è sufficiente. È fondamentale che il software sia testato correttamente, anche quando i tempi di rilascio sono stretti.
Investire tempo e soldi da parte dell’azienda software per fare un corretto processo di debug e test garantirà al consumatore di utilizzare un prodotto sicuro ed eviterà errori e perdite accidentali di dati.
È un comportamento eticamente scorretto tagliare i costi di debugging e test lasciando che sia l’utilizzatore la cavia che deve provare l’affidabilità del nostro codice.
- Etica nello studio dell’interfaccia software (UX)
Disegnare l’interfaccia di un software comporta il pensare all'interazione umana dell’utilizzatore con il nostro software e con il dispositivo utilizzato. Questa relazione uomo-macchina-software si chiama anche UX, ovvero User Experience.
Uno sviluppo etico del software deve evitare il cosiddetto ‘fake-code’, ovvero un’interfaccia volutamente disegnata per influenzare i comportamenti e le decisioni dell’utente.
Vi siete mai chiesti perché negli annunci pubblicitari a tutto schermo non si riesce a trovare la ‘x’ di chiusura o è talmente piccola da non riuscire a cliccarla?
Perché quando vogliamo disabilitare le opzioni di tracciamento dei nostri dati dobbiamo navigare in infiniti menù e sotto-menù come se fossimo Teseo alla ricerca del Minotauro, mentre il messaggio ‘Vuoi attivare la tua posizione GPS’ ci compare spesso e a tutto schermo dove basta un click sul bottone più grande per dire si!
Conclusioni
Per un ingegnere del software è difficile rendersi conto di come il suo lavoro impatti sulla vita delle persone attraverso i prodotti che crea.
Acquisire la consapevolezza che la qualità della vita delle persone che utilizzano il suo prodotto può dipendere anche da come ha creato il software è un buon promemoria!
Migliorare ogni giorno Bit on Cloud è uno di nostri obiettivi principali, e per fare questo ci affidiamo ai collaboratori più preparati e severi che ci siano: i nostri clienti!
Noi di Bit on Cloud ci impegniamo al massimo perché il nostro software sia trasparente, genuino e diretto come noi. Scriviamo codice e progettiamo architetture software per offrire un servizio che migliori ogni giorno la qualità del lavoro e della vita dei nostri clienti, che per noi sono così preziosi da essere considerati partner.