Pomona: Continuous Code Quality Improvement via Small, Automated Changes at Bloomberg
Este artículo presenta Pomona, una herramienta agéntica ligera inspirada en Kaizen que mejora continuamente la calidad del código en Bloomberg mediante la automatización del descubrimiento y la reparación incremental de la deuda técnica a través de pull requests pequeños y de bajo riesgo, logrando altas tasas de éxito de fusión y una sólida adopción por parte de los ingenieros en un despliegue de un mes.
Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
Imagina que estás gestionando una biblioteca enorme y bulliciosa (el código de tu empresa). Con el tiempo, algunos libros se colocan mal en las estanterías, algunas páginas tienen manchas de café y en algunas se han escrito notas a lápiz que deben borrarse. Por lo general, los bibliotecarios (los ingenieros de software) están demasiado ocupados escribiendo nuevos libros como para arreglar estos pequeños y persistentes problemas. Saben que la biblioteca necesita una limpieza, pero no tienen tiempo para hacerlo todo de una vez.
Aquí entra Pomona, un nuevo y útil robot asistente diseñado específicamente para hacer las "pequeñas cosas" que los humanos siguen posponiendo.
Así es como funciona Pomona, desglosado en conceptos simples:
1. El baile de dos pasos: Escaneo y Reparación
Pomona no es una varita mágica que lo arregla todo de golpe. En su lugar, funciona como un conserje diligente con una rutina específica, utilizando dos "habilidades" principales:
El Escáner (Los Ojos): Esta parte de Pomona recorre la biblioteca buscando pequeños problemas. Busca cosas como:
- Libros dejados en el estante equivocado (errores de linting).
- Notas adhesivas que dicen "Arreglar esto después" que han estado ahí durante años (TODOs).
- Páginas que están en blanco y son inútiles (código muerto).
- Capítulos faltantes en el índice (brechas de pruebas).
Una vez que encuentra estos problemas, los anota en un Backlog (una lista de tareas pendientes), clasificándolos según su importancia o la facilidad con la que se pueden arreglar.
El Reparador (Las Manos): Esta parte elige el primer elemento, el más fácil y el más importante de la lista de tareas. Luego realiza un arreglo diminuto, muy, muy pequeño; piensa en reorganizar solo 10 líneas de texto o corregir una sola errata. No intenta reconstruir toda la biblioteca; solo arregla un pequeño estante.
2. La "Solicitud de Tirón Diminuta" (La Verificación Humana)
Esta es la parte más importante: Pomona no cambia los libros por su cuenta. Crea una Pull Request (PR).
Imagina una Pull Request como una nota adhesiva que Pomona deja en un libro diciendo: "Oye, noté que esta página estaba al revés. La volví a poner de pie. Por favor, echa un vistazo rápido y dime si lo hice bien".
- Pequeño es Seguro: Debido a que los cambios son tan pequeños (unas 10 líneas), un bibliotecario humano puede echar un vistazo a ellos en segundos.
- Humano en el Bucle: Un humano debe decir "Sí" antes de que se realice el cambio. Esto mantiene a los ingenieros en control y genera confianza. No tienen miedo de que el robot borre accidentalmente toda la biblioteca.
3. La Filosofía Kaizen
El artículo compara a Pomona con Kaizen, una filosofía japonesa de "mejora continua". En lugar de intentar una renovación masiva y aterradora una vez al año, Pomona sugiere realizar pequeñas y constantes mejoras cada día. Es la diferencia entre intentar limpiar toda la casa en un fin de semana frente a dedicar 10 minutos al día a ordenar una habitación.
4. ¿Qué pasó cuando lo intentaron?
El equipo de Bloomberg (una gran empresa financiera) dejó que Pomona trabajara durante un mes. Esto es lo que encontraron:
- Funcionó: De 17 pequeños arreglos que Pomona sugirió, 15 fueron aceptados e integrados en el código.
- Fue Rápido: La mayoría de estos arreglos fueron aprobados y cerrados en menos de 2 horas.
- A la gente le gustó: Cuando se les preguntó a los ingenieros si querían usar a Pomona, 8 de cada 10 dijeron que sí. Les encantó que los cambios fueran pequeños y fáciles de leer.
- El Cuello de Botella: La única vez que las cosas se estancaron fue cuando Pomona se emocionó demasiado e intentó arreglar lo mismo dos veces antes de que un humano pudiera revisar la primera vez. El equipo solucionó esto diciéndole a Pomona que comprobara si ya había un arreglo en curso.
5. Por qué esto es importante
El artículo concluye que, si bien la IA es excelente escribiendo código grande y complejo, actualmente es mejor siendo un asistente útil para tareas pequeñas y aburridas.
- Confianza: Los ingenieros son escépticos ante la idea de que la IA realice cambios grandes, pero confían en ella para arreglos pequeños y obvios.
- Enfoque: Al dejar que el robot se encargue de la "recolección de basura" (código muerto, notas antiguas), los humanos pueden concentrarse en construir nuevas funciones.
- Control: El sistema funciona porque el humano siempre tiene la última palabra.
En resumen, Pomona es una herramienta que ayuda a los equipos a mantener su código limpio y saludable mediante la realización de mejoras pequeñas, automatizadas y fácilmente aprobables, en lugar de esperar a que un humano encuentre el tiempo para hacerlo manualmente.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.