Bit #4 - Applicare il Product Mindset al Software Open Source
Un Percorso Verso la Sostenibilità
È passato qualche mese dall’ultimo Bit ma eccomi qui di nuovo ad affrontare temi legati alla tecnologia e all’etica. In questo caso parlerò di buon senso e questa volta lo applichiamo allo sviluppo di software open source.
Nell'ambito dello sviluppo software, l'open source rappresenta una frontiera entusiasmante, ricca di opportunità per innovazione e collaborazione. Questo paradigma ha trasformato il modo in cui concepiamo, creiamo e distribuiamo la tecnologia, promuovendo al contempo una cultura di trasparenza e condivisione. Tuttavia, porta con sé una serie di sfide uniche, specialmente quando si tratta di assicurare che i progetti rimangano vitali e pertinenti nel lungo termine.
Affrontare lo sviluppo di software open source senza perdere di vista la direzione e l'integrità del progetto può rivelarsi un'impresa ardua. La collaborazione estesa a persone che appartengono ad ogni tipo di realtà, azienda, fuso orario o cultura, pur essendo la linfa vitale di tali iniziative, introduce la difficoltà di mantenere una coerenza di visione in mezzo a un mare di contributi esterni. In aggiunta, la sostenibilità finanziaria resta un tema scottante: come può un progetto prosperare senza un supporto economico continuativo? La soluzione a queste problematiche si può intravedere adottando quello che viene definito un "product mindset", trattando qualsiasi progetto open source come se fosse un prodotto.
Ma cos’è esattamente un “prodotto”?
Partendo dalla definizione di prodotto offerta da Wikipedia1, scopriamo che esso in economia si configura come un insieme di attributi tangibili e intangibili, sia esso un bene o un servizio, che mira a fornire un beneficio all'utilizzatore. Questo beneficio è tipicamente il risultato di un processo di produzione o creazione che sfrutta risorse iniziali per generare un valore aggiunto finale. Questo concetto mi porta a riflettere su come, in realtà, anche il software open source rientri perfettamente all'interno di questa definizione di prodotto. Il software open source rappresenta senza dubbio un insieme di attributi tangibili e intangibili, creato e sostenuto da una community dedicata, che fornisce un servizio o un bene allo scopo di apportare un beneficio significativo ai suoi utilizzatori.
Considerando che tale software viene sviluppato attraverso un processo collaborativo aperto, coinvolgendo contributi da diverse fonti e basandosi su risorse iniziali quali il tempo, l'expertise e la passione degli sviluppatori, è evidente come il valore aggiunto finale sia un elemento intrinseco di questi progetti. La community dietro a ogni progetto open source dedica innumerevoli ore per creare, testare e migliorare il software, rendendolo non solo utilizzabile ma anche adattabile alle specifiche necessità degli utenti finali. La facilità con cui gli utilizzatori possono accedere, utilizzare e persino modificare il software conferma l'alto grado di usabilità che caratterizza molti progetti open source.
Inoltre, la fattibilità tecnica di questi progetti è spesso dimostrata dal loro stesso esistere. La natura open source incoraggia una costante iterazione e miglioramento, grazie al contributo di una vasta gamma di esperti tecnici. Questo processo collaborativo assicura che i vincoli tecnologici siano identificati e superati in modo efficace, portando alla realizzazione di soluzioni innovative che altrimenti potrebbero non vedere la luce.
La sostenibilità è un aspetto cruciale per qualsiasi progetto open source. Mentre il software stesso può essere liberamente accessibile, il progetto sottostante deve trovare un modello che ne garantisca la continuità operativa e lo sviluppo futuro. Questo può includere donazioni, sponsorizzazioni, o altre forme di supporto finanziario che consentono ai maintainer di dedicarsi al progetto con la sicurezza di una base economica solida.
Applicare il product mindset al mondo del software open source, quindi, non significa solo riconoscere il valore che questi progetti apportano agli utenti finali, ma anche comprendere e affrontare le sfide legate alla loro usabilità, fattibilità e sostenibilità. Un approccio olistico e attentamente ponderato può guidare lo sviluppo di software open source verso un successo duraturo, beneficiando non solo la comunità di sviluppatori ma l'intero ecosistema di utenti che da esso traggono vantaggio.
Tutto quello che hai letto nel precedente paragrafo altro non è che il modelle dei 4 rischi di Marty Cagan2.
E l’etica?
È fondamentale includere una dimensione etica nell'analisi dei rischi associati allo sviluppo di un prodotto, open source o no. Oltre ai tradizionali parametri di valore, usabilità, fattibilità e sostenibilità, emerge con prepotenza la necessità di valutare l'impatto etico delle scelte tecniche e strategiche adottate. Questo aspetto comporta la considerazione di come le decisioni relative al progetto influenzino non solo gli utenti finali ma anche la comunità più ampia, l'ambiente e la società nel suo complesso.
L'etica, in questo contesto, trascende la semplice conformità alle norme legali o agli standard di sicurezza del software. Implica una riflessione profonda sugli obiettivi a lungo termine del progetto e sulle sue implicazioni sociali. Ciò include la valutazione di come il software promuova l'accessibilità, la privacy, la trasparenza e il rispetto dei diritti degli individui. È essenziale considerare se il software sia strumentalizzato per fini discutibili o se, al contrario, contribuisca positivamente al benessere collettivo e alla diffusione della conoscenza.
Incorporare la dimensione etica nella valutazione dei progetti open source significa anche riconoscere e valorizzare i principi espressi nei loro manifesti o nelle loro linee guida comunitarie. Questi documenti spesso riflettono una chiara visione dei valori fondanti del progetto, come l'uguaglianza di accesso alle risorse tecnologiche o la salvaguardia della privacy. Quando un progetto dimostra attraverso le sue pratiche di essere guidato da principi etici forti, non solo guadagna credibilità e fiducia all'interno della community ma si posiziona anche come un modello positivo nell'ecosistema tecnologico più ampio.
Perché applicare il product mindset al mondo open source?
I progetti open source spesso nascono da esigenze personali, o da una passione che spinge lo sviluppatore a diffondere la sua conoscenza o per cercare persone che hanno lo stesso interesse e per creare una community dove potersi confrontare.
Spesso le aziende si servono di software open source per realizzare prodotti commerciali e guidate dalle esigenze di marketing, cannibalizzano quello che era il vero intento di uno specifico prodotto open source.
Ad oggi i developer sono restii ad affrontare lo sviluppo di software open source con un approccio orientato al prodotto, ma di fatto per evitare di incorrere nel rischio di fallire anche i software open source andrebbero sviluppati con con la stessa mentalità, osservando quindi i potenziali rischi:
Chi utilizza il software open source deve trovare effettivo vantaggio. Ad esempio io e il mio team abbiamo sempre utilizzato Django, un framework web scritto in Python e questo ci facilità nelle nostre attività lavorative.
Il software open source deve essere usabile. Se non riuscissimo ad avere una facilità di utilizzo probabilmente utilizzeremmo altri framework
Deve essere realizzabile tecnicamente. E questo nel mondo dell’open source avviene sempre dato che l’idea generalmente parte dagli sviluppatori che quindi sicuramente possono realizzare quello che immaginano.
Deve essere sostenibile. Se non ci fosse sostenibilità economica il progetto fallirebbe e così anche gli utilizzatori perderebbero il beneficio.
Infine deve rispondere ai principi etici e questo perché bisogna evitare di creare danni potenziali a chi poi in qualche modo impiegherà il software open source per costruire prodotti verso gli utenti finali.
Ecco, tutto questo è necessario per evitare sprechi e produrre impatti evidenti e positivi.
Per approfondire tutte queste tematiche ti invito a leggere un articolo che parla di product thinking.
Per questo articolo voglio ringraziare Piero Savastano, creatore del Cheshire Cat per una conversazione che abbiamo avuto su Tik Tok che mi ha ispitrato.
E con questo ti saluto e ci sentiamo al prossimo bit.
Raffaele.