La semana pasada explicaba cómo un software externo, Wordfusion, fue mi puerta de entrada a la automatización durante mis prácticas en Granada y mi posterior etapa en Almuñécar. Aquel programa no solo simplificó mi día a día en el Juzgado, sino que fue mi verdadero puente hacia el mundo de la programación a través de Visual Basic. Sin embargo, pese a esa importancia fundacional, aquel sistema tenía los días contados.

Con tal de avanzar en la materia, resulta imprescindible que nos detengamos un momento para presentar a Alberto, compañero de promoción y una figura capital en este proyecto. Alberto es, con diferencia, la persona más inteligente que he conocido. Posee una capacidad de procesamiento superlativa, un cerebro estructurado bajo los parámetros del pensamiento computacional y una habilidad envidiable tanto para las matemáticas como para llevar la contraria. 

A principios de 2024, ambos fuimos destinados simultáneamente a Tarragona: yo al Juzgado de lo Penal n.º 2 y él al n.º 4. Más allá de nuestra coincidencia en el destino, pronto descubrimos que compartíamos no solo la misma necesidad de agilizar una carga de trabajo abrumadora, sino también una idéntica curiosidad por la innovación y por buscar soluciones distintas a los problemas de siempre en la oficina judicial.

Entrada a los JUZGADOS PENALES Y FISCALÍA JUTJAS PENALS de Tarragona

En un inicio, le mostré las posibilidades que ofrecía Wordfusion, y si bien barajamos la opción de empezar a trabajar con él, la realidad se impuso: las limitaciones de un software desactualizado, sin soporte oficial y con una fiabilidad técnica más que cuestionable eran un riesgo inasumible para el volumen de trabajo que enfrentábamos. 

Tras semanas de indagación y búsqueda de alternativas que nos permitieran trabajar con mayor seguridad y autonomía, Alberto dio con lo que para nosotros fue, en aquel momento, el "Santo Grial": el apartado de "Programador" (Developer) de Microsoft Word.

Descubrimos que no necesitábamos programas de terceros ni instalaciones complejas: la solución estaba integrada en el mismo procesador de textos que utilizábamos a diario, si bien relativamente escondida, pues la pestaña de "Programador" viene desactivada por defecto en la configuración original. 


Acceso al creador de formularios de word


Tal hallazgo supuso el inicio de nuestra migración hacia un entorno de desarrollo nativo y mucho más robusto. Reconozco que, en mi caso, la migración fue traumática. No porque el lenguaje de programación fuera distinto —pues seguía basándose en la lógica de Visual Basic for Applications (VBA)—, sino porque el entorno y la interfaz eran completamente diferentes. Para un programador experimentado esto no sería más que un trámite, pero para alguien que apenas llevaba nada y menos programando, y que aún no sabía ni cómo construir un bucle, que de pronto le cambiaran las reglas del juego fue un golpe duro.

Nueva setup para hacer ver que sé lo que me hago

Sin embargo, las semanas fueron pasando y, tras muchas crisis y muchas Coca-Colas de consolación, acabé recobrando el espíritu y acostumbrándome a un sistema que, a día de hoy, reconozco que fue de lo mejor con lo que he podido trabajar. Las facilidades que ofrecía el entorno integrado de Word eran estupendas: una estabilidad real, infinidad de tutoriales en YouTube y una interfaz mucho más moderna y estéticamente accesible que la de aquel viejo software. Habíamos pasado de rezar para que el programa no se colgara a trabajar sobre una base sólida y profesional.

La generación de los formularios era especialmente sencilla, gracias a una interfaz visual que permitía crear todos los objetos propios de la programación —listas, casillas de texto o botones— con el simple gesto de arrastrarlos desde el menú. Todo estaba preparado para ser implementado y usado de inmediato. No entraré ahora en mayores detalles técnicos, pues tengo previsto dedicar un apartado específico en el futuro a explicar detenidamente cómo funciona esta arquitectura por dentro.


Creando un formulario con Word VBA

Una vez teníamos el entorno, solo faltaba decidir el objeto: ¿cuál de las múltiples resoluciones que dictamos en los Juzgados de lo Penal íbamos a automatizar? La solución no tardó en llegar. Nos decantamos por la creación de una herramienta para documentar las sentencias de conformidad. El motivo era doble: por un lado, su peso estadístico, ya que según las memorias del CGPJ y la Fiscalía General, representan cerca del 50% de las resoluciones dictadas en España. Por otro lado, su idoneidad técnica: la conformidad es una institución reglada donde el juez verifica el acuerdo entre acusación y defensa y su legalidad, lo que la convierte en un escenario propicio para la automatización pues no hay  valoración de la prueba como tal. Implementar tecnología aquí no solo asegura la precisión y estandarización de las resoluciones, sino que agiliza la labor jurisdiccional protegiendo escrupulosamente las garantías procesales.

Fijado el objetivo, acordamos que nuestro proceso de desarrollo se compondría de dos grandes fases diferenciadas. La primera consistiría en una etapa de experimentación individual, donde cada uno de nosotros crearía una propuesta propia desde cero. El objetivo era que cada cual explorara sus propias soluciones lógicas y se familiarizara con el entorno de Visual Basic de manera autónoma. La segunda fase sería la de convergencia, donde pondríamos en común lo aprendido y uniríamos conocimientos para crear una herramienta conjunta.

