Community Translations of the Standard for Public Code

Contents

  1. Definición de código público
  2. ¿Por qué código público?
    1. Código del software == código legal
    2. Contratación de software público tradicional
    3. Soberanía tecnológica y responsabilidad democrática
    4. Diseñar software realmente público
    5. Valores del código público
  3. Cómo funciona el código público
    1. Economía del código público
    2. Licitación de código público
  4. Cumplimiento de normas o proceso de certificación
    1. Cómo funciona el proceso
    2. Certificar una codebase completa frente a una contribución
  5. Objetivos del Estándar para el Código Público
    1. Para quién es este documento
  6. Más información (en inglés)
    1. Vídeos sobre código público (en inglés)
  7. Involúcrate

Introducción y contexto

El Estándar para el Código Público constituye un conjunto de criterios que apoyan a las organizaciones públicas en el desarrollo y mantenimiento conjunto de software y políticas.

Cualquiera que desarrolle software o políticas con fines públicos puede utilizar esta norma para trabajar en favor de unos servicios públicos de mayor calidad, más rentables, con menos riesgos y más control.

Esta introducción presenta el término código público, explica por qué es importante y presenta el proceso a través del que el software y políticas pueden convertirse en código público certificado.

Definición de código público

El código público comporta tanto código fuente computacional (como software y algoritmos) como políticas públicas ejecutadas en un contexto público, por humanos o máquinas. El código público es explícitamente distinto del código convencional puesto que opera bajo circunstancias y expectativas fundamentalmente diferentes.

¿Por qué código público?

Existen múltiples razones por las que el código público es relevante a día de hoy.

El software es una infraestructura pública.

En el siglo XXI el software puede ser considerado una infraestructura pública vital. Cada vez más, no es sólo la expresión de la política existente, sino el creador de nuevas políticas, por ejemplo, cuando los algoritmos deciden qué distritos necesitan servicios sociales o policiales adicionales.

La mecánica de los programas informáticos, los algoritmos y la recolección de datos se ha convertido en un elemento clave para la ejecución de las políticas públicas. El código informático ejecuta ahora políticas que han sido programadas en el código legal a través de procedimientos democráticos. Ambas formas de código establecen las condiciones para que la sociedad funcione de acuerdo con los valores públicos fijados democráticamente, el último ejecutado por humanos, el primero por máquinas. En otras palabras, el código del software ha empezado a equivaler cada vez más al código legal.

Por tanto, el software debería estar sujeto a los principios de la gobernanza democrática.

Contratación de software público tradicional

Los métodos de producción de software público actual no han sido muy eficaces en cuanto a la prestación de servicios públicos.

En la última década, algunas organizaciones públicas que han adquirido soluciones de software completas se encontrado con sorpresas como:

  • No pueden cambiar su software para reflejar una política que ha sido modificada o sacar provecho de una nueva tecnología.
  • Ho tienen acceso a sus datos ya que se encuentran cerrados en sistemas propietarios.
  • Se ven obligados a pagar licencias cada vez más costosas.

Soberanía tecnológica y responsabilidad democrática

Las instituciones públicas, trabajadores públicos y residentes se merecen algo mejor.

Creemos que el software que dirige nuestra sociedad no puede seguir siendo una caja negra, controlada por compañías externas que mantienen que mantienen oculta la lógica subyacente con la que funciona su software en codebases privadas. Por el contrario, los gobiernos y las personas a las que sirven necesitan soberanía tecnológica, que les permita establecer y controlar el funcionamiento del software público, al igual que pueden establecer y controlar la política que se formula legalmente en las leyes. Los ciudadanos y los actores de la sociedad civil necesitan que este software sea transparente y responsable.

El diseño del software como infraestructura cívica esencial debe respetar los derechos digitales de los ciudadanos.

Diseñar software realmente público

El código público está en el centro de las instituciones públicas modernas, da forma al trabajo de las personas que trabajan para el ente público y afecta a la vida de casi todo residente.

