¿Cuándo está listo un proyecto de código abierto para la producción?

16

Cuando encuentre una nueva biblioteca / proyecto de código abierto, ¿qué criterios debe considerar antes de incorporarlo a su base de origen?

  • ¿Hay preguntas legales que debe responder?

  • ¿Buscas una cierta cantidad de velocidad de desarrollo?

  • ¿El zumbido de la comunidad es una razón suficientemente buena?

  • ¿Cambia su decisión si usted es el que está en la línea del proyecto?

  • ¿La complejidad del dominio o código cambia tu forma de pensar al respecto?

repetición
fuente

Respuestas:

19

Aquí está mi lista de verificación con respecto a la madurez del proyecto:

¿Ha alcanzado el proyecto su hito inicial?

Evitaría agregar cualquier código si no ha alcanzado su hito inicial autodescrito. No sugiero que siempre debe confiar en un desarrollador que afirma que su proyecto está listo para la producción y siempre tratar de evaluar tales afirmaciones, pero definitivamente debe confiar en ella cuando le dice que no, es decir, etiquetar el software como versión 0.x, alfa, beta, candidato de lanzamiento, etc.

¿Hay documentación adecuada?

Un proyecto perfecto ofrecería:

  • Guía de usuario completa con ejemplos
  • Una guía de integración / extensión si es una biblioteca
  • Documentación API
  • Código fuente completamente documentado
  • Un rastreador de problemas públicos

¿Los desarrolladores siguen comprometidos con el proyecto?

Nunca se puede saber si los desarrolladores se mantendrán comprometidos en el futuro, a menos, por supuesto, que sea un proyecto respaldado por la fundación / empresa. Pero casi siempre se puede saber si están comprometidos en este momento, al verificar:

  • Actividad de confirmación reciente
  • Funciones recientes (no solo correcciones de errores)
  • Actividad de documentación reciente (actualizaciones de documentos, publicaciones de blog, etc.)

También un buen indicador de la madurez del proyecto es una segunda generación de desarrolladores, desarrolladores activos que se involucraron después de los hitos iniciales.

¿Son accesibles los desarrolladores?

  • ¿Responden a los errores?
  • ¿Proporcionan otros medios de contacto, además de un rastreador genérico de problemas? Este es un elemento menor en la lista de verificación, pero para proyectos de desarrollador único, medios alternativos de contacto podrían ayudar en casos como el "caso del desarrollador perdido" .

Ahora, para sus preguntas más específicas:

Velocidad

En un proyecto con un rastreador público de problemas, definitivamente verificaría para ver cuánto tiempo lleva cerrar los problemas. Por supuesto, la velocidad no siempre significa calidad, por lo que probablemente pasaría por problemas cerrados, elegiría algunos que consideraría importantes y evaluaría el tiempo de respuesta y la calidad de los desarrolladores.

Compatibilidad de licencia

En cuanto a cuestiones legales, nunca integre un proyecto de código abierto en su base de código si no está 100% seguro de que su uso es compatible con su licencia. En caso de duda, siempre puede preguntar a los desarrolladores del proyecto, o incluso preguntar aquí.

Exageración comunitaria

Siempre debes evaluar el bombo publicitario. Las recomendaciones de otros desarrolladores son casi siempre un indicador suficientemente bueno de la madurez del proyecto.

Todos los elementos de la lista de verificación son opcionales, excepto la compatibilidad de la licencia. He integrado muchos proyectos muertos o indocumentados en mi código, siempre depende de cuáles sean sus necesidades específicas y de cómo ve evolucionar su propio código.

Yannis
fuente
3

Además de la respuesta declarada por Yannis Rizos, lo probaría en un lado corto o probaría un proyecto si fuera posible. Esto te permitirá familiarizarte con las peculiaridades de un producto antes de que haya algo importante en juego. El proyecto no debería ser demasiado pequeño, ya que esto dejaría una gran parte de la base de código sin explorar. Pruébalo para ver si puedes hacer lo que quieras sin demasiados problemas. Si no puede hacer que los conceptos básicos funcionen por su cuenta con la ayuda de la documentación y una o dos preguntas para la comunidad del proyecto, es posible que desee considerar buscar una base de código con un soporte más adecuado. Si la prueba inicial funciona para usted, puede comenzar a usarla de verdad. Tuve que lidiar con este problema en el pasado, y después de las dos primeras veces he hecho una regla para probar cosas nuevas antes de ponerlo en producción,

BP sabio: la introducción de cosas nuevas nunca debe hacerse sin alguna forma de preparación / fase de aprendizaje.

En ningún
fuente