Preact: destrozando la percepción de que el código abierto debe ser gratuito

Entrevisté al autor de Preact Jason Miller sobre el dinero en código abierto, el agotamiento del mantenedor y el crecimiento de una comunidad democrática.

P. ¿El código abierto no debería ser gratuito (como en la cerveza)?

R. Todos somos vulnerables a la trampa de pensar que el código abierto es "gratis". Eso nunca ha sido cierto. Siempre hay un costo, pero como mantenedor solo lo obtienes una vez que estás bastante lejos.

Piensas: "Lo que sea, solo pagaré las calcomanías yo mismo". Pero a medida que crece un proyecto, las cosas pequeñas se acumulan.

He comenzado a reconsiderar la forma en que pienso sobre el código abierto, y pregunto: ¿está bien operar en el espacio de código abierto, pero no necesariamente exijo que todo el trabajo se haga pro bono?

Hay muchas compañías con productos de código abierto que cobran por una versión paga o por soporte, pero a los proyectos que no están respaldados por compañías se les ha dicho: “No, no, no eres una compañía, por lo que no puedes cobrar por nada."

Hasta hace poco, tenía que crear una LLC o tenía que pagar todo usted mismo. Tenemos otra opción ahora.

Nuestro Open Collective funciona como una empresa semiautónoma, pero sin la burocracia, lo cual es importante porque muchos proyectos de código abierto no sobrevivirán a esa sobrecarga. Quiero que este modelo crezca. Quiero destruir la percepción, la suposición persistente, de que el código abierto debe ser libre.

P. ¿Quién debería financiar el código abierto?

R. Si está construyendo su negocio sobre algo, debe ayudar a garantizar que siga vivo y creciendo, especialmente si lo está utilizando para ganar dinero. Preact se encuentra en la misma situación que muchos proyectos de código abierto: hay empresas cuyos productos dependen de él, lo que significa que tienen interés en ayudarlo a sobrevivir y crecer.

Uno de nuestros patrocinadores se refiere a su contribución financiera como "seguro marco".

Un ejemplo perfecto es Mocha. ¡Todos usan Mocha! Es el marco de prueba de facto para JavaScript. Pero no tienen suficientes recursos de mantenimiento. Nadie los culpa: Mocha tiene una increíble disparidad de usuarios con los contribuyentes. Ahora están obteniendo algunos fondos, que pueden ayudar, y sus patrocinadores podrán mostrar cómo su contribución juega un papel importante.

El soporte tangible para el código abierto es un gran mensaje para cualquier empresa que intente atraer talento desarrollador.

Dar dinero a los proyectos es la misma lógica que dar tiempo al desarrollador. Se trata de ser un buen administrador en la comunidad de código abierto, fomentar la colaboración y aumentar la longevidad de los proyectos de los que depende. Es la forma asesina para que las empresas digan: "Contribuimos, y usted puede rastrear el hecho de que este proyecto nos mantiene a nosotros".

Open Collective saca a la luz el apoyo financiero.

Es una versión más transparente de algo que ya está sucediendo en una escala más pequeña, donde los encargados del mantenimiento de código abierto son contratados para hacer cosas por las empresas. En este momento eso es opaco, sucede a puerta cerrada y está dirigido a una persona individual en lugar de a toda la comunidad. Si alguien es el mantenedor número dos y un experto, debe tener las mismas opciones disponibles para ellos como iniciador del proyecto.

P. ¿Cómo creció Preact de usted solo a una comunidad?

A. Preact tiene una especie de extraña historia de génesis. Realmente no tenía la intención de construirlo. Solo estaba experimentando para satisfacer mi propia curiosidad, en una madriguera de conejos tratando de entender cómo funcionaban React y Mithril. Estaba jugando con patrones y mezclando bibliotecas.

Terminó funcionando bastante bien, así que lo moldeé a lo que pensé que debería ser la API. Al principio era reacio a publicarlo. Como autor de la biblioteca en serie, recibí este cosquilleo en la nuca, como ...

"Dios mío, ¿qué estás haciendo? ¡Estás haciendo otra biblioteca que tendrás que mantener! "

Tenía que ser un proyecto impulsado por la comunidad. Pero en muchos sentidos, el código es la parte menos importante de eso, lo cual fue una realización difícil. Hace cuatro años, habría pensado que sonaba totalmente tonto: era el arquitecto por excelencia sentado en una habitación trasera.

Estoy tratando de mejorar en cosas que no están codificando. Me estoy centrando mucho más en cómo enseñar a las personas y fomentar la comprensión. Creé Preact para que sea pequeño y que permanezca pequeño, porque quería que fuera accesible.

