Hace dos años empezó un viaje muy interesante.

Entré a formar parte del equipo de revisión de plugins de WordPress.org y, bueno, es una barbaridad impresionante de trabajo lo que ha habido desde entonces, pero tras dos años y aún cansado, me siento feliz y satisfecho de todo lo que hemos conseguido.
El «Script Interno»
El «script interno» es una herramienta del equipo de plugins que nos ayuda en las revisiones de código y que hemos heredado de Mika.
Es la mayor pieza de software que he creado en toda mi vida, y ha sido creada a base de un proceso iterativo que está descrito en la siguiente imagen.

Desde entonces, no ha parado de evolucionar.

Estos son algunos de los logros que hemos conseguido con esta herramienta:
- Tener más de 200 checks automatizados sobre un analizador estático de código basado en nikic/PHP-Parser que nos permite buscar problemas de seguridad y compatibilidad en los plugins.
- Generar automáticamente un email de respuesta con todos los problemas encontrados de los cuales hay bastante certeza (el equipo lo revisa eliminando los posibles falsos positivos).
- Realizar análisis estático de código teniendo en cuenta el contexto. Por ejemplo la herramienta es capaz de recrear un string declarado previamente o determinar desde dónde se llama a la ejecución de una función o método. De este modo, sin ejecutar el código puede llegar a determinar qué valores habrá en qué sitios, con mayor o menor certeza (lo cual también se tiene en cuenta).
- Sistema multihilo para paralelizar la ejecución de los distintos checks. Actualmente, la revisión de un plugin lanza 16 hebras, lo que permite completar el proceso entre 5-10 segundos en la mayoría de casos (25-30 segundos sin hebras).
El software está dividido en grandes bloques de checks que se han ido creando de forma natural según las necesidades y abarcan los principales problemas que vemos en la revisión de plugins.
Por ejemplo hay un check para analizar los datos del plugin (archivo readme y cabeceras del plugin) que busca y da información sobre decenas de posibles problemas, desde lo más básico y sencillo a cosas más complejas, por ejemplo:
- Que la descripción esté vacía o sea idéntica a la que aparece en el archivo de ejemplo del readme.
- Que el plugin mencione un plugin con el que se integra y no lo haya incluido en el parámetro «Requires Plugins» de los headers del plugin.
- Que haya introducido una versión de WordPress inexistente en el parámetro «Tested up to».
Seguimos evolucionándolo, lo mejor es que tenemos el mayor campo de pruebas, más de 200 plugins nuevos cada semana de distintos autores y encontramos todo tipo de casos en el código que revisamos. Los autores de plugins no dejarán de sorprenderme.

Cada vez tenemos más cosas en cuenta para ser más rápidos, efectivos y certeros en las revisiones de código.
El equipo
El equipo de revisión de plugins está formado por voluntarios, algunos esponsorizados y otros no, que dedican su tiempo a hacer una labor con la que ayudan a otras personas a mejorar sus plugins y gestionan el directorio de acuerdo a las directrices.
Siempre he trabajado sólo, o casi solo, y para proyectos que acaban, y me gusta formar parte de algo con continuidad y en el que hay más gente con unos mismos objetivos. El equipo de plugins, matemáticamente no funcionaría sin ser un equipo. Hasta el momento hay personas que han entrado y personas que se han ido y sabemos que sin la aportación de cada uno simplemente no sería posible.
Llegué al equipo sabiendo lo básico, aprendí poco a poco, y una vez llegado un punto de cierta confianza documenté los procesos del equipo y ayudé a la incorporación de nuevas personas.
Fun fact: En los vídeos de documentación incluso lucí distintos outfits. ¡Que empiece la pasarela! 💅



Hay que divertirse.
Números
¿Te gustan las estadísticas? Venga, vamos a sacar números sobre mi trabajo en el equipo.
Emails
Lo que más me impresiona: soy la persona que más emails ha enviado dentro del sistema de WordPress.org en estos dos años.

Me siguen muy de cerca 4 grandes voluntarios, dos de ellos del equipo de plugins también (es lógico, gestionamos muchos emails).

