Lectura pública del tema
1. Repositorios: estructura y actualización
1. Repositorios: estructura y actualización
🎯 Idea clave
- Los repositorios son sistemas centralizados que almacenan y gestionan el código fuente, documentación y recursos de un proyecto de desarrollo.
- Su estructura organizativa permite la colaboración eficiente entre equipos, garantizando la trazabilidad de los cambios y la integridad del código.
- La actualización de repositorios sigue procesos estandarizados para asegurar la coherencia y la calidad del software en entornos corporativos.
- En la Administración General del Estado (AGE), los repositorios deben cumplir con criterios de seguridad, soberanía tecnológica y reutilización.
- La gestión de ramas (branching) y fusiones (merging) es esencial para mantener versiones estables y desarrollar nuevas funcionalidades en paralelo.
- La integración con herramientas corporativas como LDAP o Kubernetes facilita la operatividad y el cumplimiento normativo.
📚 Desarrollo
Definición y propósito. Un repositorio es un sistema de almacenamiento que centraliza el código fuente, los archivos de configuración, la documentación y otros recursos asociados a un proyecto de desarrollo. Su función principal es facilitar la colaboración entre equipos, permitiendo el control de versiones, la revisión de cambios y la gestión de incidencias. En el ámbito de la AGE, los repositorios no solo sirven como almacén de código, sino que también garantizan el cumplimiento de estándares técnicos y normativos, como el Esquema Nacional de Seguridad (ENS) y el Esquema Nacional de Interoperabilidad (ENI).
Estructura organizativa. La estructura de un repositorio se organiza en directorios y archivos, siguiendo convenciones que varían según la plataforma utilizada (GitHub, GitLab, etc.). En la AGE, se prioriza una estructura clara y jerárquica, donde los directorios suelen agrupar componentes por funcionalidad, como src para el código fuente, docs para la documentación o tests para las pruebas. Esta organización facilita la navegación y el mantenimiento del proyecto, especialmente en entornos con múltiples desarrolladores o equipos distribuidos.
Gestión de ramas. El uso de ramas (branches) es una práctica fundamental en la gestión de repositorios. Permite desarrollar nuevas funcionalidades, corregir errores o realizar pruebas sin afectar la versión principal del código (main o master). En la AGE, se emplean estrategias como Git Flow o GitHub Flow, que definen reglas para la creación, fusión y eliminación de ramas. Por ejemplo, se utilizan ramas temporales para desarrollar características específicas (feature branches) y ramas estables para versiones de producción (release branches).
Procesos de actualización. La actualización de un repositorio implica la incorporación de cambios de manera controlada, mediante operaciones como commit, push, pull o merge. En la AGE, estos procesos están sujetos a políticas de revisión de código, donde los cambios deben ser aprobados mediante pull requests o merge requests antes de integrarse en la rama principal. Esto asegura que el código cumpla con los estándares de calidad y seguridad establecidos, además de facilitar la detección temprana de errores o vulnerabilidades.
Integración con herramientas corporativas. Los repositorios en la AGE no operan de forma aislada, sino que se integran con otras herramientas corporativas para optimizar los flujos de trabajo. Por ejemplo, se conectan con sistemas de autenticación como LDAP para gestionar permisos de acceso, con plataformas de gestión de proyectos como Jira para el seguimiento de incidencias, o con entornos de despliegue como Kubernetes para la implementación continua. Esta integración garantiza la coherencia entre el desarrollo, la operación y la seguridad del software.
Seguridad y cumplimiento normativo. La seguridad es un aspecto crítico en la gestión de repositorios en la AGE. Se implementan medidas como la autenticación multifactor (MFA), el escaneo de vulnerabilidades en el código y el uso de firmas digitales para validar la autoría de los cambios. Además, se priorizan soluciones autoalojadas o de código abierto para garantizar la soberanía tecnológica, en línea con los principios del ENS y el ENI. Estas prácticas no solo protegen la integridad del código, sino que también aseguran el cumplimiento de los marcos regulatorios aplicables.
Colaboración y reutilización. Los repositorios facilitan la colaboración entre distintos organismos de la AGE, permitiendo el desarrollo de proyectos transversales. Por ejemplo, iniciativas como Cl@ve o @firma se gestionan en repositorios públicos o privados, donde múltiples equipos pueden contribuir de manera coordinada. Además, la reutilización de código y componentes es una práctica promovida por el ENI, que fomenta la eficiencia y la reducción de costes en el desarrollo de soluciones tecnológicas para la administración pública.
🧩 Elementos esenciales
- Repositorio: Sistema centralizado que almacena código fuente, documentación y recursos de un proyecto, facilitando su gestión y colaboración.
- Estructura jerárquica: Organización de archivos y directorios en carpetas como src, docs o tests, siguiendo convenciones estandarizadas.
- Ramas (branches): Versiones paralelas del código que permiten desarrollar funcionalidades o corregir errores sin afectar la rama principal.
- Fusión (merge): Proceso de integrar cambios de una rama a otra, sujeto a revisión y aprobación en entornos corporativos.
- Revisión de código: Mecanismo de control de calidad mediante pull requests o merge requests, obligatorio en la AGE antes de fusionar cambios.
- Autenticación multifactor (MFA): Medida de seguridad para proteger el acceso a los repositorios, en cumplimiento del ENS.
- Escaneo de vulnerabilidades: Herramienta automatizada para detectar riesgos de seguridad en el código antes de su integración.
- Integración con LDAP: Conexión con sistemas de autenticación corporativos para gestionar permisos de acceso de manera centralizada.
- Autoalojamiento: Prioridad en la AGE para utilizar repositorios alojados en infraestructuras propias, garantizando soberanía tecnológica.
- Código abierto: Uso de licencias abiertas para fomentar la reutilización y la transparencia, en línea con el ENI.
- Despliegue continuo: Integración con herramientas como Kubernetes para automatizar la implementación de cambios en entornos de producción.
- Documentación: Archivos y recursos que acompañan al código, esenciales para el mantenimiento y la colaboración en proyectos complejos.
🧠 Recuerda
- Los repositorios son la base del desarrollo colaborativo en la AGE, centralizando código y documentación.
- Su estructura debe ser clara y jerárquica para facilitar la navegación y el mantenimiento.
- Las ramas permiten trabajar en paralelo sin afectar la versión estable del código.
- La revisión de código mediante pull requests es obligatoria antes de fusionar cambios.
- La seguridad es prioritaria: MFA, escaneo de vulnerabilidades y firmas digitales son prácticas estándar.
- La integración con herramientas corporativas como LDAP o Jira optimiza los flujos de trabajo.
- El autoalojamiento y el código abierto son criterios clave para cumplir con el ENS y el ENI.
- La reutilización de código y componentes es una práctica promovida para mejorar la eficiencia.
- Los repositorios en la AGE no solo almacenan código, sino que garantizan su trazabilidad y cumplimiento normativo.
- La colaboración entre organismos se facilita mediante repositorios compartidos en proyectos transversales.
2. Generación de código y documentación
2. Generación de código y documentación
🎯 Idea clave
- La generación de código automatiza la creación de componentes repetitivos para mejorar la eficiencia y reducir errores humanos.
- La documentación técnica es esencial para garantizar la mantenibilidad y comprensión de los sistemas en entornos colaborativos.
- Las herramientas de generación integran estándares de la Administración General del Estado para asegurar la interoperabilidad.
- La documentación debe ser precisa, actualizada y accesible para todos los miembros del equipo de desarrollo.
- La automatización de la generación de código y documentación forma parte de los procesos de integración y despliegue continuo (CI/CD).
- La generación de documentación incluye tanto el código fuente como los manuales de usuario y guías técnicas.
📚 Desarrollo
Automatización de código. La generación de código en la Administración General del Estado se basa en herramientas que permiten crear componentes estandarizados a partir de plantillas o modelos predefinidos. Estos procesos reducen la carga de trabajo manual y minimizan los errores derivados de la repetición de tareas. Además, facilitan la adaptación a los requisitos técnicos y normativos específicos de la AGE, como el Esquema Nacional de Interoperabilidad (ENI).
Documentación técnica. La documentación es un pilar fundamental en el desarrollo de software, especialmente en entornos colaborativos donde participan múltiples equipos y organismos. Debe incluir descripciones detalladas del código, diagramas de flujo, manuales de usuario y guías de instalación. La claridad y precisión en la documentación aseguran que los sistemas sean comprensibles y mantenibles a lo largo del tiempo, incluso cuando cambian los equipos de trabajo.
Integración con CI/CD. La generación de código y documentación está estrechamente ligada a los procesos de integración y despliegue continuo. Las herramientas de CI/CD permiten automatizar la creación de documentación a partir del código fuente, asegurando que siempre esté actualizada con las últimas modificaciones. Esto es especialmente relevante en la AGE, donde la trazabilidad y el cumplimiento normativo son prioritarios.
Herramientas de generación. En la Administración General del Estado se utilizan herramientas como Doxygen, Javadoc o Swagger para generar documentación técnica de forma automática. Estas herramientas analizan el código fuente y extraen información relevante, como comentarios, estructuras de datos o APIs, para crear documentos en formatos accesibles como HTML, PDF o Markdown. La elección de la herramienta depende del lenguaje de programación y de los requisitos específicos del proyecto.
Estándares de documentación. La documentación en la AGE debe cumplir con estándares que garanticen su calidad y utilidad. Esto incluye la utilización de un lenguaje claro y técnico, la inclusión de ejemplos prácticos y la estructuración lógica de la información. Además, debe estar alineada con los principios del Esquema Nacional de Seguridad (ENS) y del Esquema Nacional de Interoperabilidad (ENI), asegurando que sea accesible y reutilizable por otros organismos.
Colaboración y accesibilidad. La documentación no solo debe ser técnica, sino también accesible para todos los miembros del equipo, incluyendo desarrolladores, administradores de sistemas y usuarios finales. En la AGE, esto implica la utilización de plataformas colaborativas como wikis o sistemas de gestión de documentos, donde la información pueda ser consultada y actualizada de forma centralizada. La accesibilidad y la colaboración son clave para garantizar la eficiencia en proyectos transversales.
Generación de manuales. Además de la documentación técnica, es fundamental generar manuales de usuario y guías operativas que faciliten la adopción de los sistemas por parte de los empleados públicos. Estos documentos deben ser claros, concisos y adaptados a los diferentes perfiles de usuarios, desde técnicos hasta personal no especializado. La generación automática de estos manuales a partir de plantillas predefinidas agiliza el proceso y asegura la coherencia en la información proporcionada.
Seguridad y cumplimiento. La generación de código y documentación en la AGE debe cumplir con los requisitos de seguridad establecidos en el Esquema Nacional de Seguridad. Esto incluye la protección de la información sensible, la auditoría de los procesos de generación y la validación de los documentos generados. La automatización de estos procesos contribuye a reducir riesgos y a garantizar el cumplimiento normativo en todas las fases del desarrollo.
🧩 Elementos esenciales
- Generación automática de código: Proceso que utiliza plantillas o modelos para crear componentes de software de forma automatizada, reduciendo errores y mejorando la eficiencia.
- Documentación técnica: Conjunto de documentos que describen el funcionamiento, estructura y uso del código fuente, esencial para la mantenibilidad y colaboración.
- Herramientas de generación: Software como Doxygen, Javadoc o Swagger, que extraen información del código para crear documentación en formatos accesibles.
- Integración con CI/CD: Automatización de la generación de código y documentación dentro de los pipelines de integración y despliegue continuo.
- Estándares de documentación: Normas que garantizan la calidad, claridad y utilidad de la documentación, alineadas con el ENI y el ENS.
- Manuales de usuario: Documentos destinados a facilitar el uso de los sistemas por parte de empleados públicos, adaptados a diferentes perfiles.
- Plataformas colaborativas: Sistemas como wikis o gestores de documentos que centralizan la información y facilitan su actualización y consulta.
- Seguridad en la generación: Cumplimiento de los requisitos del ENS para proteger la información y validar los procesos de generación.
- Trazabilidad: Capacidad de rastrear los cambios en el código y la documentación para garantizar la coherencia y el cumplimiento normativo.
- Accesibilidad: Característica de la documentación que asegura su comprensión y uso por parte de todos los miembros del equipo, independientemente de su perfil técnico.
🧠 Recuerda
- La generación de código automatiza tareas repetitivas y reduce errores en el desarrollo de software.
- La documentación técnica es clave para la mantenibilidad y comprensión de los sistemas en entornos colaborativos.
- Las herramientas de generación de documentación extraen información del código para crear documentos accesibles.
- La integración con CI/CD asegura que la documentación esté siempre actualizada con el código fuente.
- La documentación debe cumplir con los estándares del ENI y el ENS para garantizar su calidad y utilidad.
- Los manuales de usuario deben ser claros y adaptados a diferentes perfiles de empleados públicos.
- La seguridad en la generación de código y documentación es fundamental para cumplir con el ENS.
- Las plataformas colaborativas facilitan la accesibilidad y actualización de la documentación.
- La trazabilidad de los cambios en el código y la documentación es esencial para la coherencia y el cumplimiento normativo.
- La automatización de la generación de código y documentación mejora la eficiencia y reduce la carga de trabajo manual.
3. Metodologías de desarrollo
3. Metodologías de desarrollo
🎯 Idea clave
- Las metodologías de desarrollo definen marcos estructurados para organizar el ciclo de vida del software en la Administración General del Estado.
- Su aplicación garantiza la alineación con los principios de eficiencia, seguridad y reutilización establecidos en el Esquema Nacional de Interoperabilidad.
- La AGE prioriza metodologías ágiles y colaborativas para adaptarse a requisitos cambiantes y fomentar la transparencia.
- La integración con herramientas corporativas como GitLab o Jira es esencial para la trazabilidad y gestión de proyectos.
- La formación en metodologías ágiles es un requisito clave para los equipos técnicos de la Administración.
- La seguridad y el cumplimiento normativo son ejes transversales en todas las metodologías aplicadas.
📚 Desarrollo
Definición y propósito. Las metodologías de desarrollo en la Administración General del Estado constituyen marcos de trabajo que establecen procesos, roles y artefactos para la creación de software. Su objetivo principal es garantizar la calidad, la interoperabilidad y el cumplimiento de los estándares técnicos y legales, como el Esquema Nacional de Seguridad (ENS) y el Esquema Nacional de Interoperabilidad (ENI). Estas metodologías permiten estructurar el ciclo de vida del software desde la concepción hasta el despliegue, asegurando la coherencia con los principios de reutilización y soberanía tecnológica.
Metodologías ágiles en la AGE. La Administración General del Estado ha adoptado metodologías ágiles, como Scrum o Kanban, para mejorar la adaptabilidad y la eficiencia en el desarrollo de sistemas. Estas metodologías se caracterizan por ciclos de trabajo iterativos e incrementales, conocidos como sprints, que permiten ajustar los requisitos en función de las necesidades cambiantes. La colaboración constante entre equipos multidisciplinares y la entrega continua de valor son pilares fundamentales, facilitando la integración con herramientas corporativas como Jira para la gestión de tareas y tableros Kanban.
Integración con herramientas corporativas. La aplicación de metodologías de desarrollo en la AGE requiere la integración con plataformas y sistemas internos. Herramientas como GitLab autoalojado o GitHub se utilizan para la gestión de repositorios, mientras que Kubernetes facilita el despliegue y la orquestación de contenedores. La autenticación mediante LDAP y la gestión de incidencias a través de sistemas de issue tracking aseguran la trazabilidad y el control de accesos, alineándose con los requisitos de seguridad y auditoría establecidos en el ENS.
Seguridad y cumplimiento normativo. La seguridad es un componente transversal en todas las metodologías de desarrollo aplicadas en la Administración. Los procesos incluyen escaneos de vulnerabilidades, firmas digitales y autenticación multifactor (MFA) para proteger los repositorios y los entornos de desarrollo. Además, se prioriza el uso de estándares abiertos y soluciones de código abierto, en línea con los principios de soberanía tecnológica y reutilización promovidos por el ENI. La documentación generada durante el desarrollo debe cumplir con los requisitos de accesibilidad y transparencia establecidos en la normativa vigente.
Formación y colaboración. La formación en metodologías ágiles y herramientas de desarrollo colaborativo es un requisito esencial para los equipos técnicos de la AGE. Los proyectos transversales entre organismos, como Cl@ve o @firma, ejemplifican la importancia de la colaboración y el intercambio de buenas prácticas. La capacitación continua en técnicas de revisión de código, gestión de pull requests y automatización de pruebas (CI/CD) asegura que los equipos puedan adaptarse a los cambios tecnológicos y normativos de manera eficiente.
Procesos clave en el desarrollo. Los procesos de desarrollo en la AGE incluyen la gestión de repositorios, la revisión de código mediante pull/merge requests, y la implementación de pipelines de integración y despliegue continuo (CI/CD). La gestión de incidencias se realiza a través de sistemas de issue tracking, mientras que la documentación se genera de forma automática para garantizar su actualización y coherencia. Estos procesos aseguran la calidad del software y facilitan la colaboración entre equipos distribuidos en distintos organismos.
Aplicación práctica en proyectos. En la Administración General del Estado, las metodologías de desarrollo se aplican en proyectos de diversa índole, desde sistemas de autenticación electrónica hasta plataformas de gestión documental. La combinación de metodologías ágiles con herramientas de desarrollo colaborativo permite abordar proyectos complejos con mayor flexibilidad, reduciendo los plazos de entrega y mejorando la satisfacción de los usuarios finales. La reutilización de componentes y la estandarización de procesos son prácticas habituales para optimizar recursos y garantizar la coherencia técnica.
🧩 Elementos esenciales
- Metodologías ágiles: Marcos como Scrum o Kanban, basados en iteraciones cortas (sprints) y entrega continua de valor.
- Integración continua/despliegue continuo (CI/CD): Automatización de pruebas y despliegues para garantizar la calidad del software.
- Gestión de repositorios: Uso de herramientas como GitLab o GitHub para el control de versiones y la colaboración.
- Revisión de código: Procesos de pull/merge requests para garantizar la calidad y seguridad del código.
- Seguridad: Implementación de escaneos de vulnerabilidades, firmas digitales y autenticación multifactor (MFA).
- Documentación automática: Generación de documentación técnica y funcional para asegurar su actualización.
- Herramientas corporativas: Integración con LDAP, Jira, Kubernetes y otros sistemas internos.
- Formación continua: Capacitación en metodologías ágiles y herramientas de desarrollo colaborativo.
- Colaboración interorganismos: Proyectos transversales como Cl@ve o @firma para fomentar la reutilización.
- Cumplimiento normativo: Alineación con el ENS y el ENI en materia de seguridad e interoperabilidad.
- Soberanía tecnológica: Priorización de soluciones autoalojadas y de código abierto.
- Gestión de incidencias: Uso de sistemas de issue tracking para la trazabilidad de problemas y mejoras.
🧠 Recuerda
- Las metodologías de desarrollo en la AGE buscan garantizar calidad, seguridad y eficiencia.
- Scrum y Kanban son las metodologías ágiles más utilizadas en la Administración.
- La integración con herramientas como GitLab, Jira y Kubernetes es esencial para la gestión de proyectos.
- La seguridad y el cumplimiento normativo son ejes transversales en todos los procesos.
- La formación en metodologías ágiles y herramientas colaborativas es clave para los equipos técnicos.
- La reutilización de componentes y la estandarización de procesos optimizan recursos y mejoran la coherencia.
- La documentación automática asegura la actualización y accesibilidad de la información técnica.
- Los proyectos transversales entre organismos fomentan la colaboración y el intercambio de buenas prácticas.
- La automatización de pruebas y despliegues (CI/CD) reduce errores y acelera la entrega de software.
- La soberanía tecnológica y el uso de estándares abiertos son principios fundamentales en la AGE.
4. Pruebas
4. Pruebas
🎯 Idea clave
- Las pruebas son un proceso sistemático para verificar que el software cumple con los requisitos funcionales y no funcionales establecidos.
- Su objetivo principal es detectar errores, garantizar la calidad y asegurar la estabilidad del sistema antes de su despliegue.
- En la Administración General del Estado, las pruebas se integran en los pipelines de CI/CD para automatizar su ejecución y validación.
- Existen distintos niveles de pruebas, desde las unitarias hasta las de aceptación, cada una con un enfoque y alcance específico.
- La seguridad y el cumplimiento normativo son aspectos críticos en las pruebas de aplicaciones desarrolladas para la AGE.
- La trazabilidad entre requisitos, código y pruebas es esencial para garantizar la cobertura y la auditoría del proceso.
📚 Desarrollo
Definición y propósito. Las pruebas de software constituyen un conjunto de actividades diseñadas para evaluar la funcionalidad, rendimiento, seguridad y usabilidad de una aplicación. Su finalidad es identificar defectos, validar el cumplimiento de especificaciones y minimizar riesgos antes de la puesta en producción. En el contexto de la Administración General del Estado, estas pruebas adquieren una dimensión adicional al garantizar que los sistemas cumplen con los estándares del Esquema Nacional de Seguridad (ENS) y del Esquema Nacional de Interoperabilidad (ENI).
Niveles de pruebas. Las pruebas se estructuran en varios niveles, cada uno con un enfoque distinto. Las pruebas unitarias verifican el funcionamiento de componentes individuales, como funciones o métodos, de forma aislada. Las pruebas de integración evalúan la interacción entre módulos o servicios para detectar errores en las interfaces. Las pruebas de sistema validan el comportamiento global de la aplicación en un entorno similar al de producción. Finalmente, las pruebas de aceptación confirman que el software cumple con los requisitos del usuario y está listo para su despliegue.
Automatización en CI/CD. En la AGE, las pruebas se integran en los pipelines de integración y despliegue continuo (CI/CD) para garantizar su ejecución automática en cada cambio de código. Esto permite detectar errores de forma temprana, reducir tiempos de validación y asegurar la consistencia en los resultados. Herramientas como Jenkins, GitLab CI o GitHub Actions se utilizan para orquestar estos procesos, ejecutando pruebas unitarias, de integración y de seguridad de manera sistemática.
Pruebas de seguridad. Dada la sensibilidad de los datos manejados por la Administración, las pruebas de seguridad son un componente crítico. Estas incluyen el escaneo de vulnerabilidades, pruebas de penetración y validación de mecanismos de autenticación y autorización. El cumplimiento del ENS exige que los sistemas implementen controles de seguridad desde las fases iniciales del desarrollo, por lo que las pruebas deben verificar el cumplimiento de estos requisitos antes de cualquier despliegue.
Trazabilidad y documentación. La trazabilidad entre requisitos, código y pruebas es fundamental para garantizar la cobertura y facilitar la auditoría. En la AGE, se documentan los casos de prueba, los resultados obtenidos y las incidencias detectadas, vinculándolos a los requisitos funcionales y no funcionales. Esta documentación es esencial para demostrar el cumplimiento normativo y para futuras revisiones o actualizaciones del sistema.
Entornos de prueba. Para garantizar la validez de los resultados, las pruebas se ejecutan en entornos que replican las condiciones de producción. Esto incluye la configuración de servidores, bases de datos y redes similares a las utilizadas en el despliegue final. En la AGE, se prioriza el uso de entornos autoalojados para mantener el control sobre los datos y garantizar la soberanía tecnológica.
Participación de los técnicos auxiliares. Los técnicos auxiliares de informática desempeñan un papel clave en la configuración y mantenimiento de los entornos de prueba, así como en la ejecución de pruebas manuales o automatizadas. También colaboran en la gestión de incidencias, documentando los errores detectados y verificando su resolución antes de aprobar el paso a producción.
🧩 Elementos esenciales
- Pruebas unitarias: Verifican el funcionamiento de componentes individuales de código, como funciones o métodos, de forma aislada.
- Pruebas de integración: Evalúan la interacción entre módulos o servicios para detectar errores en las interfaces y dependencias.
- Pruebas de sistema: Validan el comportamiento global de la aplicación en un entorno similar al de producción.
- Pruebas de aceptación: Confirman que el software cumple con los requisitos del usuario y está listo para su despliegue.
- Automatización de pruebas: Integración de pruebas en pipelines de CI/CD para su ejecución automática en cada cambio de código.
- Pruebas de seguridad: Incluyen escaneo de vulnerabilidades, pruebas de penetración y validación de mecanismos de autenticación y autorización.
- Trazabilidad: Vinculación entre requisitos, código y pruebas para garantizar la cobertura y facilitar la auditoría.
- Entornos de prueba: Configuración de infraestructuras que replican las condiciones de producción para validar los resultados.
- Documentación de pruebas: Registro de casos de prueba, resultados e incidencias para cumplir con requisitos normativos y facilitar revisiones.
- Cumplimiento del ENS: Verificación de que los sistemas implementan los controles de seguridad exigidos por el Esquema Nacional de Seguridad.
- Participación de técnicos auxiliares: Configuración de entornos, ejecución de pruebas y gestión de incidencias como parte de sus funciones.
- Herramientas de CI/CD: Uso de plataformas como Jenkins, GitLab CI o GitHub Actions para orquestar la ejecución automática de pruebas.
🧠 Recuerda
- Las pruebas son un proceso sistemático para verificar la calidad y funcionalidad del software.
- Existen distintos niveles de pruebas, desde las unitarias hasta las de aceptación, cada una con un enfoque específico.
- La automatización de pruebas en pipelines de CI/CD es clave para detectar errores de forma temprana.
- Las pruebas de seguridad son críticas en la AGE debido a la sensibilidad de los datos manejados.
- La trazabilidad entre requisitos, código y pruebas garantiza la cobertura y facilita la auditoría.
- Los entornos de prueba deben replicar las condiciones de producción para validar resultados.
- La documentación de pruebas es esencial para cumplir con requisitos normativos y facilitar revisiones.
- Los técnicos auxiliares de informática participan en la configuración de entornos y la ejecución de pruebas.
- El cumplimiento del ENS y el ENI es un requisito obligatorio en las pruebas de aplicaciones para la AGE.
- La integración de pruebas en los procesos de desarrollo mejora la eficiencia y reduce riesgos.
5. Programas para control de versiones
5. Programas para control de versiones
🎯 Idea clave
- Los programas para control de versiones permiten gestionar los cambios en el código fuente de manera estructurada y colaborativa.
- Su uso es esencial en la Administración General del Estado para garantizar la trazabilidad y la integridad de los desarrollos.
- Facilitan la colaboración entre equipos distribuidos, incluso entre distintos organismos públicos.
- Incluyen funcionalidades como ramificación, fusión y seguimiento de incidencias.
- La AGE prioriza herramientas que cumplan con los estándares de seguridad y soberanía tecnológica.
- Su integración con plataformas de desarrollo colaborativo optimiza los flujos de trabajo en proyectos transversales.
📚 Desarrollo
Definición y propósito. Los programas para control de versiones son herramientas diseñadas para registrar y gestionar los cambios realizados en archivos de código fuente a lo largo del tiempo. Su principal objetivo es permitir la colaboración eficiente entre desarrolladores, garantizando que las modificaciones puedan ser revisadas, fusionadas y revertidas sin perder información. En el ámbito de la Administración General del Estado, estos sistemas son fundamentales para mantener la coherencia en proyectos de desarrollo de software, especialmente en entornos donde participan múltiples equipos o organismos.
Funcionalidades básicas. Entre las funcionalidades esenciales de estos programas destacan la creación de ramas (branching), que permite trabajar en paralelo en distintas versiones del código, y la fusión (merging), que integra los cambios realizados en diferentes ramas. También incluyen mecanismos para clonar repositorios, realizar forks (copias independientes de un proyecto) y gestionar solicitudes de integración (pull/merge requests), que facilitan la revisión de código antes de su incorporación al proyecto principal.
Criterios de selección en la AGE. La Administración General del Estado establece criterios específicos para la elección de estas herramientas, alineados con el Esquema Nacional de Seguridad (ENS) y el Esquema Nacional de Interoperabilidad (ENI). Se priorizan soluciones que garanticen la seguridad mediante autoalojamiento o el uso de estándares abiertos, así como aquellas que permitan la reutilización de componentes. Además, se valora su capacidad para integrarse con herramientas corporativas como LDAP, Jira o Kubernetes, lo que facilita la gestión centralizada de permisos y la automatización de procesos.
Procesos clave en la AGE. En el contexto de la AGE, los programas para control de versiones soportan procesos críticos como la gestión de repositorios, que incluye operaciones como clonación, creación de ramas y fusión de cambios. También son fundamentales en la revisión de código, donde se utilizan solicitudes de integración para analizar y comentar las modificaciones propuestas. Otro proceso relevante es la integración y despliegue continuo (CI/CD), que automatiza la ejecución de pruebas y el despliegue de nuevas versiones del software en entornos controlados.
Seguridad y cumplimiento. La seguridad es un aspecto prioritario en la selección y configuración de estas herramientas. Se implementan medidas como la autenticación multifactor (MFA), el escaneo de vulnerabilidades en el código y el uso de firmas digitales para garantizar la autenticidad de las contribuciones. Además, se realizan auditorías de accesos para cumplir con los requisitos del ENS y asegurar que solo personal autorizado pueda modificar el código fuente.
Aplicación práctica en la AGE. En la Administración General del Estado, estos programas se utilizan tanto en proyectos de código abierto alojados en plataformas públicas, como GitHub (ejemplos: Cl@ve o @firma), como en desarrollos internos gestionados en instancias autoalojadas de GitLab (ejemplo: SGAD). Esta dualidad permite adaptarse a las necesidades de cada proyecto, ya sea colaborativo entre organismos o de uso interno, garantizando siempre el cumplimiento de los estándares técnicos y de seguridad.
Rol del Cuerpo de Técnicos Auxiliares de Informática. Los profesionales de este cuerpo desempeñan un papel clave en el soporte y administración de estas herramientas. Sus funciones incluyen la configuración de repositorios, la gestión de permisos de acceso, la monitorización de la infraestructura y la realización de copias de seguridad. También son responsables de asegurar la integración con sistemas corporativos y de documentar las buenas prácticas para su uso eficiente.
🧩 Elementos esenciales
- Clonación: Proceso de creación de una copia local de un repositorio remoto para trabajar en él sin afectar al original.
- Branching (ramificación): Creación de una línea independiente de desarrollo para implementar nuevas funcionalidades o correcciones sin alterar la rama principal.
- Merging (fusión): Integración de cambios realizados en una rama secundaria a la rama principal o a otra rama de destino.
- Forking: Creación de una copia independiente de un repositorio, generalmente para contribuir a proyectos externos sin afectar al original.
- Pull/Merge Request: Solicitud formal para integrar cambios de una rama a otra, que incluye revisión y comentarios por parte de otros desarrolladores.
- Repositorio remoto: Versión centralizada del código alojada en un servidor, accesible para todos los miembros del equipo.
- Repositorio local: Copia del código almacenada en la máquina de un desarrollador, donde se realizan las modificaciones antes de subirlas al remoto.
- Historial de cambios: Registro detallado de todas las modificaciones realizadas en el código, incluyendo autor, fecha y descripción.
- Conflictos: Situaciones en las que dos o más cambios entran en contradicción al intentar fusionarse, requiriendo resolución manual.
- Autenticación multifactor (MFA): Mecanismo de seguridad que requiere dos o más formas de verificación para acceder al repositorio.
- Escaneo de vulnerabilidades: Análisis automático del código para detectar posibles fallos de seguridad antes de su integración.
- Firmas digitales: Uso de certificados para validar la autenticidad de las contribuciones al repositorio.
🧠 Recuerda
- Los programas para control de versiones son esenciales para la colaboración y la trazabilidad en proyectos de desarrollo.
- La AGE prioriza herramientas que cumplan con el ENS y el ENI, garantizando seguridad y estándares abiertos.
- Las funcionalidades clave incluyen ramificación, fusión y gestión de solicitudes de integración.
- La seguridad se refuerza con autenticación multifactor, escaneo de vulnerabilidades y firmas digitales.
- Estos sistemas se utilizan tanto en proyectos de código abierto como en desarrollos internos autoalojados.
- El Cuerpo de Técnicos Auxiliares de Informática gestiona la configuración, permisos y mantenimiento de estas herramientas.
- La integración con sistemas corporativos como LDAP o Jira optimiza los flujos de trabajo.
- La documentación y las buenas prácticas son fundamentales para su uso eficiente en la AGE.
6. Plataformas de desarrollo colaborativo de software
6. Plataformas de desarrollo colaborativo de software
🎯 Idea clave
- Las plataformas de desarrollo colaborativo permiten la gestión integral de proyectos de software en la Administración General del Estado.
- Su selección en la AGE prioriza el cumplimiento del Esquema Nacional de Seguridad y el Esquema Nacional de Interoperabilidad.
- Facilitan la colaboración entre equipos mediante herramientas integradas para revisión de código, gestión de incidencias y despliegue continuo.
- Incluyen funcionalidades de seguridad como autenticación multifactor y escaneo de vulnerabilidades.
- Se integran con sistemas corporativos como LDAP, Jira y Kubernetes para garantizar coherencia operativa.
- Su uso en la AGE abarca desde proyectos de código abierto en GitHub hasta desarrollos internos en GitLab autoalojado.
📚 Desarrollo
Definición y propósito. Las plataformas de desarrollo colaborativo son entornos integrados que centralizan las fases del ciclo de vida del software. En la Administración General del Estado, su función principal es habilitar el trabajo coordinado entre equipos técnicos, garantizando al mismo tiempo el cumplimiento de los marcos normativos vigentes. Estas plataformas no se limitan a alojar código, sino que incorporan herramientas para revisión, despliegue y monitorización.
Criterios de selección en la AGE. La elección de estas plataformas en la AGE se rige por principios de seguridad, interoperabilidad y soberanía tecnológica. El Esquema Nacional de Seguridad exige soluciones autoalojadas o con garantías de protección de datos, mientras que el Esquema Nacional de Interoperabilidad prioriza estándares abiertos y reutilización de componentes. La integración con herramientas corporativas como LDAP para autenticación o Jira para gestión de incidencias es un requisito indispensable.
Procesos clave soportados. Estas plataformas gestionan múltiples procesos técnicos y organizativos. La gestión de repositorios incluye operaciones como clonación, creación de ramas (branching), fusión de cambios (merging) y bifurcación de proyectos (forking). La revisión de código se realiza mediante solicitudes de integración (pull/merge requests) con comentarios en línea. Los pipelines de integración y despliegue continuo (CI/CD) automatizan pruebas y despliegues en entornos controlados.
Seguridad y cumplimiento. La seguridad es un eje transversal en estas plataformas. Se implementan mecanismos como autenticación multifactor (MFA), escaneo automático de vulnerabilidades y firmas digitales para validar la integridad del código. La auditoría de accesos y la gestión de permisos granulares aseguran que solo personal autorizado pueda modificar componentes críticos. Estos controles son especialmente relevantes en proyectos transversales que involucran a múltiples organismos.
Aplicación en la AGE. La Administración General del Estado utiliza estas plataformas en diversos ámbitos. Proyectos de código abierto como Cl@ve o @firma se alojan en GitHub, facilitando la colaboración con la comunidad tecnológica. Para desarrollos internos, se emplea GitLab en modalidad autoalojada, como en el caso del Sistema de Gestión de Administración Digital (SGAD). Esta dualidad permite adaptarse a requisitos específicos de confidencialidad y control.
Formación y buenas prácticas. La AGE promueve la formación continua en metodologías ágiles y herramientas colaborativas. Se documentan buenas prácticas en wikis internos y se generan guías para estandarizar procesos como la gestión de incidencias mediante tableros Kanban o la generación automática de documentación. Estas iniciativas buscan mejorar la eficiencia y reducir la curva de aprendizaje de los equipos técnicos.
Rol del Cuerpo de Técnicos Auxiliares de Informática. Los técnicos auxiliares desempeñan funciones clave en el soporte y administración de estas plataformas. Su labor incluye la configuración de repositorios, la gestión de permisos de acceso y la integración con sistemas corporativos. También participan en la monitorización de infraestructuras, la realización de copias de seguridad y la aplicación de políticas de seguridad, como la configuración de MFA o la auditoría de accesos.
🧩 Elementos esenciales
- GitHub: Plataforma externa utilizada en la AGE para proyectos de código abierto como Cl@ve, que facilita la colaboración con desarrolladores externos.
- GitLab autoalojado: Solución interna empleada en proyectos sensibles como el SGAD, que garantiza mayor control sobre los datos y el cumplimiento del ENS.
- Integración con LDAP: Mecanismo para centralizar la autenticación de usuarios, vinculando las plataformas de desarrollo con los directorios corporativos de la AGE.
- Pull/Merge Requests: Herramienta para revisión de código que permite a los equipos discutir cambios antes de su integración en la rama principal.
- Pipelines de CI/CD: Automatización de pruebas y despliegues que asegura la calidad del software y reduce errores humanos en entornos de producción.
- Issue Tracking: Sistema para gestionar incidencias y tareas, a menudo integrado con herramientas como Jira para alinear el desarrollo con los objetivos organizativos.
- Tableros Kanban: Método visual para organizar el flujo de trabajo, utilizado en la AGE para priorizar tareas y mejorar la transparencia en los proyectos.
- Escaneo de vulnerabilidades: Funcionalidad que analiza el código en busca de fallos de seguridad, cumpliendo con los requisitos del Esquema Nacional de Seguridad.
- Firmas digitales: Mecanismo para validar la autenticidad e integridad del código, especialmente relevante en proyectos con impacto en servicios públicos.
- Copias de seguridad: Proceso crítico para garantizar la disponibilidad y recuperación de datos en caso de fallos o incidentes de seguridad.
- Documentación automática: Generación de manuales y guías técnicas a partir del código, que facilita el mantenimiento y la transferencia de conocimiento.
- Formación en metodologías ágiles: Programas para capacitar a los equipos en prácticas como Scrum o Kanban, mejorando la eficiencia en el desarrollo de software.
🧠 Recuerda
- Las plataformas de desarrollo colaborativo en la AGE deben cumplir con el ENS y el ENI.
- GitHub se usa para proyectos abiertos, mientras que GitLab autoalojado es preferido para desarrollos internos.
- La integración con LDAP, Jira y Kubernetes es un requisito clave para su adopción.
- Los pipelines de CI/CD automatizan pruebas y despliegues, reduciendo errores manuales.
- La seguridad incluye autenticación multifactor, escaneo de vulnerabilidades y firmas digitales.
- Los técnicos auxiliares configuran repositorios, gestionan permisos y aseguran el cumplimiento de políticas.
- La revisión de código mediante pull/merge requests mejora la calidad del software.
- La documentación automática y las wikis son herramientas clave para estandarizar procesos.
- Los tableros Kanban ayudan a priorizar tareas y visualizar el progreso de los proyectos.
- La formación en metodologías ágiles es esencial para optimizar el trabajo en equipo.