¿Cómo saber si un proyecto de código abierto es lo suficientemente maduro como para usarlo en un producto?

13

Hay algunos proyectos de código abierto que me gustaría incorporar a un producto en el trabajo. No tenemos el ancho de banda ni la experiencia en la materia para hacerlo nosotros mismos. Encontré estos buscando en Google. No conozco a ningún "jugador importante" que utilice los proyectos, pero me siento bastante alentado por lo que veo.

Ahora, estoy un poco preocupado por la cantidad de riesgo al que estoy expuesto al utilizar el proyecto de código abierto de joe-blow. Si me lleva el 95% del camino, quizás el 5% restante sea fácil de agregar o corregir. Quizás no sea trivial.

¿Cómo van las personas a determinar si un proyecto de código abierto es lo suficientemente maduro como para usarlo en un producto?

Este no es un proyecto de hobby, por lo que la estabilidad, el mantenimiento, etc. son de suma importancia.

    
pregunta jglouie 10.03.2013 - 05:12

5 respuestas

16

Los criterios que utilizo, siempre que el proyecto cumpla con mis requisitos:

  1. ¿Existe una comunidad activa, con personas que puedan brindar asistencia?
  2. ¿Es la licencia apropiada para mi desarrollo?
  3. ¿El producto aún está en desarrollo activo?
  4. ¿Es un marco de uso común?
  5. ¿Puedo encontrar comentarios / publicaciones de blog / etc del producto y cómo las personas se han integrado con él?

4 & 5 realmente no ayuda para proyectos específicos que suenan como si fueran tuyos.

Lo más importante es si cumple con sus requisitos? Si sientes que lo hace, lo siguiente que debes hacer es hacer un arnés para probar el proyecto y ver si puedes hacer lo que quieres que haga. Esto le dará una idea de su API (si es una biblioteca) y de cómo funciona.

Al final del día, si hay algo de código abierto que hace el 90% de lo que haces, hazlo, agrega la funcionalidad adicional y devuélvelo a la comunidad. Lo he hecho antes en proyectos comerciales.

    
respondido por el Sam 10.03.2013 - 05:33
6
  1. Para el marco, generalmente solo utilizo un marco grande y maduro con muchos módulos preescritos y una gran comunidad. En general, la elección de un marco sobre el otro no reduciría mucho la cantidad de trabajo que necesita gastar en su propio código. Un marco puede alentar un código más hermoso, otros pueden facilitar ciertas operaciones, pero en general son muy simples. Poca diferencia al esfuerzo de desarrollo total. Sin embargo, los marcos populares tendrían más módulos preescritos que puedes aprovechar y así es como generalmente puedes ahorrar mucho más tiempo y esfuerzo.
  2. Para bibliotecas pequeñas que no sean de marco, por lo general, podría hacer modificaciones si fuera necesario sin mucho problema, por lo que generalmente consideraría tener comunidad como un bono adicional. La mayoría de las bibliotecas pequeñas solo son administradas por una sola persona, pero aún así son mejores que construirse usted mismo. Para bibliotecas grandes, sin embargo, tener una comunidad madura y activa, y documentación es esencial porque es poco probable que puedas realizar cambios tan fácilmente.
  3. La licencia es esencial. Para las bibliotecas de una sola persona, es probable que necesite realizar modificaciones en la biblioteca, por lo tanto, es esencial que su licencia le permita hacerlo bajo los términos con los que estaría de acuerdo.

Para las bibliotecas pequeñas, siempre debe asumir que deberá bifurcarse y que el proyecto ya está abandonado. Por lo general, esto no es un problema, especialmente si el proyecto está alojado en Github o BitBucket, porque hacen que el proyecto de otras personas sea estúpidamente sencillo. Para bibliotecas pequeñas, siempre puede hacerse cargo del mantenimiento del proyecto usted mismo, si el mantenedor original se ha ido o si planean llevar la dirección del proyecto a lugares a los que no desea ir.

Estoy menos preocupado por la actividad del proyecto, las bibliotecas maduras que han alcanzado su sentido de "perfección" generalmente solo tendrían que hacer correcciones de errores, por lo que su actividad se desaceleró. La actividad del proyecto solo es importante si la biblioteca incluye un objetivo que está evolucionando activamente, por ejemplo, un contenedor para servicios externos debería actualizarse constantemente a medida que el servicio externo evoluciona, por lo que el desarrollo activo es esencial, pero una biblioteca matemática no necesitaría mucho. nuevo desarrollo una vez que tenga todas las características que necesitaba.

Para bibliotecas más grandes, las cosas se vuelven más difíciles. Asumir es mucho más complicado, afortunadamente las bibliotecas más grandes generalmente no se mueven tan rápido, ya que generalmente son más maduras.

Como @Sam dijo en su respuesta, estoy de acuerdo en que lo más importante al evaluar una biblioteca de código abierto es cuánto se ajusta a sus requisitos. Una vez que se resuelve cualquier problema de licencia, el uso de una biblioteca de código abierto rara vez es un error porque siempre se puede bifurcar si las cosas van al sur.

    
respondido por el Lie Ryan 10.03.2013 - 07:19
3

Busque en el rastreador de errores del proyecto. Si ve muchos tickets archivados por muchas personas diferentes y las respuestas vienen de una variedad de personas también, es una buena señal. Más entradas de errores == comunidad de usuarios más grande == es más probable que esté listo para su uso en producción.

    
respondido por el Karl Fogel 11.03.2013 - 20:51
1

La noticia no es buena, pero eso no significa que sea incorrecta: no lo sabes.

Si hubiera implementaciones análogas en la producción, sabrías que es factible, pero como dijiste, no hay "actores principales" que usen los proyectos.

Si se hubiera desarrollado en casa, entonces lo sabría, pero como dijo, no tiene los recursos.

Es razonable querer saberlo, pero ... tú no.

Espero que esta respuesta te sirva de ayuda, ya que deberías tener planes de contingencia para desconectar cualquier tecnología de la que dependas pero que no controlas ... y saber que no sabes si es confiable es un paso. esa dirección.

    
respondido por el wilsonmichaelpatrick 12.03.2013 - 06:28
1

La pregunta tiene que ser puesta de manera diferente. Lo que realmente está preguntando es si utilizar este proyecto de código abierto es la mejor manera de desarrollar el producto.

Esto implica necesariamente no solo el proyecto de código abierto en cuestión, sino también sus otras opciones. Si tu única otra opción es escribir todo tú mismo, entonces es mejor que uses el proyecto si puedes entender que es el código suficiente para poder modificarlo.

Por supuesto, la otra pregunta es si su proyecto es viable en absoluto. Es decir. debe estimar el esfuerzo, incluido el riesgo de tener que arreglar o completar la funcionalidad que espera que proporcione el código de fuente abierta. Si el proyecto no se usa ampliamente, tendrá que revisar el código para eso.

    
respondido por el Jan Hudec 12.03.2013 - 10:02

Lea otras preguntas en las etiquetas