Il “cosa” e il “perché” dell’open source

Quindi stai pensando di iniziare con l’open source? Congratulazioni! Il mondo apprezza il tuo contributo. Parliamo di cos’è l’open source e perché le persone lo fanno.

Cosa significa “open source”?

Quando un progetto è open source, significa che chiunque è libero di utilizzare, studiare, modificare e distribuire il tuo progetto per qualsiasi scopo. Queste autorizzazioni si applicano tramite la licenza open source.

L’open source è potente perché abbassa le barriere all’adozione e alla collaborazione, consentendo alle persone di distribuire e migliorare rapidamente i progetti. Anche perché offre agli utenti la possibilità di controllare i propri computer, rispetto al closed source. Ad esempio, un’azienda che utilizza software open source ha la possibilità di assumere qualcuno per apportare miglioramenti personalizzati al software invece di affidarsi esclusivamente alle soluzioni di prodotto di un fornitore closed source.

Software Libero si riferisce allo stesso insieme di progetti di Open Source. A volte vedrai anche questi termini combinati come “software libero e open source” (FOSS) o “software libero e open source” (FLOSS). Free e libre si riferiscono alla libertà, non al prezzo.

Защо хората отварят кода на работата си?

Ci sono molte ragioni per cui un individuo o un’organizzazione vorrebbe rendere open source un progetto. Alcuni esempi includono:

  • Collaborazione: I progetti open source possono accettare modifiche da chiunque nel mondo. Exercism, ad esempio, è una piattaforma di esercizi di programmazione con oltre 350 contributori.

  • Adozione e remix: i progetti open source possono essere utilizzati da chiunque per quasi tutti gli scopi. Le persone possono persino usarlo per costruire altre cose. WordPress, ad esempio, è iniziato come fork di un progetto esistente chiamato b2.

  • Trasparenza: chiunque può verificare la presenza di bug o incoerenze in un progetto open source. La trasparenza è importante per governi come la Bulgaria o gli Stati Uniti, settori regolamentati come quello bancario o sanitario e software di sicurezza come Let’s Encrypt.

L’open source non riguarda solo il software. Puoi aprire qualsiasi cosa, dai set di dati ai libri. Dai un’occhiata a GitHub Explore per idee su cos’altro puoi aprire.

Open source significa “gratuito”?

Uno dei maggiori vantaggi dell’open source è che non costa denaro. Tuttavia, “gratuito” è un sottoprodotto del valore complessivo dell’open source.

Poiché la licenza open source richiede che chiunque sia in grado di utilizzare, modificare e condividere il tuo progetto per quasi tutti gli scopi, i progetti stessi sono generalmente gratuiti. Se l’utilizzo del progetto costa denaro, chiunque può legalmente farne una copia e utilizzare invece la versione gratuita.

Di conseguenza, la maggior parte dei progetti open source sono gratuiti, ma “gratuito” non fa parte della definizione di open source. Esistono modi per far pagare i progetti open source indirettamente attraverso doppia licenza o funzionalità limitate, pur rispettando la definizione ufficiale di open source.

Dovrei iniziare il mio progetto open source?

La risposta breve è sì, perché indipendentemente dal risultato, avviare il proprio progetto è un ottimo modo per imparare come funziona l’open source.

Se non hai mai aperto un progetto open source prima, potresti essere preoccupato per ciò che la gente dirà o se qualcuno se ne accorgerà. Se suona come te, non sei solo!

Il lavoro open source è come qualsiasi altra attività creativa, che si tratti di scrivere o disegnare. Potresti avere paura di condividere il tuo lavoro con il mondo, ma l’unico modo per migliorare è esercitarsi, anche se non hai un pubblico.

Se non sei ancora convinto, prenditi un momento per pensare a quali potrebbero essere i tuoi obiettivi.

Stabilisci i tuoi obiettivi

Gli obiettivi possono aiutarti a capire su cosa lavorare, a cosa dire di no e dove hai bisogno dell’aiuto degli altri. Inizia chiedendoti perché sto utilizzando questo progetto open source?

