Han sido 51 horas intensas desde el viernes a media mañana hasta el domingo después de comer en los que hemos conseguido lanzar WP Plugin Insight.
La idea semilla: un año antes
Hace justo un año, en la misma sala, tras una experiencia extraña en la Hackathon, comencé a reírme de lo que podríamos hacer con las IA del futuro y planteé algo absurdo, pero tecnológicamente interesante: una IA a la que le mande todo el código, tenga una visión global de todos los plugins del repositorio de WordPress y le puedas preguntar «cuál es el mejor y peor programador de WordPress».
La problemática es conocida para quien trabaja en el ecosistema WordPress: los plugins se eligen por número de descargas y estrellas, no por criterios técnicos reales. Esa incomodidad existía. La pregunta era si se podía hacer algo con ella.
Al final, cuando llegó el momento pensé que sería mejor no presentar nada y simplemente ir a disfrutar de la programación en cualquier otro proyecto.
Marko entra en juego
Marko Heijnen (Senior Software Engineer en Jamf y veterano del ecosistema WordPress) propone el proyecto, que estuvo en la misma mesa que yo, sentado delante, en el anterior evento, me suma como co-líder. No es un detalle menor: hay una confianza implícita ahí y una responsabilidad compartida desde el minuto cero.
He de reconocer que el trabajo previo al evento, que no es poco, se lo ha comido prácticamente él, porque mi vida no daba para nada más… han sido unos meses muy apretados y justo esta misma semana me comenzaba a liberar un poco de cargas para poder llegar aquí con las pilas cargadas y la mente abierta.


La idea y el bloque del cómo
La idea de WP Plugin Insight es bastante sencilla de plantear, pero compleja de extender. El inicio es el de hacer análisis de plugins a nivel de código, no de metadatos declarados por el desarrollador (que es lo que hacen algunas otras plataformas). Detectar APIs obsoletas, compatibilidad real con PHP y WordPress, internacionalización, conexiones externas… Todo lo que el directorio oficial no te dice y debería si realmente quieres saber si un plugin puede romper tu sitio.
La cuestión es cómo hacerlo. He de reconocer que tanto Marko como yo llevábamos una serie de ideas preconcebidas, e incluso yo había trabajado en un plugin de WordPress que hacía parte del trabajo, y que aunque finalmente no se usó para nada, me sirvió para cargar la base de datos inicial con 62.000 «slugs» de los plugins.
La idea es clara. El cómo lo construimos en 48 horas es otra conversación.
El equipo y las piezas
Un proyecto con esta ambición necesitaba perfiles muy distintos: análisis estático, IA/LLM, backend API, frontend, DevOps, seguridad… aunque he de decir que el equipo final quedó en tan «sólo» 7 personas. He de reconocer que es una cifra correcta y que si hubiéramos sido más lo hubiéramos podido llegar a sufrir. Sí que haber tenido a alguien de IA pura nos hubiera venido bien, pero estoy muy contento con el equipo, sobre todo por una cosa: algunos de ellos se vinieron con nosotros porque habían confiado previamente en algún otro proyecto o porque nos conocían. Creo que excepto una persona, el resto eran caras conocidas de aquí y de allá.

Cada parte arrancó por su lado, un poco con sus conocimientos por delante… y es una situación extraña, porque cada uno comienza a experimentar «a su manera» y alguien tenía que ver claramente cómo conectar las piezas. Personalmente, sabía que había que conectarlas, aunque no tenía claro cómo… algo que hasta 24 horas después (en el ecuador del proyecto) no acabamos de tener claro.
El motor de análisis vive en su repo. La API en otro. El frontend en otro. La IA en otro. Todos avanzan, ninguno conecta todavía. Esa es la tensión de las primeras horas y las dudas de entender si esto va a salir bien.
He de dar gracias a todos los integrantes del equipo: Cyrille, Marko, Ralf, Erik y Matthias.




