El código del pueblo, para el pueblo

La Free Software Foundation Europe —una ONG que promueve la libertad en la Sociedad Digital en general y el software libre en particular— lanzó la campaña «Public Money? Public Code!» en 2017, para exigir a los Gobiernos europeos que todo software desarrollado por el sector público esté disponible para cualquiera de forma gratuita, bajo una licencia open source.

En teoría, esto acarrearía múltiples ventajas a la ciudadanía. Por ejemplo, el ahorro en el gasto público por la potencial reutilización del software; o el desarrollo colaborativo, que mejoraría la calidad de las distintas aplicaciones al disfrutar de las diferentes aportaciones de todos los usuarios del código. También un mayor control sobre la gestión pública, al poder auditar directamente el software financiado con nuestros impuestos.

El desarrollo de ese planteamiento nos obligaría a hacernos una pregunta con grandes implicaciones: open source sí, pero ¿con qué tipo de licencia? Si el software público se distribuyera con una licencia copyleft —como la GPL— permitiría que cualquiera pudiera usarlo, modificarlo y redistribuirlo, pero esas nuevas versiones mejoradas o ampliadas también deberían ser copyleft, lo que limitaría la iniciativa privada para su explotación económica.
 
Otra opción sería distribuirlo con una licencia de tipo MIT, que permite hacer lo que se desee con el código original, pero eso permitiría que cualquiera pudiera explotar económicamente el software, aunque no hubiera contribuido a su financiación.
Una tercera vía sería reservar una licencia de tipo MIT a las empresas y ciudadanos que sufragaran con sus impuestos a la Administración que desarrollara el software y usar otra, de tipo GPL, para el resto.

Pero el debate sobre las licencias no debería impedirnos ver que para optimizar económicamente el desarrollo y uso del software público no hacen falta licencias open source sino voluntad política.




La Teoría

TL;DR. En esta sección conocerás la historia de la legislación relacionada con la gestión de software público hasta hoy. «Café para los muy cafeteros». Si se te hace bola, puedes saltar directamente a la sección de La Práctica. Sin resentimientos.

En 2007, en España nos dotamos de una Ley de Acceso Electrónico de los Ciudadanos a los Servicios Públicos que era bastante avanzada para su época. Su Titulo IV Capitulo III explicitaba que las Administraciones «podían» poner a disposición del resto todas las aplicaciones que hubieran desarrollado, pero no les obligaba a hacerlo. También les permitía licenciarlas como open source sin especificar con qué tipo de licencia, pero —una vez más— no les obligaba a hacerlo.

En 2009, llegó la Licencia Pública de la Unión Europea —o EUPL, la primera licencia open source creada por un organismo internacional— de tipo copyleft, junto con el Marco Europeo de Interoperabilidad; y, a partir de 2010, algunos estados de la Unión adoptaron políticas para promover el software libre en la Administración.
 
En España lanzamos el Esquema Nacional de Interoperabilidad en el ámbito de la Administración Electrónica que —en su Capítulo VIII, sobre reutilización y transferencia de tecnología— explicita que el licenciamiento del software de titularidad pública debería permitir su puesta a disposición de otra Administración y de los ciudadanos y que el fin último debe ser el aprovechamiento y la reutilización de recursos públicos. Para conseguirlo, la ley establece que «se procurará» aplicar la EUPL o licencias similares.
 
Una vez más hay voluntad —«podrían», «procurarán»—, pero ninguna obligación.
 
También estableció la creación y mantenimiento de un «Directorio general de aplicaciones» para su libre reutilización, que incluya el código fuente si este se libera bajo una licencia open source.
 
El problema es que cada Administración determina qué aplicaciones son reutilizables.
 
Finalmente, la regulación de la Administración Electrónica recae en dos MEGANORMAS. Para gestionar la interacción de la Administración con los Ciudadanos nos damos la Ley del Procedimiento Administrativo Común de las Administraciones Públicas que deroga la ley del 2007 y en donde no aparece ninguna mención al open source ni a la posible reutilización de aplicaciones.

Para legislar las relaciones entre distintas Administraciones tenemos la Ley 40/2015, de 1 de octubre, de Régimen Jurídico del Sector Público. En su capítulo IV sobre relaciones electrónicas entre las Administraciones, se especifica que «las Administraciones pondrán a disposición de cualquiera de ellas que lo solicite las aplicaciones, desarrolladas por sus servicios o desarrolladas por terceros, pero de cuyos derechos de propiedad intelectual sean titulares». Eso sí, se mete en un jardín al establecer que «las Administraciones cedentes y cesionarias podrán acordar la repercusión del coste de adquisición o fabricación de las aplicaciones cedidas».
 