Non esiste un’unica risposta corretta a questa domanda. Puoi avere più obiettivi per un progetto o progetti diversi con obiettivi diversi.

Se il tuo unico obiettivo è mettere in mostra il tuo lavoro, potresti non volere nemmeno un contributo e addirittura dirlo nel tuo README. D’altra parte, se desideri contributori, investirai tempo in una documentazione chiara e farai sentire i nuovi arrivati ​​i benvenuti.

Man mano che il tuo progetto cresce, la tua comunità potrebbe aver bisogno di qualcosa di più del semplice codice, da parte tua. Rispondere ai problemi, rivedere il codice ed evangelizzare il tuo progetto sono compiti importanti in un progetto open source.

Anche se la quantità di tempo che dedichi ad attività non di codifica dipenderà dalle dimensioni e dall’ambito del tuo progetto, dovresti essere preparato come manutentore a gestirle da solo o a trovare qualcuno che ti aiuti.

Se fai parte di un’azienda che offre un progetto open source, assicurati che il tuo progetto disponga delle risorse interne necessarie per prosperare. Ti consigliamo di determinare chi è responsabile del mantenimento del progetto dopo il lancio e come condividerai tali attività con la tua comunità.

Se hai bisogno di un budget o di personale dedicato per la promozione, le operazioni e la manutenzione del progetto, avvia queste conversazioni in anticipo.

Contributo ad altri progetti

Se il tuo obiettivo è imparare a collaborare con gli altri o capire come funziona l’open source, valuta la possibilità di contribuire a un progetto esistente. Inizia con un progetto che già usi e che ti piace. Contribuire a un progetto può essere semplice come correggere un errore di battitura o aggiornare la documentazione.

Se non sei sicuro di come iniziare come collaboratore, consulta la nostra Come contribuire alla guida Open Source.

Inizia il tuo progetto open source

Non esiste il momento perfetto per aprire la tua attività. Puoi rendere open source un’idea, in lavorazione o dopo anni di closed source.

In generale, dovresti aprire il tuo progetto quando ti senti a tuo agio con gli altri che visualizzano e forniscono feedback sul tuo lavoro.

Non importa in quale fase decidi di aprire il tuo progetto, ogni progetto deve includere la seguente documentazione:

In qualità di sostenitore, questi componenti ti aiuteranno a comunicare le aspettative, a gestire i contributi e a proteggere i diritti legali di tutti (inclusi i tuoi). Aumentano notevolmente le tue possibilità di un’esperienza positiva.

Se il tuo progetto è su GitHub, posizionare questi file nella directory root con i nomi file consigliati aiuterà GitHub a riconoscerli e a mostrarli automaticamente ai tuoi lettori.

Selezione della licenza

Una licenza open source garantisce che altri possano utilizzare, copiare, modificare e contribuire al tuo progetto senza conseguenze. Ti protegge anche da situazioni legali difficili. Devi includere una licenza quando avvii un progetto open source.

Il lavoro legale non è divertente. La buona notizia è che puoi copiare e incollare una licenza esistente nel tuo repository. Ci vorrà solo un minuto per proteggere il tuo duro lavoro.

MIT, Apache 2.0 e GPLv3 sono le licenze open source più popolari, ma ci sono altre opzioni, da qualle scegliere .

Quando crei un nuovo progetto su GitHub, ti viene data la possibilità di scegliere una licenza. Includere una licenza open source renderà il tuo progetto GitHub open source.

Seleziona una licenza

Se hai altre domande o dubbi sugli aspetti legali della gestione di un progetto open source, ti abbiamo coperto.

Scrivi README

I README fanno molto di più che spiegare come utilizzare il tuo progetto. Spiegano anche perché il tuo progetto è importante e cosa possono farci i tuoi utenti.

Nel README, prova a rispondere alle seguenti domande:

  • Cosa fa questo progetto?
  • Perché è utile questo progetto?
  • Come iniziare?
  • Dove posso ottenere ulteriore aiuto se ne ho bisogno?

