Hace un par de meses Prescrypto fue seleccionado por UNICEF para su fondo de innovación en las oficinas de New York —como parte del programa—, discutimos sobre cómo lidiar con un proyecto de open source con líderes como Galia Bengali de Bancor, Natalia Scherer de DAOStack y Aya Miyaguchi de la Fundación de Ethereum.
Aquí te compartimos lo que aprendimos durante el viaje:
1. Los videos juegos tienen la mejor Interfaz de Usuario (UX)
Si jugaste alguna vez al Nintendo, estoy seguro que no tuviste ningún problema entiendo cómo funcionaba. La experiencia de los videojuegos, desde el Atari hasta hoy en día es increíblemente intuitiva. Si algún día necesitas una referencia de cómo hacer fácil de hacer un software complejo, busca inspiración en los video juegos.
2. Siempre-prueba-todo
El contenido de tu repositorio open source debe utilizar pruebas unitarias dentro del código todo el tiempo. Es una de las pocas maneras que existen de garantizar la calidad y facilitarle la vida al equipo de Control de Calidad #QATeam.
3. Hacer un repositorio open source no es tan fácil
Crear un repositorio no sólo se trata de hacerlo público en GitHub, ponerle una licencia y publicarlo. Debes hacer un esfuerzo enorme para hacer que corra la voz, promoverlo, crear e integrar una comunidad, revisar pull-request, mapear cuáles son los siguientes hitos en el Roadmap, etc.
Sin duda es una labor que no solo involucra a los desarrolladores, también requiere estar pendientes y trabajar constantemente para que la comunidad de verdad se interese y colabore entre sí.
4. Documenta mejor
Si hubiera un orden de importancia sobre las mejoras de tu código sería esta. Escribe documentación detallada, actualizada y correcta. Si es necesario, haz que tu equipo de marketing haga una corrección de estilo y ortografía para asegurarte de que sea perfectamente clara no solo para su lectura, también para su descubrimiento por los motores de búsqueda (SEO).
5. Haz un contrato de contribución
Tarde o temprano te encontrarás con contribuciones externas que serán significativas. Anticípalo y encárgate de generar y firmar diligentemente un Acuerdo CLA (Contributor License Agreement) en el que se proteja la propiedad intelectual de tu proyecto.
6. Documentar los fracasos
Tal vez te imagines que sólo nos interesa saber tus éxitos; estás equivocado(a). Lo verdaderamente interesante para la comunidad son tus fracasos.
Publica las cosas que no hayan salido bien. Como lector te puedo decir que es mucho más interesante leer de un fracaso, que el blog de un programador al que todo le sale bien.
7. Delega las tareas fáciles
Todos hemos visto los pull-request de un repositorio público que modifican N archivos e incluyen cientos de commits y migraciones de la base de datos.
¡Nadie quiere empezar a contribuir así! Si tienes un error de ortografía, o un bug relativamente sencillo, documenta estos cambios y déjaselos a un n00b.
8. Donkey Kong
Conocí a Shigero Miyamoto diseñó Donkey Kong y muchos otros juegos de Nintendo, es uno de los developers mas increíbles que conozca. Ya que no solo ayudó a sentar las bases de una de las industrias mas importantes del mundo, hoy en día sigue muy activo dentro de varios proyectos de Nintendo, así como incursionando en la industria de la animación.
Si no te quedas con nada más, al menos conociste a ¡uno de los mejores programadores de la historia!