He comenzado algunos proyectos de oss, solo uno de los cuales ha sido realmente exitoso. En resumen, esto es lo que creo que contribuyó a su éxito:
- Apelar a los usuarios primero. Los contribuyentes son usuarios a quienes les gusta tanto el proyecto que se unen a usted;
- Asegúrese de que las personas que miren más profundamente lo que ven;
- Cultivar una comunidad amigable y acogedora;
- Aprende a dejar ir y compartir responsabilidades.
En más detalles ahora …
Lo primero que intenté hacer fue atraer a los usuarios del marco. Como regla general, los contribuyentes comienzan como usuarios que se entusiasman tanto que quieren echarte una mano. Aquí hay un par de aspectos que pueden haber contribuido a eso:
- ¿Qué es un buen software de clustering para PC pagado o no?
- Como gerente de desarrollo de software, ¿cómo puedo convencer a una empresa compradora para que conserve mis excelentes pero costosos desarrolladores frente a la contratación externa?
- ¿Por qué soy un asco en la programación competitiva a pesar de ser bueno para descifrar entrevistas en las principales empresas?
- Cómo comparar estos trabajos: programación (o ingeniería de software) con ingeniería electrónica
- ¿Qué quiere decir con software de aplicación y software de sistema?
- El proyecto es un marco general con una amplia audiencia potencial.
- Responde a un problema real y bien documentado.
- No trata de inventar algo nuevo, se basa en ideas recomendadas por actores conocidos y respetados en el campo (es decir, Ray Ryan, en Google)
- Comenzó bifurcando dos marcos relativamente populares que ya tenían muchos usuarios pero que no veían lanzamientos frecuentes (a pesar de que todavía tenían algunos problemas)
- Tiene un alcance más amplio que los proyectos de la competencia, pero aún está enfocado: la mayoría de los usuarios necesitan todos los módulos ofrecidos en el marco.
- Tenía mucha documentación desde el principio: una guía paso a paso, una descripción clara de los objetivos, etc.
A continuación, me aseguré de que las personas que echaron un vistazo más profundo al proyecto se entusiasmarían aún más:
- Escribo código limpio. Refactorizo constantemente para que sea legible y fácil de seguir. (No digo que sea perfecto).
- Abuso del rastreador de problemas y agrego cualquier función que se me ocurra. Superviso activamente el interés del usuario en ellos.
- Utilizo muchas de las últimas tecnologías que entusiasman a todos.
- Documente locamente todo, incluso clases privadas y métodos privados. Valoro la calidad de la documentación tanto como la calidad del código en sí.
- Escribo muchos ejemplos y abro mi propio gran proyecto basado en el marco.
- Confío en tantas buenas prácticas como puedo, para que el proyecto parezca un lugar perfecto para aprender. Por ejemplo: pruebas unitarias, revisión de código, DVCS, integración continua …
El tercer paso, y lo más importante en mi opinión, fue crear una comunidad acogedora y amigable:
- Desde los primeros días, me aseguré de ser muy activo en el foro. Intento responder preguntas rápidamente. Cuando no encuentro una buena respuesta, abro un problema en el rastreador y entrecruzo la publicación y el problema.
- Escribo anuncios amistosos en foros relacionados. Respeto y reconozco los proyectos bifurcados y los competidores.
- Frecuentemente pongo mis parches para revisar el código y solicito revisiones públicas. (Rietveld es una excelente manera de nutrir una comunidad de desarrolladores).
- Doy la bienvenida a los recién llegados, sin importar su nivel de habilidad, y dejo en claro que verán sus parches.
- Le pido a cada colaborador que use la revisión de código y paso tiempo mirando cada parche, incluso aquellos que claramente no llegarán al tronco. Escribo reseñas en un tono amigable, cuando pienso que algo está mal trato de enseñar en lugar de corregir.
- Acepto estar equivocado. Si los contribuyentes están de acuerdo en que debemos hacer algo de alguna manera, y no puedo convencerlos de mi visión, entonces adopto la suya.
- Agradezco públicamente a las personas, me aseguro de que sus contribuciones sean reconocidas y atribuidas.
- Otorgo privilegios de compromiso de forma muy liberal. Mi experiencia es que los contribuyentes generalmente tienen miedo de equivocarse y no harán nada peligroso. (No estoy solo pensando esto: http://www.jacobian.org/writing/…)
- No me asusto si alguien lo arruina, y paso tiempo con él tratando de explicarle qué salió mal.
El último paso, que estoy pasando en este momento, es aprender a dar un paso atrás. Todo lo anterior es sobre mí: “Hice esto, hice eso …” Obviamente, esto no escala. Sin embargo, a medida que el proyecto crece, encuentro que los contribuyentes que se quedan son los que comparten los valores anteriores. Hoy, las preguntas reciben respuestas amigables incluso cuando estoy dormido. Es muy gratificante ver florecer el proyecto, pero también significa que debo aprender a dejarlo ir …