Puoi utilizzare il file README per rispondere ad altre domande, ad esempio come gestisci i contributi, quali sono gli obiettivi del progetto e informazioni su licenza e attribuzione. Se non vuoi accettare contributi o il tuo progetto non è ancora pronto per la produzione, salva queste informazioni.

A volte le persone evitano di scrivere un README perché pensano che il progetto sia incompiuto o non vogliono contributi. Questi sono tutti ottimi motivi per scriverne uno.

Per ulteriore ispirazione, prova a utilizzare la guida “Crea un README” di @dguo o README nel modello di @PurpleBooth per scrivere un completo README.

Quando includi un file README nella directory root, GitHub lo visualizzerà automaticamente nella home page del repository.

Scrivi le linee guida per il tuo contributo

Un file CONTRIBUTO indica al tuo pubblico come partecipare al tuo progetto. Ad esempio, puoi includere informazioni su:

  • Come inviare una segnalazione di bug (prova a utilizzare modelli di richiesta problemi e pull)
  • Come proporre una nuova funzionalità
  • Come configurare il tuo ambiente ed eseguire i test

Oltre ai dettagli tecnici, il file CONTRIBUTI è un’opportunità per comunicare le vostre aspettative per i contributi, come ad esempio:

  • I tipi di contributi che stai cercando
  • La tua tabella di marcia o visione per il progetto
  • Come i contributori dovrebbero (o non dovrebbero) contattarti

Usare un tono caldo e amichevole e offrire suggerimenti specifici per i contributi (come scrivere documentazione o creare un sito web) può fare molto per far sentire i nuovi arrivati ​​benvenuti ed entusiasti di partecipare. Per esempio Active Admin inizia la sua guida ai contributi con:

Innanzitutto, grazie per aver considerato di contribuire ad Active Admin. Sono le persone come te che rendono Active Admin uno strumento così eccezionale.

Nelle prime fasi del tuo progetto, il tuo file CONTRIBUTO può essere semplice. Dovresti sempre spiegare come segnalare bug o problemi, ed eventuali requisiti tecnici (come i test) per dare un contributo.

Nel tempo, potresti aggiungere altre domande frequenti al tuo file CONTRIBUTING. Annotare queste informazioni significa che meno persone ti faranno sempre le stesse domande.

Per ulteriore assistenza nella scrittura del file CONTRIBUTING, consulta @nayafia modello guida per la collaborazione o @mozilla “Come creare CONTRIBUTING.md”.

Collega il tuo file CONTRIBUTE dal tuo README in modo che più persone possano vederlo. Se posiziona il file CONTRIBUTING nel repository del tuo progetto, GitHub si collegherà automaticamente al tuo file quando un collaboratore crea un problema o apre una richiesta pull.

Linee guida per i contributi

Creazione di un codice di condotta

Infine, un codice di condotta aiuta a definire le regole di base per la condotta dei partecipanti al progetto. Ciò è particolarmente utile se stai avviando un progetto open source per una comunità o un’azienda. Un codice di condotta ti consente di facilitare un comportamento sano e costruttivo nella comunità che ridurrà il tuo stress come sostenitore.

Per ulteriori informazioni, consultare la nostra Guida al Codice di condotta.

Oltre a comunicare come ci si aspetta che i partecipanti si comportino, un codice di condotta tende anche a descrivere a chi si applicano tali aspettative, quando si applicano e cosa fare se si verifica una violazione.

Come per le licenze open source, esistono standard emergenti per i codici di condotta, quindi non è necessario scriverne uno proprio. Il Contributor Covenant è un codice di condotta utilizzato da oltre 40.000 progetti open source, incluso Kubernetes, Rails e Swift. Indipendentemente dal testo che utilizzi, devi essere pronto a far rispettare il tuo codice di condotta quando necessario.

Incolla il testo direttamente in un file CODE_OF_CONDUCT nel tuo repository. Archivia il file nella directory principale del tuo progetto in modo che sia facile da trovare e collegalo dal tuo file README.

Assegna un nome e un marchio al tuo progetto

Il branding è più di un logo appariscente o di un nome di progetto accattivante. Riguarda il modo in cui parli del tuo progetto e chi raggiungi con il tuo messaggio.

