Quando è pronto per la produzione un progetto Open Source?


16

Quando trovi una nuova libreria / progetto open source, quali criteri guardi prima di incorporarlo nella tua base di origine.

  • Ci sono domande legali alle quali devi rispondere?

  • Cerchi una certa velocità di sviluppo?

  • Il buzz della community è un motivo abbastanza valido?

  • La tua decisione cambia se sei quello in linea per il progetto?

  • La complessità del dominio o del codice cambia il modo in cui ci pensi?

Risposte:


19

Ecco la mia lista di controllo per quanto riguarda la maturità del progetto:

Il progetto ha raggiunto il suo traguardo iniziale?

Eviterei di aggiungere qualsiasi codice se non avesse raggiunto la sua pietra miliare iniziale auto-descritta. Non suggerisco che dovresti sempre fidarti di uno sviluppatore che afferma che il suo progetto è pronto per la produzione e provare sempre a valutare tali affermazioni, ma dovresti sicuramente fidarti di lei quando ti dice che non lo è, cioè etichettare il software come versione 0.x, alpha, beta, release candidate e così via.

Esiste una documentazione adeguata?

Un progetto perfetto offrirebbe:

  • Guida per l'utente completa di esempi
  • Una guida di integrazione / estensione se è una libreria
  • Documentazione API
  • Codice sorgente completamente documentato
  • Un localizzatore di problemi pubblici

Gli sviluppatori sono ancora impegnati nel progetto?

Non puoi mai dire se gli sviluppatori rimarranno impegnati in futuro, a meno che, naturalmente, non sia un progetto sostenuto dalla fondazione o dall'azienda. Ma puoi quasi sempre dire se sono impegnati in questo momento, controllando:

  • Attività di commit recenti
  • Funzionalità recenti (non solo correzioni di bug)
  • Attività di documentazione recente (aggiornamenti di documenti, post di blog ecc.)

Un buon indicatore della maturità del progetto è una seconda generazione di sviluppatori, sviluppatori attivi che sono stati coinvolti dopo i traguardi iniziali.

Gli sviluppatori sono raggiungibili?

  • Rispondono ai bug?
  • Forniscono altri mezzi di contatto, oltre a un tracker di problemi generico? Questo è un elemento secondario nella lista di controllo, ma per i progetti di singoli sviluppatori mezzi di contatto alternativi potrebbero aiutare in casi come il "caso dello sviluppatore mancante" .

Ora, per le tue domande più specifiche:

Velocità

In un progetto con un localizzatore di problemi pubblici, controllerei sicuramente per vedere quanto tempo ci vuole per chiudere i problemi. Naturalmente la velocità non significa sempre qualità, quindi probabilmente passerei attraverso problemi chiusi, ne sceglierei alcuni che considererei importanti e valuterei il tempo di risposta e la qualità degli sviluppatori.

Compatibilità della licenza

Per quanto riguarda le questioni legali, non integrare mai un progetto open source nella tua base di codice se non sei sicuro al 100% che il tuo utilizzo sia compatibile con la sua licenza. In caso di dubbi, puoi sempre chiedere agli sviluppatori del progetto o persino chiedere qui.

Campagna pubblicitaria

Dovresti sempre valutare l'hype. Le raccomandazioni dei colleghi sviluppatori sono quasi sempre un indicatore abbastanza buono della maturità del progetto.

Ogni elemento nell'elenco di controllo è facoltativo, tranne la compatibilità delle licenze. Ho integrato molti progetti morti e non documentati nel mio codice, dipende sempre da quali sono le tue esigenze specifiche e da come vedi evolversi il tuo codice.


3

Oltre alla risposta dichiarata da Yannis Rizos, la proverei in un lato corto o testerei il progetto se possibile. Ciò ti consentirà di familiarizzare con le stranezze di un prodotto prima che sia in gioco qualsiasi importante. Il progetto non dovrebbe essere troppo piccolo, in quanto ciò lascerebbe troppo inesplorato la base di codice. Fai un giro per vedere se riesci a fare ciò che vuoi senza troppe seccature. Se non riesci a far funzionare da solo le basi con l'aiuto della documentazione e una o due domande alla comunità del progetto, potresti prendere in considerazione l'idea di cercare una base di codice più adeguatamente supportata. Se il test iniziale funziona per te, puoi iniziare a usarlo davvero. In passato ho dovuto affrontare questo problema e, dopo le prime due volte, mi sono imposto di testare nuove cose prima di metterlo in produzione,

BP saggio: l'introduzione di nuove cose non dovrebbe mai essere fatta senza una qualche forma di fase di preparazione / apprendimento.

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.