Las personas son lo que no aparece en el repositorio
Las comidas. Las cenas. Las conversaciones que empiezan hablando de plugins y acaban en otra cosa completamente distinta. Sin duda es lo mejor de la Hackathon… incluso, gente que está en otra mesa.
El sábado por la noche tuve la oportunidad de conocer más a Erik Torsner, un gran tipo que en parte me recordaba a otra persona. La conversación empezó, como debería, por temas comunes: WordPress, el proyecto, y poco a poco te vas abriendo y empiezas a contar cosas personales. Una relación que comienza en un punto y que espero que siga adelante. Un tipo que me pareció muy interesante e inteligente en muchos aspectos.
La Hackathon es, en gran medida, eso: el proyecto es la excusa, las personas son el resultado.
El proyecto cobra vida, y se rompe, y se arregla
El momento en que las piezas empiezan a conectar llegó el sábado a mediodía.
Ver el motor de análisis escupir un informe legible. Ver los crones responder. Ver la web mostrar la compatibilidad PHP real, no por lo que el plugin dice que soporta.
Y luego romperse. Y arreglarlo. Y ya no estás parcheando lo gordo, estás iterando en detalle: un campo del JSON, un falso positivo, un caso edge.
Eso es señal de que el proyecto existe de verdad y he de decir que si no hubiera estado tan cansado, hubiera seguido más. Pero creo que apuramos el sábado hasta el último instante, tanto que lo último que escuché mientras cerraba el portátil fue: acabo de conseguir que el módulo IA haga algo. Volver a abrir el portátil, because, why not?
La satisfacción: esta vez diferente
Por primera vez, al acabar, la sensación no es «hemos sobrevivido». Es «hemos construido algo».
El primer año que vine lanzamos el plugin de MariaDB que supe que acabaría muriendo a menos que pudiera hacer push en el repo.
El segundo, al fin y al cabo, aunque le he dedicado mucho tiempo y se hizo el proyecto, era algo que ya venía creado y que, aunque se usa varias veces al día para analizar todos los commits de WordPress, no acabo de sentirlo como mío.
El año pasado, la sensación es de caos, de saber que aquello no iba a ir a ningún lado tal y como estaba planteado. No sé si mi planteamiento hubiera sido mejor o peor, pero sé que hubiera podido sobrevivir, porque el proyecto actual está simplemente obsoleto y con vulnerabilidades…
En esta ocasión, algo con vida propia más allá del domingo: WP Plugin Insight puede evolucionar, puede integrarse en flujos de hosting, puede convertirse en un producto real. Y espero que así sea. Mi idea es que la semana que viene encontremos ese primer paso para decidir qué camino le vamos a dar.
El escenario
No le tengo miedo a las presentaciones. Mucho respecto. Subir a presentar delante del resto de equipos y la comunidad es algo interesante… sobre todo en un caso que tiene su parte positiva y negativa: estás presentando algo muy fresco, algo que llevas 2 días trabajando, pero a la vez algo que has hecho con tanta tecnología que has de ir con más cabeza «marketiniana» y se hace raro.
La adrenalina antes. Y luego el detalle contra intuitivo que merece una mención: bajar del escenario con más nervios que al subir.
No es una sensación que haya tenido en muchas ocasiones. Es una sensación extraña a sabiendas de que no lo hacíamos por ganar ninguno de los premios… en fin. Al cabo de unos minutos se me pasó.
Decirlo con honestidad es más potente que el disclaimer habitual de «lo importante es participar».
Desconectar, y parar (un rato)
Cuando acaba la Hackathon te queda esa sensación de hype de querer seguir un rato más, pero, a la vez, estás tan petado, que quieres descansar. Despedida, abrazos, muchos «nos vemos pronto».
Y en este caso al volver a la habitación del hotel no me pude ni sentar 5 minutos. En realidad esta entrada la comencé justo en ese momento, justo cuando llegaba un mensaje diciendo «nos vamos a cenar al otro lado». Esperadme 4 minutos, que bajo.
El evento WordPress
El lunes había un evento WordPress. Tenía claro que no era un evento WordPress en el sentido en el que la Comunidad lo entiende, pero algunas personas que conozco desde hace muchísimos años estaban en el escenario y se merecían mi tiempo.
He de reconocer que, sin ninguna esperanza que iba, aprendí varias cosas nuevas.
He de reconocer una cosa que me marcó de Robert Windisch, y fue su frase de: si se puede hacer con el core, intenta evitar hacerlo de otra manera. Es TAAAN aplicable a TAAANTAS cosas. Tuve la oportunidad de cruzarme con él tras su charla y felicitarle. Porque cuando un colega lo hace bien, se le dice.
Comer en buena compañía
Había quedado a comer con Patricia Brun Torre para hablar de GatherPress. Cada vez que me reclaman para este proyecto, paro, y me siento con ellos, porque se lo merecen.
Al final también se apuntó Sé Reed, que siempre va como una moto, pero que tiene las cosas muy claras y da unos inputs muy interesantes…
Tengo ganas de ver qué sale de esa conversación y hacia dónde va el proyecto, porque ahora mismo hay dos caminos encima de la mesa y ambos pueden ser correctos… uno de esos caminos me implica directamente y me gusta mucho lo que se podría sacar de ahí.
Ganas de volver a casa
Hacía tiempo que no acababa un evento de estos y tuviera ganas de volver. En general «me da igual», pero en esta ocasión me esperaban en casa Karol, los niños y Roberta. Abrir la puerta y recibir un abrazo de todos ha sido genial.
De nuevo, muy agradecido
Quiero volver a dar las gracias, un año más, a Lucas Radke, por volver a ser mentor en uno de mis proyectos, a Alain Schlesser y Simon Kraft por estar siempre atentos, y por supuestísimo, a la genial Carole Olinger porque, simplemente, es la persona que puede liderar todo este jaleo.







Deja una respuesta