Open Source e Inner Source¶
Si può forse brevettare il sole?¶
- "A chi appartiene il brevetto?"
- "Direi alla gente. Non esiste un brevetto. Si può forse brevettare il sole?" risposta di Salk al brevetto sul vaccino antipolio, 1952
e così tutt'ora molto del nostro mondo è costruito su tecnologie e convenzioni aperte patrimonio dell'umanità:
- Internet (TCP/IP e protocolli) / Apache
- Firefox / Chromium
- LibreOffice / OpenOffice
- il formato PDF
- Blender
- Midi
- ISO e tutti gli standard industriali
Open Source¶
Il termine "Open Source" si riferisce a prodotti il cui codice sorgente è aperto, pubblico, condiviso con il mondo.
I progetti OpenSource richiedono una collaborazione aperta, una buona comunicazione pubblica e un'adeguata qualità generale.
Collaborare pubblicamente su un progetto implica:
- più occhi e più mani
- accessibilità
- diffusione
Inoltre si possono usare progetti preesistenti per non dover reinventare tutto, sopratutto i bricks (mattoni) di base, spesso i più complessi, le famose librerie o packages, oggi tanto integrate in ogni ambiente di sviluppo.
É inoltre gratificante migliorare un progetto comune, dove altri costruiscono partendo da dove siamo arrivati noi.
in un progetto Open si dà molto, è forse un po' più faticoso, ma si riceve ancora di più
Pros¶
- costo: gratuito
- scalabilità: si parte con una soluzione minima e poi si scala
- community engagement: mille occhi puntati.
- flessibilità: gli sviluppatori open hanno a cuore il non essere "locked-in" una soluzione chiusa, quindi c'è grande inter-operabilità
- le Università, i Centri di Ricerca, le Istituzioni e tanti Indie ormai lavorano qui
- licenza: non bisogna tenere conto dei problemi di utilizzo / tracciare le licenze. Non c'è scadenza
Cons¶
- problemi di sicurezza
- mancanza di garanzia, manutenzione e supporto
- non sempre user-friendly / necessita studio
- facilità di progetti abbandonati / segmentazione
- non sempre c'è qualità
Considerazioni sull'Open Source¶
- una filosofia, più che una pratica
- storia: anni 90, Linux il primo grandissimo progetto OpenSource, big companies oggi lo adottano (Facebook, Google, Microsoft, Oracle), ROI (Return Of Investment)
- intelligenza collettiva: in tanti possono partecipare e mettere il meglio di se in modalità open e meritocratica
- feedback in tempo reale con gli utenti
- possibilità di lavoro (manutenzione, customizzazione, velocità)
- il progetto sopravvive al nostro tempo e interesse. qualcun altro potrà portarlo avanti
- aprire i propri cassetti di idee e pubblicare.
- Game Jams sono i migliori eventi dove il prodotto deve essere rilasciato OpenSource. più del prodotto in sé è interessante il come è stato fatto, con chi e le referenze a futuro (portfolio)
InnerSource¶
l'InnerSource è il processo di sviluppo collaborativo di progetti basandosi sulle tecnologie e procedure OpenSource, ma stando all'interno di un ambiente privato, non pubblico.
l'InnerSource usa le skills degli sviluppatori abituati all'OpenSource e le porta dentro i firewalls dei progetti privati, garantendo una piattaforma interna per collaborare ai progetti.
- OpenSource dietro ad un firewall
- lavorare internamente come se fosse un progetto OpenSource
- portare le best practices dell'OpenSource nel team work
- Inner-sourcing è un mind-shift mentale
Perché InnerSource¶
- la tecnologia rimane proprietaria
- sviluppo più efficiente
- riuso del codice: comprensione del codice e dell'architettura dei moduli sviluppati da altri
- codice più pulito
- Documentazione Completa: il codice è documentato meglio
- riduzione dei colli di bottiglia
- ottimizza la collaborazione
- migliora i contributi dei talenti
- Collaborazione cross-teams
- riduce la concentrazione della Conoscenza
- sviluppo più veloce, con Unit Tests e Continuous Integration
- mix tra repo privati e pubblici
Closed Source vs Open Source¶
Tutti i progetti "proprietari" hanno virtù tipo - poter usare assets commerciali - segreto industriale - controllo sulla proprietà - ...
Approfondimenti¶
- https://opensource.org/osd
-
Contributing to Open Source for the first time https://www.youtube.com/watch?v=c6b6B9oN4Vg
- https://github.com/InnerSourceCommons
- How to create an internal InnerSource community
- video InnerSource Journey with GitHub
- video GitHub: InnerSource: Reaping the Benefits of Open Source, Behind Your Firewall
- video GitHub Satellite 2017 - Global Software Development with InnerSource