Scegliere il nome giusto

Scegli un nome che sia facile da ricordare e che, idealmente, dia un’idea di ciò che fa il progetto. Per esempio:

  • Sentry monitora le applicazioni di segnalazione degli arresti anomali
  • Thin è un server web Ruby facile e veloce

Se stai sviluppando un progetto esistente, usare il loro nome come prefisso può aiutarti a chiarire cosa fa il tuo progetto (ad esempio node-fetch porta window.fetch a Node.js).

Pensa prima alla chiarezza. I giochi di parole sono divertenti, ma ricorda che alcune battute potrebbero non essere applicabili ad altre culture o persone con esperienze diverse dalle tue. Alcuni dei tuoi potenziali utenti potrebbero essere dipendenti dell’azienda: non vuoi farli sentire a disagio quando devono spiegare il tuo progetto al lavoro!

Evitare conflitti di nomi

Verifica la presenza di progetti open source con nomi simili, soprattutto se condividi la stessa lingua o ecosistema. Se il tuo nome si sovrappone a un popolare progetto esistente, potresti confondere il tuo pubblico.

Se desideri che un sito web, un account Twitter o altre proprietà rappresentino il tuo progetto, assicurati di poter ottenere i nomi che desideri. Idealmente, salva questi nomi adesso per la massima tranquillità, anche se non intendi ancora utilizzarli.

Assicurati che il nome del tuo progetto non violi alcun marchio. Un’azienda potrebbe chiederti di rimuovere il tuo progetto in un secondo momento o addirittura intraprendere un’azione legale contro di te. Non vale la pena rischiare.

Puoi controllare il WIPO Global Brand Database per eventuali conflitti tra marchi. Se lavori in un’azienda, questa è una delle cose in cui il tuo team legale può aiutarti.

Infine, esegui una rapida ricerca su Google per il nome del tuo progetto. Le persone riusciranno a trovare facilmente il tuo progetto? C’è qualcos’altro che appare nei risultati di ricerca che non vuoi che venga visualizzato?

Anche il modo in cui scrivi (e codifichi) influisce sul tuo marchio!

Nel corso della vita del tuo progetto, scriverai molto: README, tutorial, documenti della community, risposte a problemi, forse anche newsletter e mailing list.

Che si tratti di documentazione formale o di un’e-mail informale, il tuo stile di scrittura fa parte del marchio del tuo progetto. Pensa a come potresti percepire il tuo pubblico e se questo è il tono che vuoi trasmettere.

Usare un linguaggio caldo e inclusivo (come “loro” anche quando si riferisce a una sola persona) può fare molto per far sì che il tuo progetto si senta accogliente per i nuovi contributori. Attieniti a un linguaggio semplice poiché molti dei tuoi lettori potrebbero non essere di madrelingua inglese.

Oltre al modo in cui digiti le parole, anche il tuo stile di codifica può diventare parte del marchio del tuo progetto. Angular e jQuery sono due esempi di progetti con stili e linee guida di codifica rigorosi.

Non è necessario scrivere una guida di stile per il tuo progetto quando hai appena iniziato e potresti scoprire che ti diverti comunque a incorporare diversi stili di codifica nel tuo progetto. Ma devi prevedere in che modo il tuo stile di scrittura e programmazione potrebbe attrarre o scoraggiare diversi tipi di persone. Le prime fasi del tuo progetto sono la tua opportunità per creare il precedente che desideri vedere.

La tua lista di controllo pre-lancio

Pronto per aprire il tuo progetto? Ecco una lista di controllo per aiutarti. Seleziona tutte le caselle? Sei pronto per andare! Fai clic su “pubblica” e datti una pacca sulla spalla.

Documentazione

Код

Хора

Se sei un privato:

Se sei un’azienda o un ente:

Fallo!

Congratulazioni per il tuo primo progetto open source. Qualunque sia il risultato, il servizio pubblico è un dono per la comunità. Con ogni coinvolgimento, commento e richiesta pull, crei opportunità per te e gli altri di apprendere e crescere.