Cuando se lanzó por primera vez, me burlé de inmediato porque era solo un gran archivo, que es legítimo, así que lo dividí e hice otro lanzamiento. Pero lo que perdimos es poder extraer ese archivo en un editor de texto y comprender todo acerca de cómo funciona, en solo una lectura nocturna (todavía son solo 600–800 líneas de código si elimina los comentarios).

Esta simplicidad atrajo las contribuciones externas iniciales. Cuantas más personas puedan entender todo, mejor. Incluso ahora, estoy buscando mover algunos módulos desde el núcleo a sus propios proyectos para simplificar aún más.

Preact está lo más lejos posible hacia la democratización de un marco: es una biblioteca que ha creado una comunidad democrática a su alrededor.

El gran beneficio de este enfoque es que alguien que no soy yo puede crear fácilmente un complemento o complemento sin autorización o solicitud de extracción. Pueden construir lo que quieran y publicarlo en sus propios términos, sin tener que fusionarlo en el núcleo.

Previo encuentro en Viena

P. ¿Por qué decidiste buscar financiación para el proyecto?

A. No tengo mucho tiempo libre. Tengo mi trabajo diario (que de ninguna manera es solo durante el día), y también tengo mi trabajo de código abierto además de eso. Me resultó difícil encontrar un par de horas para cualquier otra cosa, porque siempre estaba pensando que podría usar ese tiempo para escribir puntos de referencia o lo que sea.

Pasaba mucho tiempo en cosas que sabía que la gente apreciaría pero que nunca vería, como las optimizaciones y la documentación. Este trabajo invisible es un gran esfuerzo, pero usted es el único que lo maneja, y estas son también las tareas en las que es difícil obtener contribuciones externas.

Experimenté mi primer agotamiento de mantenedor de código abierto el año pasado.

Pensé que si podía recaudar un poco de fondos, podría gastar mis propias horas (abordar la compensación entre tomar un trabajo de consultoría y pasar tiempo en Preact), o podría atraer una contribución externa adicional.

Inicialmente busqué configurar una página de Patreon como Evan You tiene para Vue.js. Estaba en una posición similar, como un tipo que intenta construir una comunidad y se da cuenta de que es básicamente un trabajo a tiempo completo. La experiencia de Patreon como plataforma de recaudación de fondos para artistas se traduce en el caso de Evan, porque la gente está financiando a Evan You (su trabajo como individuo).

Evan es un líder tan activo de esa comunidad, y es genial que este enfoque funcione para él. Pero me gusta mi trabajo diario. No quiero dejar de fumar y convertirme en "Preact Inc". Y si en el futuro quiero centrarme en otra cosa, y otras personas se han convertido en los mantenedores clave, quiero que los recursos de la comunidad hagan una transición sin problemas.

Se trata de recaudar dinero como colectivo, no como individuo. No está centrado a mi alrededor.

Si está recaudando fondos para una comunidad, existe una clara implicación de que es para mejorar el proyecto en su conjunto. Al poner el proyecto en el centro del escenario, en lugar de una persona, no hay necesidad de explicar eso. En nuestro caso, creo que es por eso que la gente estaba tan dispuesta a contribuir.

P. ¿Qué te sorprendió cuando comenzaste con el crowdfunding?

R. De hecho, me topé con el anuncio de lanzamiento de fondos sin apenas previsión: sin publicación de blog, sin materiales de apoyo, sin enlace del sitio web y sin explicación de por qué el dinero ayudaría a Preact como proyecto. Si volviera a hacerlo, prepararía todas estas cosas para ganar más impulso desde el principio.

Nuestro marketing ascendió básicamente a unos pocos tweets, por lo que me sorprendió mucho que tanta gente estuviera dispuesta a contribuir financieramente de inmediato. Hay muchas personas que no contribuyen con el código, pero están usando Preact y lo están probando en la batalla. Anteriormente, si no experimentaban ningún problema, no sabía que existían.

No me di cuenta de cuán grande era realmente la comunidad de Preact.

Piense en las métricas que generalmente tiene disponible un proyecto de código abierto: Google Analytics incluye una gran cantidad de lecturas de documentación y visitas guiadas; Las estrellas de Github son casi sin sentido; y el recuento de descargas de NPM es proporcional al número de lanzamientos de software, por lo que será extrañamente bajo si es un proyecto relativamente estable.

Diferentes personas se involucran desde que comenzamos a ofrecer una forma de contribuir financieramente. Intensifican y dan $ 5 / mes porque quieren apoyar la construcción y el alcance comunitario, sin tener que evangelizar individualmente.

La cantidad de personas que se comprometen a donar es una métrica mucho más confiable de usuarios y posibles usuarios.

Mi consejo sería establecer canales para todos los diferentes tipos de soporte que un proyecto de código abierto necesita y ofrecer a las personas opciones claras: escribir características, plantear problemas, hacer una solicitud de extracción, hacer revisiones de código, dar dinero.

