Come gestire la crescita di un progetto open source?


11

Sono stato coinvolto nell'aiutare a sostenere un progetto open source per un anno o due ormai, e il progetto ha guadagnato molta popolarità da quando ho iniziato. Il programma vede oltre 100.000 download a settimana ed è utilizzato da oltre il 60% delle persone nel suo campo primario, quindi siamo ovviamente lieti che alla gente sia piaciuto usarlo così tanto.

Tuttavia, il problema è che la base di sviluppo e supporto non è cresciuta quasi altrettanto velocemente e stiamo iniziando a soffrire di dolori crescenti. La piccola manciata di sviluppatori (il principale sviluppatore in particolare) si sta allungando piuttosto magro e i volontari del supporto tecnico stanno iniziando a esaurirsi.

Finora, è stato praticamente un mucchio di tizi che frequentano IRC, scrivendo questo programma e aiutando gli utenti. Non esiste un'organizzazione 501 (c) (3) o LLC o qualcosa del genere.

Al momento, non abbiamo un tracker di bug o un database di problemi molto formali (abbiamo un forum con una categoria dedicata alle segnalazioni di bug), che ammetto sia qualcosa che potremmo migliorare per coinvolgere più sviluppatori. Ma suppongo che la mia vera domanda sia: come si fa a passare da un piccolo progetto personale a una vera ... cosa? In che modo i grandi ragazzi come GIMP, FFmpeg, Blender, ecc. Hanno gestito questa transizione?

E per di più, c'è un modo per offrire un risarcimento con un progetto FOSS? Suppongo che le donazioni aiutino, ma questo va solo così lontano ... sembra strano guadagnarsi da vivere con il software libero, ma se il programma continuerà a migliorare, non vedo come possiamo continuare senza compensare le persone per lavoro a tempo pieno.

Fondamentalmente, stiamo avendo alcuni dolori della crescita e ci sentiamo "troppo grandi per i nostri difetti". Cosa possiamo fare per gestire questa transizione e non stancarci di fare troppe cose contemporaneamente?


7
le prime cose prima di tutto mettono in funzione un corretto tracker di bug, nessun open source sopravviverà mai a meno che il core team non sia molto bravo. Assicurati anche che la direzione delle funzioni sia chiara e che non si allontani da te.
maniaco del cricchetto,

4
Se non ti dispiace che te lo chieda, qual è il progetto?
Robert Harvey,

2
Sono titubante nel nominare il progetto, in parte perché è un po 'spaventoso andare là fuori e dire alla gente "Ehi, non siamo davvero sicuri di cosa stiamo facendo e abbiamo bisogno di aiuto!" Inoltre, non volevo che questo post venisse pubblicato come pubblicità per un aiuto con il progetto. Sono sicuro che però un po 'di furtivo maltrattamento su Internet lo rivelerebbe. : /
Ben Torell,

Risposte:


13

La fase in cui si trova il tuo progetto è davvero entusiasmante e cruciale, è molto facile andare in crash e bruciare (out) ma è anche dove puoi prendere alcune decisioni cruciali che, se tutto funziona, contribuirà a garantire la redditività a lungo termine.