Tras unos meses, el resultado final no pudo ser mejor. Cada uno había optado por enfoques completamente diferentes, con lógicas internas casi antagónicas, pero con un éxito idéntico: un programa plenamente funcional. Dicho éxito, además, lo fue por partida doble, pues nuestras herramientas no solo eran capaces de dictar sentencias en escasos minutos integrando todas las variaciones posibles en el complejo fenómeno de la conformidad, sino que también automatizaban la generación del correspondiente requerimiento al penado.

Propuesta de herramienta VBA (word)

Es importante abrir aquí un paréntesis para entender la relevancia de esto último, sobretodo para aquellos lectores que no estén familiarizados con el día a día de un Juzgado de lo Penal. 

Tras dictar oralmente la sentencia de conformidad, es imperativo requerir personalmente al condenado o condenada para que cumpla con los términos exactos del fallo: ya sea que se abstenga de conducir, que abone la multa o que respete una prohibición de aproximación. 

Ello exigía que, tras el acuerdo, el juez rellenara a mano una hoja con las penas, medidas y demás condiciones impuestas, la cual era llevada a la oficina por el auxilio judicial para que el funcionario encargado del procedimiento dejara a un lado aquello en lo que estuviera trabajando y se dedicara a leer el estadillo y a confeccionar, sobre la base de este, el requerimiento individualizado a cada penado. Todo ello sucedía mientras la persona condenada y su letrado/a esperaban en el mostrador del Juzgado. 

Esta práctica, aunque suponía un avance al permitir realizar el requerimiento al momento, no dejaba de implicar una duplicidad de funciones: por un lado, el juez no solo debía dictar la sentencia, sino también cumplimentar dichas hojas de conformidad; y por otro, la oficina judicial se veía obligada a procesar esa información de nuevo para confeccionar el requerimiento final.

Asimismo, debe tenerse en cuenta que el dictado oral de la sentencia no exime al juez de la obligación de plasmarla posteriormente en un documento escrito. En la práctica, esto suponía que las partes abandonaban la sede judicial tras la vista y, posteriormente, el juez o jueza redactaba la sentencia ya fuera esa misma tarde, al día siguiente o cuando la agenda lo permitiera. 

Esta desconexión temporal obligaba a citar de nuevo a los penados para que comparecieran otro día a recoger la sentencia o, en su defecto, a tratar de notificarles personalmente por correo a través del servicio de notificaciones. El resultado era una alarmante pérdida de eficacia, pues en muchas ocasiones resultaba ya imposible localizarles de nuevo.

Nuestras herramientas permitían realizar todo ese proceso en la misma sala de vistas, en el preciso instante en que se celebraba el acto de conformidad. Al permitir confeccionar en escasos minutos tanto sentencia como el requerimiento, logramos que el condenado saliera del juzgado con toda la documentación en mano y debidamente requerido, eliminando así una de las mayores ineficiencias de la gestión procesal diaria.

Ejemplo formulario conformidad

Tras meses de ensayo y error en nuestros respectivos juzgados, empezamos a compartir estas primeras versiones con los compañeros de Tarragona. Recuerdo cómo alguno observaba el proceso como si estuviera ante un truco de magia, tratando de adivinar dónde estaba la trampa. Pero no había trampa: solo había código.

Transcurrido el primer semestre de 2024, nuestras herramientas individuales ya eran aceptables. Eran aceptables en cuanto a eficacia —puesto que cumplían su función—, pero desde luego no en cuanto a eficiencia. Yo seguía sin implementar debidamente el uso de bucles y, sobre el hecho de tener 27.000 líneas de código apelotonadas en un único módulo, mejor ni comentarlo. Aun así, nos reunimos para abordar la segunda fase: la creación conjunta.

Para mí, el plan era evidente: seguir con Visual Basic en el entorno que Word Developer nos ofrecía. De hecho, incluso comencé a esbozar una suerte de proyecto conjunto, un formulario definitivo que unificara nuestras interfaces y experiencias previas.

Propuesta conjunta en VBA (word)

Pero, en ese momento, Alberto soltó:

—¿Y si aprendemos a programar en Python?

Recuerdo perfectamente ese momento. Un escalofrío me recorrió el cuerpo pensando, de nuevo, en una migración traumática. ¿Cómo que Python? ¿Por qué Python? Aquello no era un simple cambio de interfaz; era cambiar de lenguaje de programación. 

Sin embargo, no podía rebatir sus argumentos, pues teníamos ideas que ya no cabían en el entorno de Word. Estábamos limitados por el formato, el estilo y el soporte, pero, sobre todo, por la falta de proyección de nuestro trabajo. Entendimos que si queríamos desarrollar algo que fuera realmente escalable a terceros y fácil de distribuir en otros juzgados, el ecosistema de Word presentaba serias limitaciones técnicas que lo hacían inviable. Si queríamos crear algo con verdadera ambición, no podíamos seguir dependiendo de las costuras de un procesador de textos ni de VBA.

Así que, de repente, volvíamos a la casilla de salida.