No intente ocultar el hecho de que el proyecto necesita financiación, y no eludir el hecho de que se trata específicamente de dinero o de lo contrario resultará falso. Si hay algo que los usuarios desean del proyecto que el dinero pueda habilitar, deles una vía para que esto suceda.

P. ¿Cuál ha sido el impacto? ¿Cuales son los beneficios?

R. En otros proyectos en los que he estado involucrado, normalmente hay un grupo de superusuarios o un comité directivo técnico, que coloca a los usuarios en un nivel superior. Pero esto es diferente.

La contribución financiera otorga a las personas una propiedad compartida, y para un proyecto de nuestro tamaño, lo tenemos en un grado poco común. Las personas pueden entrar, hacer cambios significativos y sentir que han dicho algo.

Es como si todos los que usan Preact están en la junta directiva.

Por ejemplo, Paul Lewis ha abierto una solicitud de extracción para implementar el soporte para el renderizado progresivo, por lo que podrá lanzar una inmensa cantidad de datos en Preact y su CPU causalmente pasará y renderizará a medida que haya ciclos disponibles. Resuelve un caso de uso complejo de una manera realmente elegante.

Esa solicitud de extracción es un cambio direccional que influirá en el viaje de Preact durante el próximo año, y vino de un usuario de la biblioteca. Una persona puede tener tanto o tan poco efecto en la dirección como quiera, sin barreras.

El crowdfunding comunitario respalda la democratización con algo real.

Una cosa es decirles a todos que pueden tener un impacto en un proyecto, pero otra es ofrecerles el mismo acceso y resultados para sus contribuciones que usted mismo. Puede gastar su tiempo en el proyecto, que todos pueden ver de manera transparente, y otras personas tienen la misma capacidad de hacer lo mismo.

Robert Knight escribió toda la integración de herramientas de desarrollo para Preact, haciendo que funcione de inmediato con las herramientas de desarrollo React. El es un genio. Cuando terminó eso, lo pellizqué y le dije: "Oye, ¿por qué no gastas algo de tiempo?" Terminó usando los fondos para comprar un teléfono Moto G para probar (que emula una experiencia de usuario lenta común). Fue una forma de decir gracias por impulsar el proyecto.

Gastar fondos de forma transparente nos mantiene enfocados en lo que es más beneficioso para el proyecto.

Si los desarrolladores están donando, quiero devolverles lo más directamente posible trabajando en la experiencia del desarrollador. ¿Ahorrando 30 segundos en cada compilación cuando ejecuto 300 compilaciones por día? ¡Pagaría $ 5 al mes por eso!

Me gustaría ver que nuestro nivel de financiación siga aumentando. Si tuviéramos el doble de fondos, podríamos pagar a alguien por día a la semana. Asignar una gran cantidad de horas regulares es un umbral importante. Nos encantaría ofrecer algo como lo que hace Webpack con el horario de oficina (donde los patrocinadores en ciertos niveles tienen acceso a soporte y capacitación VIP). Esto ofrecería beneficios reales a las personas.

P. ¿Cómo podría evolucionar el financiamiento de código abierto en el futuro?

R. Los desarrolladores obtienen conocimiento y conveniencia de código abierto, pero el verdadero beneficiario es la compañía que no tiene que pagar a sus desarrolladores para construir cosas. Las empresas se construyen sobre bibliotecas a las que se les han dedicado miles de horas de trabajo, pero que nunca habrían crecido orgánicamente dentro de una empresa.

El empleador y el proyecto realmente tienen una relación simbiótica. Me gustaría ver que más empresas aporten fondos para que los desarrolladores no tengan que sentirse culpables. La percepción predeterminada debería ser: por supuesto, los empleadores contribuyen con dinero.

Espero que miremos hacia atrás y digamos: "Guau, es tan extraño que no solías poder financiar un proyecto de código abierto".

Mi visión es una en la que los desarrolladores continúen tomando posiciones técnicas informadas y respalden las mejores herramientas al usarlas. Y al mismo tiempo, su empleador identifica activamente los proyectos de los que depende su empresa y se asegura de respaldarlos financieramente.

En realidad no está tan lejos de nuestro alcance. Tenemos el modelo Algunas empresas ya lo están haciendo contribuyendo al Open Source Collective y directamente a los proyectos que utilizan.

Necesitamos democratizar todos los lados del código abierto.

Podría ser bueno escribiendo código y terrible escribiendo documentos (¡totalmente hipotético!). Pero eso no significa que no haya una gran necesidad de documentos, y si donar dinero permite que un gran escritor participe, eso es fundamental. La colaboración de código abierto puede convertirse en un mercado para todo tipo de contribuciones: tiempo, código, experiencia ... y dinero.

¿Quieres ser un seguidor? Done para Preact ahora.