He gestionado 10985 casos por email y he enviado unos 18511 emails en unas 8896 conversaciones.
De las casi 9000 conversaciones, más de 3000 han sido por dudas y cuestiones generales, 723 han sido por casos de violación de las directrices, y el resto relacionado con la revisión de plugins.
Plugins
En cuanto al número de plugins revisados, en los dos últimos años:
- He iniciado alrededor de 4200* revisiones de nuevos plugins (de un total de 14984 nuevos plugins).
- He aprobado 2156 plugins (de un total de 7077 aprobados).
* De algunos elementos tenemos datos estimados debido a inexactitudes en los datos y el cambio de sistemas con los cuales hemos tomado datos.
Estos datos han ido mejorando a lo largo del tiempo, por ejemplo en los últimos nueve meses, de los cuales si que tenemos datos exactos:
- He iniciado unas 2145 revisiones (de 7369 nuevos plugins, en los últimos 9 meses hemos recibido tantos plugins como en los 15 meses anteriores).
- Cada plugin requiere más de una revisión antes de ser aprobado, he realizado 7014 revisiones de plugins.
- He aprobado 1223 plugins (de un total de 4091 aprobados).
Horas
¿Y cuánto tiempo ha tomado todo esto?
1948 horas (julio de 2023 hasta ahora).
Estas son las horas por mes dedicadas desde que comencé a contarlas.


No tengo datos específicos sobre a qué se ha dedicado cada hora, pero en general si lo dividimos en tres grandes bloques y hacemos una media absurda, por cada hora he hecho:
- Desarrollo de herramientas: 0.3 commits y cambios en 65 líneas de código.
- Revisión de plugins: 2.15 revisiones de plugin iniciadas, 7.5 revisiones adicionales y 1.1 plugins aprobados.
- Gestión del directorio: 1.56 dudas solucionadas por email, 0.37 violaciones de las directrices gestionadas, 4.73 mensajes por slack, 0.037 reuniones del equipo, 0.04 publicaciones en make, 0.03 artículos de documentación creados.
Haciendo estas estadísticas me ha llamado la atención que en los últimos 9 meses he revisado tantos plugins como en los 15 meses anteriores… y más o menos estoy dedicando el mismo tiempo.
Estos datos confirman algo que me alegra muchísimo, que estamos siendo más eficientes.
SiteGround
Todo lo que ha sucedido con mi participación en el equipo no habría sido posible sin el apoyo de SiteGround, que desde el principio me quiso respaldar y, a día de hoy, sigue haciéndolo.

Sí, su respaldo es en gran parte económico, pero van más allá. Me han ayudado cuando he tenido dudas sobre cómo mejorar el equipo, me echaron una mano para dar mi primera charla en inglés ante una gran audiencia, me tratan como uno más y me han invitado a sus oficinas para reunirnos y para conocernos.
Y lo único que han pedido de mí es que siga realizando la labor que hago en WordPress.org.
Con el tiempo he podido conocerlos mejor y, más que una empresa, siento que he conocido una familia.
Bajo las capas de hormigón y cristal de sus impresionantes oficinas, y detrás de sus cientos o miles de servidores, hay un espíritu que se comparte: un espíritu amable, resiliente y visionario. Creo que eso es lo que hace que SiteGround sea SiteGround. Saber que una organización tan relevante en el sector funciona con ese espíritu humano y esa pasión por hacerlo mejor, sinceramente, me llena de orgullo y hace que me sienta muy cómodo con ellos.
La vida
Sigo siendo el mismo pero con arrebatos de ideas que necesito programar antes de que se me vayan de la cabeza y un master en argumentación en inglés a través de email.
En este tiempo, tras la última actualización todo se ha equilibrado un poco, si que es verdad que sigo dedicando bastante tiempo libre a seguir contribuyendo al equipo, supongo que transformando mi tiempo libre en algo no tan libre (aunque lo disfrute), pero estoy haciendo mis cosas y regando de nuevo las plantas, aunque sinceramente todavía se siente complicado irse varios días de vacaciones (lo he hecho, pero sucede a costa de soportar una mayor carga de trabajo varios días antes y después de las vacaciones)
En fin, seguiremos encajando vida y trabajo del mejor modo que podamos.
Qué hemos conseguido
En general, hemos cumplido el objetivo principal que es ayudar a los creadores de plugins a mejorarlos de cara a seguridad, compatibilidad y cumplimiento de las directrices y además:
- Hemos formado un nuevo equipo con personas de distintos sitios y con distintas disponibilidades que está haciendo que esto funcione de forma paralelizada.
- Hemos mejorado la herramienta interna de modo que llegamos a ver muchos más problemas y somos más rápidos y específicos dando soluciones.
- Hemos creado una herramienta pública que ayuda a los creadores de plugins a revisar su código y ver muchos de los problemas que nosotros vemos.
- Estamos revisando el doble de plugins que hace un año y estamos manteniendo un tiempo de revisión consistente.
⚠️ Esto posiblemente cambie durante la semana de WordCamp Europe, ya que buena parte del equipo estará allí.
¿Qué nos deparará el futuro? Espero que mucho éxito para el equipo. Eso significará mucho éxito para los creadores de plugins, quienes los usan, WordPress e internet en general. Lo veremos.

Deja una respuesta