Ecco alcuni suggerimenti.

  • Leggi il grande libro di Karl Fogel Producing Open Source Software . Copre la maggior parte dei principali problemi immediati. Anche se non sono d'accordo con tutto ciò che dice, è solo un'opinione. Comprende totalmente il mondo open source.

  • Come ha detto @Ross Patterson, devi assolutamente creare un tracker e una mailing list o qualcosa di simile per evitare il caos totale. Cosa stai usando per il controllo della versione? Se sei su github puoi iniziare con il loro tracker o puoi integrarti con Jira o qualcosa di simile o se vuoi puoi andare su SourceForge per ora e usare la loro infrastruttura gratuita. Non dici da dove vengono scaricate le persone ma vuoi assicurarti di averlo configurato in modo affidabile e con un buon conteggio dei download.

  • Non c'è motivo per cui non puoi guadagnarti da vivere con il software libero se è quello che vuoi, molte persone lo fanno, ma prende molte forme diverse. È necessario decidere come si desidera farlo prima di prendere importanti decisioni organizzative. Ad esempio, è possibile e probabilmente costituire una società per detenere il marchio e i diritti d'autore che forniranno anche una protezione legale se mai necessario. Tuttavia, avrai bisogno di un presidente o un tesoriere. Che tipo di organizzazione dovrebbe essere (senza scopo di lucro o a scopo di lucro, LLC, cooperativa, partnership) dipende davvero dai tuoi obiettivi e dovrebbe essere discusso con un buon avvocato. Se venissi accettato da Software Freedom Conservacy ti aiuterebbero a capirlo e anche a risolvere i problemi contabili e fiscali e così via. Ci sono anche alcuni altri incubatori FOSS comeSoftware di interesse pubblico . Inoltre, penso che Outercurve sia una possibilità.

  • In termini di come guadagni da vivere, questo dipenderà molto dalla natura del tuo progetto. Questo è anche il motivo per cui non vorrei saltare subito per dire che hai bisogno di un 501c3 (e potresti non ottenerlo ... vedi il progetto Yorba). Blender si supporta principalmente vendendo documentazione. Altri progetti hanno ecosistemi di piccole imprese e / o consulenza che li circonda e gli sviluppatori ne guadagnano da vivere. Altri progetti hanno modelli di licenza doppi, quindi vendono versioni supportate (ecco perché MySQL ha fatto e perché potrebbe essere venduto a Sun e ovviamente c'è RedHat) e hanno una versione separata. Altri come WordPress hanno la versione ospitata come modello di business. Quindi ci sono tutti i tipi di opzioni e devi capire cosa ha senso per te e la tua comunità.

  • Scegli qualcuno ora come gestore della community per iniziare. E leggi il libro di Jono Bacon dopo aver finito quello di Fogel.

  • Decidi ora una road map che abbia senso per il tuo core team; essere realistici e non essere vittima di bullismo da parte di persone che non contribuiscono. La road map non significa solo piani e caratteristiche tecniche, ma riguarda dove vuoi andare come progetto.

  • Non essere timido nel parlare con altri progetti che ammiri o che si trovano nello stesso spazio per quella materia. Scopri cosa ha funzionato e non ha funzionato per loro. Basta inviare un'e-mail. Inoltre, puoi andare ad alcuni degli eventi generali open source e parlare con gli altri progetti. Nel complesso, le persone sono piuttosto utili.

Buona fortuna, è una cosa eccitante essere in questa fase.


Grazie! Il codice è già ospitato su Github (che è anche il luogo in cui sono ospitate le versioni), ma davvero non ci piace il tracker dei problemi di Github ... uno dei ragazzi del team ha esperienza con Mantis, quindi penso che useremo quello. Ti sento anche parlare della roadmap ... per lo meno, avere una roadmap pubblica sarà bello solo per fare riferimento agli utenti che chiedono a gran voce particolari funzionalità, quindi possiamo dire loro quando tali funzionalità stanno arrivando rispetto ad altre funzionalità. Stasera stavo esplorando Outercurve e controllerò anche gli altri, così come i libri. Grazie per l'incoraggiamento!
Ben Torell,

1
@BenTorell Dico a chiunque si chieda: "Ogni inseguitore di bug fa schifo, l'unica domanda è: 'Quale fa schifo meno rispetto ai tuoi processi?'".
Ross Patterson,

Ross ha perfettamente ragione. Non mi piace molto il tracker di Github per una serie di motivi, ma soprattutto per la sua mancanza di ACL reale. Accetto di trovarne uno adatto ai tuoi processi. Molti tracker non funzionano così bene per progetti guidati dai volontari perché fanno tutti i tipi di ipotesi che hanno senso in contesti commerciali, anche nel vocabolario che usano. Ovviamente, parlare di ciò che i tuoi processi sono in realtà è un buon esercizio. Non provare a utilizzare un tracker per apportare modifiche non realistiche ai tuoi processi. Le cose sono davvero diverse quando sono tutti volontari.
Elin,

3

I VERAMENTE grandi ragazzi predispone tutti i meccanismi che conosci - che corrono grandi server farm, che corrono (a volte scrittura) bug tracker e sistemi di compilazione, ecc Spesso hanno 501 (c) 3 fondazioni che il copyright, ecc Essi ottenere grandi donazioni aziendali e aziende prestano loro sviluppatori, ecc. Sai, roba GRANDE.

I ragazzi non così grandi ricevono molto aiuto da altrove. La Software Freedom Conservancy , ad esempio, aiuterà i progetti di dimensioni medio-grandi a ottenere le basi legali giuste e a facilitare le donazioni. Al giorno d'oggi ci sono molte opzioni per l'hosting del codice e il monitoraggio dei bug: diamine, chiunque può ottenere un sito GitHub. E scoprirai che molte aziende di software di piccole e medie dimensioni doneranno licenze per i loro prodotti proprietari per supportare progetti Open Source organizzati, specialmente quando si allineano in qualche modo con la loro attività.


3
Non sto cercando di essere pedante e sono sicuro al 100% che non lo intendevi in ​​modo negativo, ma in realtà non aiuta a far crescere la partecipazione all'open source per fare riferimento alle persone coinvolte come ragazzi. Solo qualcosa a cui pensare; So che è una frase che la gente usa.
Elin,

@Elin Stavo solo rispondendo alla domanda: "In che modo i ragazzi grandi come GIMP, FFmpeg, Blender, ecc. Hanno gestito questa transizione?"
Ross Patterson,

Oh, e +1 sul commento - noi ragazzi dobbiamo ricordarci di tanto in tanto. Questa attività è decisamente troppo incentrata sugli uomini.
Ross Patterson,

Grazie e sì, non ho notato quel riferimento nel post originale.
Elin,

Sì, stavo solo usando "ragazzi grandi" come un giro di parole ... Immagino di non averci pensato in quel modo, ma posso sembrare quello che vuoi dire. Grazie per il consiglio! La mia massima priorità in questo momento è quella di ottenere un vero tracker di problemi che i contributori possano esaminare e, si spera, selezionare un problema per risolverli (in questo momento tutto ciò che abbiamo è una tavola Trello disordinata). Come ho detto a @Elin, mi sto sporgendo verso Mantis invece che sul sistema di emissione di Github. Suppongo che abbiamo solo bisogno di qualcosa a questo punto.
Ben Torell,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.