El software público debe por tanto ser:

  • Transparente.
  • Responsable.
  • Entendible por sus constituyentes.

Debe reflejar los valores de la sociedad a la que sirve. Por citar un caso: siendo inclusivo y no discriminatorio.

La mayoría de los sistemas de software propietario utilizados actualmente por las organizaciones públicas no cumplen estos requisitos. El código público —el software construido para funcionar con y como infraestructura pública, junto con los acuerdos para su producción— sí lo hace.

Valores del código público

Consideramos que el código público ha de tener los siguientes valores centrales:

  • Inclusivo.
  • Usable.
  • Abierto.
  • Legible.
  • Responsable.
  • Accesible.
  • Sostenible.

Cómo funciona el código público

El código público es un software de código abierto destinado a cumplir la función esencial de las organizaciones públicas. A través de su uso, otras administraciones contribuyen al software, de modo que su desarrollo y mantenimiento se vuelven verdaderamente colaborativos.

Ser abierto desbloquea muchas otras cosas.

La responsabilidad local y la rendición de cuentas democrática se garantizan cuando una organización pública implementa y mantiene su propio código público. Al ser abierto y contar con una base de colaboradores más amplia, el software es más seguro: se beneficia de que muchos ojos detecten posibles fallos. Muchos colaboradores comparten el trabajo de mantenimiento para mantenerlo funcional y moderno, lo que reduce la deuda técnica futura. La carga de trabajo compartida es más sostenible ahora y en el futuro. Su carácter abierto hace que el código y sus datos sean más fácilmente adaptables en el futuro: será más fácil editarlos, reutilizarlos o retirarlos. Todo ello redunda en una infraestructura pública de menor riesgo.

Esta puesta en común de recursos permite a las administraciones públicas prestar más atención a la forma de personalizar el software para que funcione mejor en cada contexto local, creando mejores experiencias para sus usuarios finales (residentes o ciudadanos).

Economía del código público

El código público ofrece un mejor modelo económico tanto para las organizaciones públicas como para las empresas privadas. Es una alternativa a la adquisición tradicional de software que aumenta el control local y las oportunidades económicas.

Diseñado desde el principio para ser abierto, adaptable y con portabilidad de datos, puede ser desarrollado por personal interno o por proveedores de confianza. Como el código es abierto, la administración pública puede cambiar de proveedor si lo necesita. El código abierto aumenta las oportunidades de aprendizaje y escrutinio público, lo que permite a la administración pública obtener contratos de menores cuantías, facilitando así que las pequeñas y medianas empresas locales puedan presentar ofertas. Las administraciones públicas pueden utilizar sus propias compras de software para estimular la innovación y la competencia en su economía local.

Esto puede considerarse como una inversión que conduce al futuro crecimiento económico: serán necesarios más proveedores debido a la creciente demanda de tecnología.

Licitación de código público

El código público puede ser utilizado y desarrollado por equipos de desarrollo internos permanentes, contratistas o proveedores externos. Los proveedores de las organizaciones públicas pueden incluir el código público en sus ofertas para los contratos.

Para utilizar el código público existente, hay que especificar en el presupuesto y el diseño del proyecto que la nueva solución utilizará esa codebase. Para fomentar un enfoque innovador en la adaptación del código público a su contexto, puede describir el servicio o resultado en su contrato.

Cumplimiento de normas o proceso de certificación

La Foundation for Public Code se asegura de que las codebase bajo su tutela o stewardship (y no in incubation o in the attic) cumplan con el Estándar para el Código Público. Esto deja claro a los usuarios y colaboradores potenciales que la codebase es de alta calidad, y que las actualizaciones también lo serán.

La auditoría realizada por nuestra organización está pensada para complementar las pruebas o tests automáticos, ya que las máquinas son excelentes para comprobar cosas como la sintaxis y si los resultados se ajustan a las expectativas. Las máquinas no pueden comprobar cosas que están destinadas a los humanos, como comprobar si la documentación es realmente comprensible y accesible en su contexto, si los mensajes de confirmación tienen sentido y si se siguen las directrices de la comunidad.