Permite que el software se declare como «fuentes abiertas, cuando de ello se derive una mayor transparencia en el funcionamiento de la Administración Pública o se fomente con ello la incorporación de los ciudadanos a la Sociedad de la información», pero sigue sin exigir que lo hagan; y vuelve a recordar que «las Administraciones Públicas mantendrán directorios actualizados de aplicaciones para su libre reutilización», pero sin obligar a que todas lo sean.
 
MEH.

La Práctica

Desde 2007 llevamos sufriendo una legislación tibia e ineficaz que, si bien nos recuerda la obviedad de que el software público debería ser reutilizable y auditable, no dota al Estado de ningún instrumento que permita garantizarlo.

Una muestra es el Centro de Transferencia de Tecnología o CTT, ese supuesto directorio de software público reutilizable por distintas Administraciones. Después de décadas de inversión pública, aparentemente sólo hemos conseguido desarrollar 351 aplicaciones reutilizables. Eso sí, algunas de ellas tienen una escalabilidad y potencial prácticamente ilimitados. Como —por ejemplo— el framework de desarrollo web de la Universidad de Murcia, basado en JSF 2.1 y EJB 3.1. Sky is the limit.

Es imposible descargar el código fuente de la inmensa mayoría de aplicaciones si no eres un usuario registrado de las Administraciones Públicas, pero el propio CTT aclara que «para aquellas soluciones que desean construir una comunidad de desarrollo alrededor de su proyecto software libre, se ha creado la organización forja-CTT dentro del gran entorno colaborativo público de GitHub, en la que las administraciones públicas pueden crear y gestionar sus repositorios».

En ese espacio de GitHub tenemos disponibles 37 repositorios. Aparentemente, ese es todo el código abierto que nuestra Administración considera que debe compartir con su ciudadanía.

Es comprensible que otorgar una licencia open source —copyleft o no— a todo el software público pueda generar cierto debate, pero no hay ninguna justificación técnica que impida que todo código financiado con impuestos sea abierto (disponible para cualquier ciudadano que quiera leerlo), con la posible excepción de algunas aplicaciones policiales y militares.

Porque mas allá de licencias abiertas, lo que realmente movería la aguja sería tener un marco de desarrollo abierto. Que existiera un programa de bug bounty estatal que premiara la detección de errores y brechas de seguridad antes de que se convirtieran en un problema. Que existieran mecanismos para que cualquiera pudiera enviar un «parche» para mejorar o actualizar una aplicación pública.

Es frustrante comprobar que no existen unas directrices técnicas generales que determinen cómo se debe desarrollar software público —como, por ejemplo, los principios de diseño de software del Gobierno Británico— ni ninguna voluntad de aplicarlas.

Es doloroso ver como la ley ignora las prácticas elementales de la Ingeniería Informática, hasta el punto de justificar que una aplicación no sea reutilizable porque «la información a la que estén asociadas sea objeto de especial protección por una norma» (artículo 157 de la Ley de Régimen Jurídico del Sector Público), como si una aplicación y los datos que gestiona fueran indivisibles. ¿Justificaría eso, por ejemplo, que existieran 17 sistemas informáticos extremadamente semejantes —uno por Comunidad Autónoma— para gestionar el sistema sanitario español?

Por defecto, todas las aplicaciones públicas deberían ser reutilizables sin coste por otras Administraciones. Antes de iniciar cualquier proyecto de software, una Administración debería demostrar que no existe una opción desarrollada previamente o justificar técnicamente por qué la misma no es reutilizable. A estas alturas, sería cruel obligar a alguien a desarrollar una web con el framework de la Universidad de Murcia, pero probablemente con otro sistema ese framework habría evolucionado constantemente en vez de convertirse en un fósil informático.

Las licencias open source sirven para fomentar la colaboración entre individuos y empresas con distintos intereses, pero las distintas Administraciones deberían compartir un único interés, servir a la ciudadanía. Desgraciadamente, no parece que sea así. Vivimos en un país que tiene que endeudarse para pagar las pensiones de sus jubilados y donde completar algunos trámites básicos online sigue siendo una auténtica gymkana, pero que al mismo tiempo considera oportuno invertir dinero público para que el Gobierno de Navarra tenga presencia en el Metaverso o en crear «el Amazon toledano».

Ante este panorama, la pregunta principal no es si debemos distribuir todo el software público bajo una licencia EUPL, GPL o MIT, sino por qué no está ocurriendo ya. Por qué el sector público no colabora para cumplir su fin y por qué los ciudadanos no se lo exigimos.


Bonilla goes demócrata 4.0 en la Bonilista del 06/11/2022

Comentarios

Entradas populares