La auditoría pone a prueba toda la codebase, incluyendo el código fuente, la política, la documentación y la conversación para comprobar que se cumplen tanto las normas establecidas por nuestra organización como las normas establecidas en la propia codebase.

Cómo funciona el proceso

Cada vez que se sugiere una contribución a una codebase —por ejemplo, a través de una solicitud de merge— los administradores de la codebase de nuestra organización auditarán la contribución para comprobar que cumple con el Estándar para el Código Público. Las nuevas contribuciones sólo pueden ser adoptadas en la codebase después de haber sido aprobadas conforme con el Estándar para el Código Público, y haber sido revisadas por otro contribuyente.

La auditoría se presenta como una revisión de la contribución. El administrador de la codebase da su opinión línea por línea y la conformidad, ayudando al contribuyente a mejorar su contribución. La solicitud de fusión no puede realizarse hasta que los administradores de la codebase hayan aprobado la contribución.

Proceso de aceptación de pull requests

Certificar una codebase completa frente a una contribución

Para que la codebase esté completamente certificada, cada línea de código significativa, y los commits que hay detrás del código, tienen que cumplir el Estándar para el Código Público.

Si las codebase han sido auditadas por completo desde la primera solicitud de merge, pueden certificarse inmediatamente como conformes con la el Estándar para el Código Público.

Si el proceso de auditoría se añade a una codebase existente, las nuevas solicitudes de merge pueden certificarse, pero el código existente no puede certificarse. Al auditar cada nueva solicitud de merge, la codebase puede avanzar gradualmente hacia la certificación completa.

Objetivos del Estándar para el Código Público

Este Estándar ayuda a profesionales del desarrollo, diseño, de la gestión de equipos empresariales y responsables de políticas a:

  • Desarrollar software y políticas de alta calidad para mejorar la prestación de servicios públicos.
  • Desarrollar codebases que puedan reutilizarse en distintos contextos y mantenerse en colaboración.
  • Reducir la deuda técnica y la tasa de fracaso de los proyectos.
  • Tener un mayor control y capacidad de decisión sobre sus sistemas de IT.
  • Mejorar las relaciones con los proveedores con un mejor modelo económico.

La Foundation for Public Code ayuda a las organizaciones públicas a compartir y adoptar software de código abierto, construir comunidades de desarrolladores sostenibles y crear un ecosistema próspero para el código público. Lo hace a través de la tutela o stewardship de codebases. Para este proceso, las personas que administran las codebases utilizan el Estándar para el Código Público para asegurarse de que el código que supervisan es de alta calidad y puede ser mantenido de manera colaborativa.

Los usuarios potenciales de las codebases que cumplen con el Estándar para el Código Público pueden esperar que sean altamente reutilizables, fácilmente mantenibles y de alta calidad.

El Estándar para el Código Público hace esto mediante:

  • El establecimiento de una terminología común para el desarrollo de código público.
  • Estableciendo medidas para ayudar a desarrollar un código público de alta calidad.
  • Proporcionando orientación sobre cómo cumplir sus criterios y hacer operativa su conformidad.

El Estándar para el Código Público pretende ser independiente del tiempo y la tecnología.

Para quién es este documento

El Estándar para el Código Público es para aquellas personsa que crean y reúsan código público:

  • Responsables de políticas.
  • Personas encargadas de la gestión de equipos y proyectos.
  • Profesionales del desarrollo de software y el diseño.

Estas personas trabajan en:

  • Organizaciones públicas: instituciones y administraciones.
  • Consultorías y empresas proveedoras de servicios de tecnologías de la información y políticas a organizaciones públicas.

No se dirige a las y los usuarios finales de las organizaciones públicas (residentes o ciudadanía), ni a periodistas o personas académicas.

Más información (en inglés)

Vídeos sobre código público (en inglés)

Involúcrate

Este estándar es un documento vivo. Lee nuestra guía para contribuir para aprender cómo puedes mejorarlo.