⚡ TEMA 15 ⚡
📋 Índice de Contenidos
- Introducción y Contextualización
- Filosofía y Principios del Desarrollo Ágil
- El Manifiesto Ágil
- SCRUM: Marco de Trabajo Ágil
- KANBAN: Gestión Visual del Flujo
- LEAN Software Development
- DevOps: Cultura de Colaboración
- DevSecOps: Seguridad Integrada
- Casos Prácticos en el SAS
- Cuestionario de Autoevaluación (30 Preguntas)
- Mapa Conceptual
- Conclusiones y Estrategia de Estudio
- Referencias Normativas y Bibliográficas
1. Introducción y Contextualización 🎯
¡Hola, opositor/a!
Este es uno de los temas más importantes y actuales del temario. No es casualidad: el SAS está en plena transformación digital y las metodologías ágiles son el motor de este cambio. Desde la evolución continua de Diraya hasta el desarrollo de nuevas apps móviles para pacientes, todo se está haciendo con Scrum, Kanban, DevOps…
¿Por qué te cuento esto? Porque en el examen te van a caer preguntas técnicas muy concretas sobre estos métodos. Y no solo conceptos teóricos, sino casos prácticos aplicados al SAS. Así que vamos a trabajarlo a fondo.
1.1. Relevancia para el Técnico Especialista en Informática del SAS
Como Técnico Especialista en Informática del SAS, tu trabajo no se limita a mantener sistemas heredados. El SAS está migrando activamente hacia:
- Desarrollo iterativo e incremental en aplicaciones críticas como Diraya
- Ciclos de entrega continuos (CI/CD) para apps móviles de pacientes
- Equipos multidisciplinares que incluyen desarrolladores, operaciones y seguridad
- Automatización de despliegues en infraestructuras cloud híbridas
- Integración de seguridad desde el diseño (shift-left security)
Todo esto requiere dominar las metodologías ágiles. No es opcional: es tu día a día.
1.2. Contexto Histórico: Del Waterfall al Agile
Para entender realmente el valor del desarrollo ágil, necesitas saber de dónde venimos:
| Modelo en Cascada (Waterfall) | Desarrollo Ágil |
|---|---|
| Planificación exhaustiva al inicio | Planificación adaptativa continua |
| Requisitos fijos y documentación extensa | Requisitos cambiantes, documentación mínima |
| Entregas al final del proyecto (meses/años) | Entregas incrementales frecuentes (semanas) |
| Cambios costosos y difíciles | Cambios bienvenidos en cualquier momento |
| Cliente ve el producto al final | Cliente colabora continuamente |
| Equipos especializados y separados | Equipos multidisciplinares integrados |
Las preguntas sobre la diferencia entre metodologías tradicionales y ágiles son MUY frecuentes. Memoriza bien esta tabla.
1.3. ¿Por qué el SAS Apuesta por Agile?
El sector sanitario presenta desafíos únicos que hacen imprescindibles las metodologías ágiles:
- Cambios normativos frecuentes: El RGPD, la Ley de Protección de Datos, el ENS… Las normativas cambian y los sistemas deben adaptarse rápido.
- Necesidades clínicas en evolución: Los profesionales sanitarios necesitan nuevas funcionalidades en Diraya constantemente. No pueden esperar 2 años a una gran release.
- Integración con múltiples sistemas: Diraya debe interoperar con receta electrónica, con el sistema de citas, con laboratorios… La coordinación entre equipos es crítica.
- Alta disponibilidad requerida: Los sistemas sanitarios no pueden «caerse». Los despliegues deben ser frecuentes pero seguros.
- Seguridad crítica: Los datos de salud son sensibles. La seguridad debe estar integrada desde el inicio (DevSecOps).
Durante la pandemia COVID-19, el SAS desarrolló en tiempo récord el módulo de gestión de vacunación en Diraya. ¿Cómo fue posible? Equipos Scrum trabajando en sprints de 2 semanas, con entregas incrementales, DevOps para despliegues diarios, y colaboración continua con los profesionales sanitarios. Sin metodologías ágiles, hubiera sido imposible.
1.4. Relación con Otros Temas del Temario
Este tema no es un «tema aislado». Se conecta directamente con:
- Tema 14 (Ciclo de Vida del Software): Las metodologías ágiles son modelos de ciclo de vida iterativo-incremental
- Tema 16 (Construcción de Sistemas): Las pruebas en Agile son continuas y automatizadas
- Tema 17 (Herramientas de Desarrollo): Git, Jenkins, Docker… son herramientas clave para Agile/DevOps
- Tema 35-36 (Seguridad): DevSecOps integra seguridad en el ciclo ágil
- Tema 12 (ITIL): ITIL 4 incorpora principios ágiles en la gestión de servicios TI
2. Filosofía y Principios del Desarrollo Ágil 🧘
Antes de meternos en SCRUM, Kanban, DevOps… necesitas entender la filosofía que sustenta todo esto. Porque las metodologías ágiles no son solo «formas de trabajar»: son una mentalidad, una cultura.
2.1. La Filosofía Ágil: Mindset, No Framework
Lo primero que debes comprender: Agile no es una metodología, es una filosofía. SCRUM es una metodología. Kanban es una metodología. DevOps es una cultura. Pero Agile es el mindset (mentalidad) que sustenta todo.
¿Qué significa esto en la práctica?
- Personas sobre procesos: Un equipo cohesionado es más valioso que un proceso perfecto
- Software funcionando sobre documentación: Mejor entregar valor real que documentos extensos
- Colaboración con el cliente sobre negociación contractual: El cliente es parte del equipo, no un adversario
- Respuesta al cambio sobre seguir un plan: La adaptación es más valiosa que la rigidez
Estos 4 valores son los pilares del Manifiesto Ágil. Son pregunta segura en el test. Pero ojo: no memmorices literalmente, entiende el concepto. Te pondrán trampas tipo «la documentación no es necesaria en Agile» (FALSO: es necesaria, pero no es lo MÁS importante).
2.2. Principios Fundamentales del Desarrollo Ágil
Más allá de los 4 valores, existen principios operativos que guían el trabajo ágil. Vamos a verlos aplicados al contexto del SAS:
Principio 1: Entrega Continua de Valor
En el SAS: En lugar de esperar 6 meses para lanzar una gran actualización de Diraya con 50 funcionalidades nuevas, se entregan incrementos cada 2-3 semanas con 2-3 funcionalidades funcionando. Los médicos empiezan a usarlas de inmediato y dan feedback.
Principio 2: Bienvenida al Cambio
En el SAS: Imagina que a mitad del desarrollo del módulo de vacunación COVID, cambia el protocolo de vacunación y ahora hay que registrar datos adicionales. En Waterfall, esto sería un cambio costosísimo. En Agile, se adapta el Sprint siguiente y listo.
Principio 3: Entregas Frecuentes
En el SAS: Los despliegues en Diraya se hacen semanalmente en ventanas de mantenimiento. DevOps permite automatizar estos despliegues con riesgo mínimo.
Principio 4: Colaboración Diaria
En el SAS: El Product Owner (normalmente un médico o enfermero con conocimiento clínico) trabaja codo con codo con el equipo de desarrollo. No es alguien que entrega requisitos y se va: está cada día disponible.
Principio 5: Equipos Motivados y Autónomos
En el SAS: Los equipos Scrum del SAS tienen autonomía para decidir cómo implementar las historias de usuario. No hay un «jefe» que les dice cómo programar. Confía en ellos y dales las herramientas que necesitan.
Principio 6: Conversación Cara a Cara
En el SAS: Las Daily Standup Meetings (reuniones diarias de 15 minutos) son presenciales o por videoconferencia. No se sustituyen por emails. La comunicación directa es más eficiente.
Principio 7: Software Funcionando como Medida de Progreso
En el SAS: No se mide el progreso por «documentos entregados» o «líneas de código escritas». Se mide por funcionalidades desplegadas en producción que los usuarios pueden usar.
Principio 8: Desarrollo Sostenible
En el SAS: No hay «crunch time» permanente. Los sprints son de 2-3 semanas con ritmo constante. No se puede pedir al equipo que trabaje 60 horas/semana indefinidamente. Eso quema a la gente y genera errores.
Principio 9: Excelencia Técnica
En el SAS: Code reviews, testing automatizado, estándares de código, arquitectura limpia… La calidad técnica no se sacrifica por la velocidad. De hecho, la calidad técnica es lo que permite la velocidad sostenible.
Principio 10: Simplicidad
En el SAS: No desarrolles funcionalidades «por si acaso». Solo lo que el usuario necesita ahora. YAGNI (You Aren’t Gonna Need It) es un principio ágil fundamental.
Principio 11: Equipos Auto-organizados
En el SAS: El equipo Scrum decide internamente quién hace qué tarea. No hay un «project manager» asignando tareas. El equipo se auto-organiza.
Principio 12: Reflexión y Mejora Continua
En el SAS: Al final de cada Sprint, hay una Retrospectiva donde el equipo analiza qué salió bien, qué salió mal, y qué van a mejorar en el próximo Sprint. Es el kaizen (mejora continua) aplicado al desarrollo software.
Son 12 principios del Manifiesto Ágil. Memorízalos bien porque te pueden preguntar cuál de las siguientes afirmaciones NO es un principio ágil. Las trampas típicas son:
- «La documentación exhaustiva es prioritaria» (FALSO)
- «El software debe funcionar antes de entregarlo» (VERDADERO)
- «Los requisitos no pueden cambiar una vez iniciado el proyecto» (FALSO)
- «La comunicación cara a cara es la más efectiva» (VERDADERO)
3. El Manifiesto Ágil 📜
En febrero de 2001, 17 desarrolladores de software se reunieron en Snowbird, Utah (EE.UU.). Estaban hartos de los métodos tradicionales pesados y rígidos. De esa reunión salió el Manifiesto por el Desarrollo Ágil de Software.
Este manifiesto no es «teoría bonita»: es la base de todo lo que vas a estudiar en este tema y lo que aplicas cada día en el SAS.
3.1. Los Cuatro Valores del Manifiesto
El manifiesto establece 4 valores. Y ojo con la redacción, porque es importante:
Valor 1: Individuos e interacciones sobre procesos y herramientas
Lo que SÍ significa: Un equipo cohesionado, comunicativo y colaborativo es más valioso que tener las mejores herramientas o el proceso más perfecto.
Lo que NO significa: «Los procesos y herramientas no importan». Sí importan, pero son secundarios respecto a las personas.
Ejemplo SAS: Mejor un equipo de Diraya con buena comunicación usando Jira básico, que un equipo disfuncional con la mejor suite de gestión del mundo.
Valor 2: Software funcionando sobre documentación exhaustiva
Lo que SÍ significa: Entregar código que funciona y aporta valor al usuario es más importante que generar documentación extensa.
Lo que NO significa: «No hace falta documentación». La documentación es necesaria, pero debe ser concisa y útil.
Ejemplo SAS: En el desarrollo de la app móvil de ClicSalud+, es más valioso tener la funcionalidad de pedir cita funcionando que tener 200 páginas de especificaciones técnicas sin código.
Valor 3: Colaboración con el cliente sobre negociación contractual
Lo que SÍ significa: El cliente (Product Owner, usuarios finales) es parte activa del equipo y colabora continuamente. No es alguien contra quien «defenderse» contractualmente.
Lo que NO significa: «No hace falta contrato». Los contratos siguen siendo necesarios (sobre todo en la administración pública), pero la colaboración prevalece sobre la rigidez contractual.
Ejemplo SAS: Los médicos que usan Diraya son los «clientes internos». Participan activamente en las Sprint Reviews, dan feedback, priorizan funcionalidades. No están «al otro lado».
Valor 4: Respuesta ante el cambio sobre seguir un plan
Lo que SÍ significa: La capacidad de adaptarse a cambios (requisitos nuevos, cambios normativos, nuevas tecnologías) es más valiosa que ceñirse rígidamente a un plan inicial.
Lo que NO significa: «No hace falta planificar». La planificación es necesaria, pero debe ser adaptativa, no rígida.
Ejemplo SAS: Durante COVID, los planes de 2020 quedaron obsoletos en marzo. Los equipos ágiles pivotaron rápidamente a desarrollar módulos de triaje, telemedicina, vacunación… Los equipos Waterfall seguirían con el plan original mientras el mundo cambiaba.
3.2. Los Doce Principios del Manifiesto
Los 4 valores se concretan en 12 principios operativos. Vamos a verlos con ejemplos del SAS:
| # | Principio | Aplicación en el SAS |
|---|---|---|
| 1 | Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de software con valor. | Despliegues semanales de mejoras incrementales en Diraya que los médicos pueden usar de inmediato. |
| 2 | Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente. | Si cambia la normativa de receta electrónica, el equipo adapta el Sprint en curso sin drama. |
| 3 | Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia al periodo de tiempo más corto posible. | Sprints de 2 semanas en los equipos de Diraya, con demo al final de cada Sprint. |
| 4 | Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto. | El médico Product Owner participa en las Daily Standups y está disponible diariamente para resolver dudas. |
| 5 | Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el apoyo que necesitan, y confiarles la ejecución del trabajo. | Los equipos tienen autonomía técnica, herramientas adecuadas (servidores de desarrollo, licencias), y apoyo de la dirección TIC. |
| 6 | El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus miembros es la conversación cara a cara. | Daily Standups presenciales de 15 minutos cada mañana. Nada de «seguimiento por email». |
| 7 | El software funcionando es la medida principal de progreso. | No se mide el progreso por «horas trabajadas» o «documentos escritos». Se mide por funcionalidades en producción. |
| 8 | Los procesos Ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida. | Sprints de 2 semanas con carga de trabajo sostenible. No hay «death marches» permanentes. |
| 9 | La atención continua a la excelencia técnica y al buen diseño mejora la Agilidad. | Code reviews obligatorios, testing automatizado, arquitectura limpia, refactoring continuo. |
| 10 | La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial. | Principio YAGNI: no desarrollar funcionalidades «por si acaso». Solo lo que el usuario necesita ahora. |
| 11 | Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados. | El equipo decide la arquitectura técnica de cada historia de usuario. No hay un «arquitecto jefe» imponiendo decisiones. |
| 12 | A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a continuación ajustar y perfeccionar su comportamiento en consecuencia. | Sprint Retrospective al final de cada Sprint: ¿qué mejorar? Kaizen aplicado. |
Cuidado con preguntas tipo: «¿Cuál de los siguientes NO es un principio del Manifiesto Ágil?»
- ❌ «La documentación exhaustiva garantiza la calidad» → NO es un principio ágil
- ✅ «El software funcionando es la medida principal de progreso» → SÍ es un principio ágil (el #7)
- ❌ «Los requisitos deben estar completamente definidos antes de iniciar el desarrollo» → NO es ágil (Waterfall)
- ✅ «Aceptamos que los requisitos cambien, incluso en etapas tardías» → SÍ es el principio #2
3.3. Firmantes del Manifiesto
Los 17 firmantes originales del Manifiesto Ágil incluyen a figuras muy relevantes en el mundo del software:
- Kent Beck – Creador de Extreme Programming (XP) y Test-Driven Development (TDD)
- Ken Schwaber y Jeff Sutherland – Co-creadores de SCRUM
- Martin Fowler – Experto en refactoring y arquitectura de software
- Robert C. Martin (Uncle Bob) – Autor de «Clean Code»
- Alistair Cockburn – Creador de Crystal metodology
Estos nombres son importantes porque cada uno contribuyó con metodologías específicas (SCRUM, XP, Crystal…) que luego se englobaron bajo el paraguas «Agile».
4. SCRUM: Marco de Trabajo Ágil 🏉
SCRUM es el marco de trabajo ágil más utilizado en el mundo. En el SAS, la mayoría de los equipos de desarrollo de Diraya, apps móviles, y nuevos proyectos trabajan con SCRUM.
Importante: SCRUM no es una «metodología», es un marco de trabajo (framework). ¿Cuál es la diferencia? Una metodología te dice exactamente qué hacer paso a paso. Un marco de trabajo te da las reglas del juego, pero tú decides cómo jugar.
4.1. ¿Qué es SCRUM?
SCRUM es un marco de trabajo iterativo e incremental para gestionar proyectos complejos. Se basa en ciclos de trabajo cortos llamados Sprints (normalmente 2-4 semanas) donde se entrega un incremento de producto potencialmente desplegable.
Origen del nombre: «Scrum» viene del rugby, donde el «scrum» es esa formación donde todo el equipo trabaja junto para avanzar el balón. Es una metáfora perfecta: todo el equipo trabaja junto para avanzar el producto.
4.2. Los Tres Pilares de SCRUM
1. Transparencia
Todos los aspectos del proceso deben ser visibles para todos los responsables del resultado. El tablero Scrum, los gráficos burndown, el estado de las tareas… todo es visible.
En el SAS: Tablero Jira público donde cualquiera puede ver el estado de desarrollo de Diraya.
2. Inspección
Los aspectos del proceso deben inspeccionarse frecuentemente para detectar variaciones indeseables. No esperas al final del proyecto para ver si vas bien.
En el SAS: Daily Standups diarias para inspeccionar progreso. Sprint Review para inspeccionar el incremento con los stakeholders.
3. Adaptación
Si detectas que el proceso se desvía, debes ajustarlo lo antes posible. No esperas a «ver qué pasa».
En el SAS: En la Retrospectiva, el equipo decide cambios concretos para el próximo Sprint.
4.3. Los Roles en SCRUM
SCRUM define 3 roles y solo 3. No hay «project managers», no hay «team leaders». Esos roles no existen en SCRUM.
4.3.1. Product Owner (PO)
Es la voz del cliente dentro del equipo. Tiene la autoridad para decidir QUÉ se construye y en qué ORDEN.
Responsabilidades del PO:
- Gestionar el Product Backlog (la lista priorizada de funcionalidades pendientes)
- Priorizar las historias de usuario según valor de negocio
- Aceptar o rechazar el trabajo completado en cada Sprint
- Estar disponible para el equipo para resolver dudas sobre requisitos
- Participar activamente en Sprint Planning y Sprint Review
En un equipo de desarrollo de Diraya, el Product Owner podría ser un médico de familia con conocimiento profundo de los procesos clínicos y las necesidades de los usuarios finales. Esta persona decide si es más importante desarrollar primero la funcionalidad de receta electrónica o la de solicitud de pruebas diagnósticas.
Pensar que el PO es el «jefe» del equipo. NO. El PO decide el QUÉ, pero el equipo decide el CÓMO. El PO no puede decir «tienes que programar esto en Java con esta arquitectura». Eso lo decide el equipo.
4.3.2. Scrum Master (SM)
Es el facilitador del proceso Scrum. Su misión es asegurar que el equipo entiende y sigue las reglas de Scrum, y eliminar impedimentos que bloqueen al equipo.
Responsabilidades del SM:
- Facilitar todas las ceremonias Scrum (Daily, Planning, Review, Retrospective)
- Eliminar impedimentos que bloqueen al equipo (problemas técnicos, organizativos, etc.)
- Proteger al equipo de interrupciones externas durante el Sprint
- Entrenar al equipo en prácticas ágiles
- Fomentar la mejora continua
El Scrum Master del equipo de Diraya detecta que el equipo está bloqueado porque no tienen acceso al entorno de preproducción. En lugar de decir «bueno, ya lo resolverá alguien», el SM escala el problema, coordina con sistemas, y consigue el acceso en 24 horas. Eso es eliminar impedimentos.
Pensar que el Scrum Master es el «project manager» rebautizado. NO. El SM no asigna tareas, no controla horarios, no «gestiona» al equipo. Facilita y elimina obstáculos. Nada más.
4.3.3. Development Team (Equipo de Desarrollo)
Son los profesionales que hacen el trabajo de entregar el incremento de producto. En software, incluye desarrolladores, testers, DBAs, etc.
Características del Development Team:
- Auto-organizado: Deciden internamente quién hace qué y cómo
- Multifuncional: Tienen todas las habilidades necesarias para entregar el incremento (no dependen de equipos externos)
- No hay sub-equipos: No hay «equipo frontend» y «equipo backend». Todos son Development Team
- No hay títulos individuales: Todos son «desarrolladores», no hay «senior developer» o «junior developer» en Scrum (aunque en la práctica sí los hay por temas salariales)
- Tamaño recomendado: 3-9 personas. Menos de 3 no hay masa crítica. Más de 9 la coordinación se vuelve compleja
Un Development Team para Diraya podría incluir: 3 desarrolladores Java, 1 desarrollador frontend (Angular), 1 DBA, 1 QA/tester, 1 DevOps. Entre todos entregan el incremento funcionando en cada Sprint, sin depender de equipos externos.
4.4. Los Artefactos de SCRUM
Los «artefactos» son los elementos tangibles que Scrum produce. Son 3:
4.4.1. Product Backlog
Es la lista ordenada de todo lo que se conoce que es necesario en el producto. Es dinámica: crece y cambia constantemente.
Características:
- Ordenado por prioridad (lo más importante arriba)
- Evoluciona continuamente (se añaden, eliminan, refinan elementos)
- Los elementos del Product Backlog se llaman Product Backlog Items (PBIs). Normalmente son Historias de Usuario
- El Product Owner es el dueño del Product Backlog
Refinamiento del Product Backlog:
Es una actividad continua donde el equipo y el PO añaden detalles, estimaciones y orden a los elementos del Product Backlog. No es una ceremonia formal, pero suele hacerse mid-sprint.
4.4.2. Sprint Backlog
Es el conjunto de elementos del Product Backlog seleccionados para el Sprint, más un plan para entregarlos.
Características:
- Se crea en la Sprint Planning
- Es propiedad del Development Team (no del PO ni del SM)
- Puede modificarse durante el Sprint (si el equipo descubre que hace falta más/menos trabajo)
- Incluye las historias de usuario Y las tareas técnicas necesarias para completarlas
4.4.3. Incremento
Es la suma de todos los Product Backlog Items completados durante el Sprint y todos los Sprints anteriores. Al final de cada Sprint, el Incremento debe estar en condición «Done» (hecho) y potencialmente desplegable.
Definición de «Done» (DoD):
Es el acuerdo del equipo sobre qué significa que algo está «terminado». Es crítica porque elimina ambigüedades.
Pregunta típica: «¿Cuál es el resultado de un Sprint de SCRUM?»
Respuesta correcta: Un Incremento (no «Sprint Backlog», no «Producto», no «Pila del Sprint» – esa es traducción mal hecha de Sprint Backlog).
4.5. Las Ceremonias (Eventos) de SCRUM
SCRUM define 5 eventos formales (time-boxed, es decir, con tiempo máximo definido):
4.5.1. Sprint
Es el contenedor de todos los demás eventos. Tiene duración fija (1-4 semanas, típicamente 2 semanas) y en cuanto termina uno, empieza otro.
Reglas del Sprint:
- Durante el Sprint NO se hacen cambios que pongan en peligro el objetivo del Sprint
- La calidad no disminuye
- El alcance puede clarificarse y renegociarse entre el PO y el Development Team
- Un Sprint puede cancelarse (solo el PO puede hacerlo), pero es muy raro y costoso
Los equipos de Diraya trabajan en Sprints de 2 semanas. Sprint 1: 4-17 enero. Sprint 2: 18-31 enero. Y así sucesivamente. Sin vacíos entre sprints.
4.5.2. Sprint Planning (Planificación del Sprint)
Es la reunión donde el equipo decide QUÉ se va a hacer en el Sprint y CÓMO se va a hacer.
Duración máxima: 8 horas para un Sprint de 1 mes (proporcionalmente menos para Sprints más cortos; para Sprint de 2 semanas: 4 horas máximo)
Participantes: Todo el Scrum Team (PO + SM + Development Team)
Preguntas que se responden:
- ¿Qué puede entregarse en el Incremento resultante del Sprint? (El PO presenta las historias de usuario más prioritarias del Product Backlog, y el equipo decide cuántas puede comprometerse a completar)
- ¿Cómo se conseguirá hacer el trabajo necesario? (El Development Team descompone las historias en tareas técnicas y estima esfuerzo)
Salida de la Sprint Planning:
- El Sprint Goal (objetivo del Sprint): Una frase que resume el propósito del Sprint
- El Sprint Backlog: Las historias seleccionadas + tareas técnicas
4.5.3. Daily Scrum (Reunión Diaria)
Es una reunión diaria de máximo 15 minutos donde el Development Team sincroniza su trabajo y planifica las próximas 24 horas.
Características:
- Duración: Máximo 15 minutos, a la misma hora y lugar cada día
- Participantes: Development Team (obligatorio). PO y SM pueden asistir pero no participan activamente
- Formato típico: Cada miembro responde 3 preguntas:
- ¿Qué hice ayer que ayudó al equipo a cumplir el Sprint Goal?
- ¿Qué voy a hacer hoy para ayudar al equipo a cumplir el Sprint Goal?
- ¿Hay algún impedimento que me bloquea o bloquea al equipo?
- NO es una reunión de reporte al jefe: Es una reunión del equipo para el equipo
El equipo de Diraya hace la Daily Scrum cada día a las 9:15 AM, de pie (standing meeting) frente al tablero Jira. Dura 10-12 minutos. Si surge un tema complejo, se marca para discutirlo DESPUÉS de la Daily (no durante).
- Convertirla en reunión de reporte al Scrum Master (NO es eso)
- Entrar en debates técnicos profundos (eso se hace después)
- Que dure más de 15 minutos (time-box estricto)
- Que cada uno hable mirando al SM en lugar de al equipo
4.5.4. Sprint Review (Revisión del Sprint)
Es la reunión al final del Sprint donde el equipo muestra el Incremento (el trabajo completado) a los stakeholders y obtiene feedback.
Duración máxima: 4 horas para un Sprint de 1 mes (para Sprint de 2 semanas: 2 horas)
Participantes: Scrum Team + Stakeholders invitados (usuarios, dirección, otros equipos…)
Qué se hace:
- El Product Owner explica qué elementos del Product Backlog se completaron («Done») y cuáles no
- El Development Team hace una demo del Incremento funcionando (no PowerPoint, código funcionando real)
- Los stakeholders dan feedback
- El Product Owner discute el Product Backlog y proyecta fechas de entrega basándose en el progreso
- El grupo colabora sobre qué hacer a continuación (input para la siguiente Sprint Planning)
Sprint Review del equipo de Diraya. Asisten: el equipo Scrum, 3 médicos de familia (usuarios finales), el responsable TIC del área sanitaria, y representantes de calidad asistencial.
El equipo hace una demo en vivo mostrando cómo ahora los médicos pueden ver el historial completo de medicación de un paciente, filtrar por fechas, y exportar a PDF. Los médicos prueban la funcionalidad allí mismo y dan feedback inmediato: «Genial, pero necesitamos también ver las alergias medicamentosas junto a la medicación». El PO anota esto como nueva historia de usuario para futuros Sprints.
Pregunta típica: «¿Qué ocurre en la Sprint Review?»
Respuesta correcta: «Se presenta el incremento del producto terminado y se obtiene retroalimentación de los interesados (stakeholders)».
NO confundir con: Sprint Retrospective (esa es sobre el PROCESO, no sobre el PRODUCTO)
4.5.5. Sprint Retrospective (Retrospectiva del Sprint)
Es la reunión donde el equipo reflexiona sobre su propio proceso de trabajo y define mejoras concretas para el próximo Sprint.
Duración máxima: 3 horas para un Sprint de 1 mes (para Sprint de 2 semanas: 1.5 horas)
Participantes: Solo el Scrum Team (PO + SM + Development Team). Los stakeholders NO participan (es una reunión interna)
Cuándo ocurre: Después de la Sprint Review y antes de la siguiente Sprint Planning
Qué se analiza:
- ¿Qué salió bien en el Sprint?
- ¿Qué salió mal o podría mejorar?
- ¿Qué vamos a hacer diferente en el próximo Sprint?
Salida: Al menos 1 mejora concreta que el equipo implementará en el próximo Sprint
Sprint Review vs Sprint Retrospective – Diferencia clave:
- Sprint Review: Sobre el PRODUCTO (incremento). Asisten stakeholders.
- Sprint Retrospective: Sobre el PROCESO (forma de trabajar). Solo el Scrum Team.
Esta es una pregunta CLÁSICA de examen. Memoriza bien la diferencia.
4.6. Métricas en SCRUM
SCRUM utiliza varias métricas para medir el progreso y la salud del proyecto:
4.6.1. Velocity (Velocidad)
Es la cantidad de trabajo (medida en story points) que un equipo puede completar en un Sprint. Se calcula promediando los últimos 3-5 Sprints.
4.6.2. Burndown Chart (Gráfico de Quemado)
Gráfico que muestra el trabajo restante (eje Y) frente al tiempo (eje X). Idealmente, la línea baja de forma constante hasta llegar a cero al final del Sprint.
4.6.3. Burnup Chart (Gráfico de Acumulación)
Muestra el trabajo completado (eje Y) frente al tiempo (eje X). Útil para proyectos largos con múltiples Sprints.
4.6.4. Cumulative Flow Diagram (CFD)
Este gráfico es más típico de Kanban, pero algunos equipos Scrum también lo usan. Muestra el estado de las historias de usuario a lo largo del tiempo (To Do, In Progress, Done).
4.7. SCRUM en el SAS: Casos Reales
Contexto: El equipo de desarrollo de Diraya (Historia Digital de Salud) necesita añadir un módulo de gestión de vacunación para la campaña de gripe 2024.
Configuración del Equipo Scrum:
- Product Owner: Dra. Carmen López, médico de familia con 15 años de experiencia
- Scrum Master: Pedro Martínez, Técnico Especialista TIC con formación como Scrum Master Certificado
- Development Team (7 personas):
- 3 desarrolladores Java/Spring Boot
- 1 desarrollador frontend (Angular)
- 1 DBA (Oracle)
- 1 QA/Tester
- 1 DevOps Engineer
Sprint 1 (2 semanas): Registro Básico de Vacunación
Sprint Goal: «Permitir a las enfermeras registrar la administración de vacunas de gripe con datos mínimos obligatorios»
Sprint Backlog:
- Historia 1: Como enfermera quiero poder registrar que he administrado una vacuna de gripe a un paciente (8 puntos)
- Historia 2: Como enfermera quiero poder consultar el historial de vacunaciones de un paciente (5 puntos)
- Historia 3: Como médico quiero poder ver alertas si un paciente tiene contraindicaciones para la vacuna (8 puntos)
Resultados Sprint 1:
- ✅ Se completaron las 3 historias (21 puntos)
- ✅ Sprint Review: Los enfermeros probaron la funcionalidad y dieron feedback positivo
- ✅ Sprint Retrospective: El equipo decidió mejorar las pruebas automatizadas para el siguiente Sprint
Ventajas del Enfoque SCRUM:
- La funcionalidad básica estuvo disponible en 2 semanas (vs 3-4 meses con Waterfall)
- El feedback temprano de las enfermeras permitió ajustar la interfaz antes de seguir desarrollando
- La colaboración diaria con la Product Owner (Dra. López) evitó malentendidos sobre requisitos clínicos
5. KANBAN: Gestión Visual del Flujo 📊
Si SCRUM es como el rugby (trabajo en equipo por sprints), KANBAN es como una cadena de producción optimizada. Viene de Toyota y su sistema de manufactura Just-In-Time.
KANBAN no es una metodología de desarrollo de software per se: es un método de gestión del flujo de trabajo. Y es muy popular en el SAS para equipos de operaciones, soporte, y mantenimiento.
5.1. ¿Qué es KANBAN?
KANBAN (看板 en japonés, literalmente «tarjeta visual») es un método para gestionar el trabajo basado en:
- Visualizar el trabajo: Todo el trabajo se representa en un tablero visual
- Limitar el Work In Progress (WIP): Solo puedes tener un número limitado de tareas «en progreso» simultáneamente
- Gestionar el flujo: Mides y optimizas el tiempo que tarda cada tarea en completarse
- Mejorar continuamente: Experimentas con cambios y mides resultados
5.2. Diferencias Clave entre SCRUM y KANBAN
| Aspecto | SCRUM | KANBAN |
|---|---|---|
| Iteraciones | Sprints de tiempo fijo (1-4 semanas) | Flujo continuo (no hay sprints) |
| Roles | 3 roles definidos (PO, SM, Dev Team) | No prescribe roles específicos |
| Cambios | No se cambia el Sprint Backlog durante el Sprint | Se pueden añadir tareas en cualquier momento |
| Métrica Principal | Velocity (puntos por Sprint) | Lead Time / Cycle Time (tiempo por tarea) |
| Tablero | Se resetea cada Sprint | Persistente (flujo continuo) |
| Límites WIP | Indirecto (tamaño del Sprint Backlog) | Explícito (máx. X tareas en cada columna) |
| Estimación | Obligatoria (story points) | Opcional |
| Mejor Para | Desarrollo de producto con releases | Mantenimiento, soporte, operaciones |
- SCRUM: Desarrollo de nuevas funcionalidades de Diraya, proyectos con entregables claros
- KANBAN: Equipo de ayudaDIGITAL (Service Desk), mantenimiento correctivo de sistemas, migraciones
- SCRUMBAN (híbrido): Equipos de mantenimiento evolutivo que combinan nuevas funcionalidades con corrección de bugs
5.3. Los 6 Principios de KANBAN
1. Visualizar el Flujo de Trabajo
Representa todo el trabajo en un tablero Kanban con columnas que representan estados.
2. Limitar el Work In Progress (WIP)
Establecer un límite máximo de tareas que pueden estar simultáneamente en cada columna. Esto previene sobrecarga y mejora el flujo.
En el SAS: El equipo de ayudaDIGITAL limita a máximo 5 incidencias «En Resolución» simultáneamente por técnico. Si hay 5, no se puede tomar una sexta hasta terminar alguna.
3. Gestionar el Flujo
Medir y optimizar el tiempo que tarda cada trabajo en pasar de «inicio» a «fin» (Lead Time).
4. Hacer las Políticas Explícitas
Definir claramente cuándo una tarea puede moverse de una columna a otra (Definition of Done para cada estado).
5. Implementar Bucles de Feedback
Reuniones regulares para revisar métricas y ajustar el proceso.
6. Mejorar Colaborativamente, Evolucionar Experimentalmente
Kaizen: mejora continua basada en datos.
5.4. Métricas Clave en KANBAN
5.4.1. Lead Time
Es el tiempo total desde que se hace una petición hasta que se entrega. Es lo que le importa al cliente.
5.4.2. Cycle Time
Es el tiempo desde que se empieza a trabajar en algo hasta que se termina. Excluye el tiempo de espera.
5.4.3. Cumulative Flow Diagram (CFD)
Es el diagrama estrella de KANBAN. Muestra el estado de las tareas a lo largo del tiempo.
Pregunta típica: «¿Qué tipo de diagrama se utiliza comúnmente en Kanban para visualizar el flujo de trabajo y el tiempo de ciclo?»
Respuesta correcta: Diagrama de Flujo Acumulativo (CFD)
NO ES: Diagrama de Gantt (ese es de gestión tradicional), ni diagrama de casos de uso (ese es de UML)
5.4.4. Throughput
Número de tareas completadas por unidad de tiempo (ej: incidencias resueltas por día).
5.5. KANBAN en el SAS: Caso Práctico
Contexto: El Service Desk del SAS (ayudaDIGITAL) recibe unas 200 incidencias diarias de los 100,000+ usuarios del SAS (médicos, enfermeros, administrativos…).
Problemas Previos (Antes de KANBAN):
- Los técnicos tenían asignadas 15-20 incidencias simultáneamente → multitasking caótico
- No había visibilidad de dónde estaban «atascadas» las incidencias
- El tiempo medio de resolución era alto y muy variable
- Los usuarios se quejaban de falta de seguimiento
Implementación de KANBAN:
1. Diseño del Tablero Kanban:
2. Establecimiento de Límites WIP:
- Cada técnico puede tener máximo 3 incidencias «En Curso» simultáneamente
- Si ya tiene 3, debe terminar una antes de tomar otra
- Esto reduce el multitasking y mejora la concentración
3. Clases de Servicio (Priorización):
| Clase | SLA | Ejemplos |
|---|---|---|
| 🚨 Crítica | Respuesta: 15 min Resolución: 4 horas |
Caída de Diraya en Hospital, error en receta electrónica |
| ⚠️ Alta | Respuesta: 1 hora Resolución: 8 horas |
Usuario sin acceso a sistema crítico, fallo impresora quirófano |
| 🟠 Media | Respuesta: 4 horas Resolución: 24 horas |
Lentitud en app móvil, problemas de rendimiento |
| 🟢 Baja | Respuesta: 8 horas Resolución: 72 horas |
Consultas, peticiones de formación, mejoras estéticas |
Resultados Tras 6 Meses de KANBAN:
- ✅ Lead Time promedio: De 48 horas → 18 horas (reducción 62%)
- ✅ Cycle Time promedio: De 32 horas → 12 horas
- ✅ Throughput: De 150 incidencias/día → 220 incidencias/día (misma plantilla)
- ✅ Satisfacción usuario: De 6.2/10 → 8.5/10
- ✅ Reducción de incidencias reabiertas: De 15% → 6%
Factores de Éxito:
- Límites WIP estrictos evitaron el multitasking excesivo
- Visualización del flujo permitió detectar cuellos de botella rápidamente
- Métricas (CFD, Lead Time) guiaron mejoras continuas
- Clases de servicio aseguraron que las incidencias críticas tuvieran prioridad
6. LEAN Software Development 🎯
LEAN viene del Toyota Production System (manufactura de coches). Mary y Tom Poppendieck lo adaptaron al desarrollo de software en 2003.
La filosofía LEAN se resume en: «Maximizar el valor eliminando el desperdicio».
6.1. Los 7 Principios de LEAN Software Development
Principio 1: Eliminar el Desperdicio (Eliminate Waste)
Todo lo que no añade valor al cliente es desperdicio y debe eliminarse.
7 Tipos de Desperdicio en Software (Muda):
- Trabajo Parcialmente Hecho: Código no integrado, features no desplegadas
- Funcionalidades Extra: Desarrollar cosas «por si acaso» que el usuario no pidió (viola YAGNI)
- Re-aprendizaje: Falta de documentación que obliga a «redescubrir» decisiones
- Traspaso de Mano: Handoffs entre equipos separados (diseño → desarrollo → QA → ops)
- Retrasos: Esperas por aprobaciones, esperas por entornos, esperas por despliegues
- Multi-tarea: Cambiar constantemente de tarea (cada cambio tiene coste de contexto)
- Defectos: Bugs que requieren retrabajar código
En el SAS: Eliminar reuniones innecesarias, reducir documentación excesiva, automatizar despliegues para evitar esperas, integración continua para detectar defectos temprano.
Principio 2: Amplificar el Aprendizaje (Amplify Learning)
El desarrollo de software es un proceso de aprendizaje continuo. Maximiza las oportunidades de aprender.
Prácticas:
- Prototipos rápidos y feedback temprano
- Code reviews como oportunidad de aprendizaje
- Pair programming
- Retrospectivas para aprender de errores
- Ciclos cortos de feedback (CI/CD)
En el SAS: Cuando se desarrolla una nueva funcionalidad de Diraya, primero se hace un prototipo (mockup) y se valida con médicos antes de programar. Eso es amplificar el aprendizaje.
Principio 3: Decidir lo Más Tarde Posible (Decide as Late as Possible)
Retrasar decisiones importantes hasta tener más información. Pero sin caer en parálisis por análisis.
Ejemplo: No decidas la arquitectura de base de datos al inicio del proyecto. Desarrolla la funcionalidad con una BD simple, y cuando tengas datos reales de uso, decides si necesitas NoSQL, sharding, etc.
En el SAS: No decidir upfront si la nueva app móvil será nativa o híbrida. Primero desarrolla un MVP con tecnología flexible, mide uso real, y entonces decides basándote en datos reales de rendimiento y adopción.
Principio 4: Entregar lo Más Rápido Posible (Deliver as Fast as Possible)
La velocidad de entrega es crítica. Cuanto antes entregas, antes obtienes feedback y puedes adaptarte.
Prácticas:
- CI/CD para despliegues frecuentes
- Automatización de testing
- MVPs (Minimum Viable Products)
- Feature toggles para activar/desactivar funcionalidades sin redesplegar
En el SAS: Despliegues semanales de Diraya en lugar de releases trimestrales. Pipelines CI/CD automatizados que permiten desplegar en 30 minutos en lugar de 3 días.
Principio 5: Empoderar al Equipo (Empower the Team)
Los equipos auto-organizados toman mejores decisiones que los managers externos. Confía en el equipo y dales autonomía.
En el SAS: El equipo de desarrollo de Diraya decide qué tecnologías usar (Spring Boot vs Jakarta EE), cómo estructurar el código, qué patrones de diseño aplicar. No hay un «arquitecto jefe» imponiéndolo.
Principio 6: Construir Integridad (Build Integrity In)
La calidad no se «añade» al final: se construye desde el principio.
Prácticas:
- Test-Driven Development (TDD)
- Integración continua
- Refactoring continuo
- Code reviews
- Pair programming
- Definición de «Done» estricta
En el SAS: Todo código nuevo en Diraya debe tener >80% cobertura de tests unitarios, pasar análisis estático (SonarQube), y ser revisado por otro desarrollador antes de merge.
Principio 7: Ver el Todo (See the Whole)
Optimizar el todo, no las partes. Una optimización local puede perjudicar al sistema completo.
Ejemplo: Optimizar el código de un microservicio para que sea super rápido, pero eso hace que genere tantas llamadas a la BD que colapsa el sistema completo. Optimización local → perjudicio global.
En el SAS: Pensar en Diraya no como «módulos independientes» sino como un ecosistema. Una mejora en el módulo de farmacia debe considerar el impacto en receta electrónica, en la historia clínica, en el sistema de facturación…
Pregunta típica: «¿Cuál de los siguientes NO es un principio fundamental del Lean Software Development?»
Trampa común: «Maximizar la documentación exhaustiva» → NO es un principio Lean (al contrario, Lean busca eliminar desperdicio, y documentación excesiva es desperdicio)
Los 7 principios sí son: Eliminar desperdicio, Amplificar aprendizaje, Decidir tarde, Entregar rápido, Empoderar equipo, Construir integridad, Ver el todo.
6.2. Value Stream Mapping (VSM)
Es una técnica LEAN para mapear el flujo de valor: desde que se pide una funcionalidad hasta que se entrega al usuario.
7. DevOps: Cultura de Colaboración 🔄
DevOps no es una metodología ni una herramienta: es una cultura. Es la unión de Development (Desarrollo) y Operations (Operaciones).
Históricamente, estos dos mundos estaban separados y en conflicto:
- Developers: «Queremos desplegar funcionalidades nuevas rápido»
- Operations: «Queremos estabilidad y disponibilidad, nada de cambios»
DevOps rompe ese muro y hace que ambos trabajen juntos con un objetivo común: entregar valor rápido Y de forma estable.
7.1. Los Tres Caminos de DevOps (The Three Ways)
Primer Camino: El Flujo (Flow)
Optimizar el flujo de trabajo desde desarrollo hasta producción, reduciendo tiempos de ciclo.
Prácticas:
- CI/CD (Integración Continua / Despliegue Continuo)
- Automatización de builds, tests, despliegues
- Infraestructura como Código (IaC)
- Contenedores (Docker, Kubernetes)
En el SAS: Pipeline CI/CD para Diraya donde cada commit al repositorio Git dispara automáticamente: build → tests unitarios → tests integración → despliegue a preproducción. Si todo OK, despliegue a producción con un click.
Segundo Camino: Feedback
Crear ciclos de feedback rápidos desde producción hacia desarrollo.
Prácticas:
- Monitorización continua (Prometheus, Grafana, ELK Stack)
- Logging centralizado
- Alertas automáticas
- A/B testing
- Feature flags para experimentación
En el SAS: Dashboard de Grafana mostrando métricas en tiempo real de Diraya: tiempo de respuesta, errores, uso de CPU/memoria. Si el tiempo de respuesta sube >2 segundos, alerta automática al equipo DevOps.
Tercer Camino: Aprendizaje y Experimentación Continua
Fomentar una cultura de experimentación, aprendizaje de fallos, y mejora continua.
Prácticas:
- Postmortems sin culpa (blameless postmortems)
- Chaos Engineering (inyectar fallos controlados para probar resiliencia)
- Game days (simulacros de desastres)
- Time dedicado a mejora técnica (20% time)
En el SAS: Cuando cae un servidor de Diraya, se hace un postmortem donde NO se busca culpables sino causas raíz y mejoras. «¿Qué podemos automatizar para que esto no vuelva a pasar?»
7.2. Prácticas Clave de DevOps
7.2.1. Integración Continua (CI – Continuous Integration)
Los desarrolladores integran su código en el repositorio central múltiples veces al día. Cada integración dispara un build automatizado y tests.
Beneficios:
- Detectar errores de integración temprano (no al final del Sprint)
- Reducir conflictos de merge
- Tener siempre una versión desplegable
7.2.2. Despliegue Continuo (CD – Continuous Deployment)
Todo cambio que pasa los tests se despliega automáticamente a producción. Sin intervención manual.
Continuous Delivery vs Continuous Deployment:
- Continuous Delivery: Los cambios están listos para producción, pero el despliegue requiere aprobación manual
- Continuous Deployment: Todo cambio aprobado por tests se despliega automáticamente sin intervención humana
En el SAS: Por temas de seguridad y criticidad, Diraya usa Continuous Delivery (no Deployment). Los cambios llegan automáticamente a preproducción, pero el paso a producción requiere aprobación del responsable técnico y se hace en ventanas de mantenimiento.
7.2.3. Infraestructura como Código (IaC)
La infraestructura (servidores, redes, balanceadores…) se define en código y se versiona como cualquier otro código.
Herramientas: Terraform, Ansible, Puppet, Chef
Beneficios IaC en el SAS:
- Reproducibilidad: Crear entornos idénticos (DEV, TEST, PROD) con un comando
- Versionado: Si un cambio rompe algo, rollback al commit anterior
- Documentación: La infraestructura está documentada en el código
- Auditoría: Todo cambio de infraestructura queda registrado en Git
7.2.4. Monitorización y Observabilidad
No basta con desplegar rápido: hay que saber QUÉ está pasando en producción en tiempo real.
3 Pilares de la Observabilidad:
- Logs: Registros de eventos (ELK Stack: Elasticsearch, Logstash, Kibana)
- Métricas: Datos numéricos (Prometheus, Grafana)
- Traces: Seguimiento de requests (Jaeger, Zipkin)
En el SAS:
- Logs: Todos los logs de Diraya (aplicación, BD, sistema operativo) centralizados en ELK Stack. Si un usuario reporta un error, el técnico busca en Kibana los logs de esa transacción.
- Métricas: Grafana muestra dashboards con: usuarios conectados, tiempo respuesta promedio, requests/segundo, uso CPU/RAM/disco de cada servidor.
- Traces: Si una consulta a Diraya tarda 5 segundos, el tracing muestra dónde se va el tiempo: 0.1s API Gateway, 0.2s aplicación, 4.5s base de datos, 0.2s respuesta. Ahí está el cuello de botella.
7.2.5. ChatOps
Ejecutar operaciones DevOps desde herramientas de chat (Slack, Microsoft Teams).
7.3. DevOps en el SAS: Métricas y KPIs
Las 4 métricas clave de DevOps (según el libro «Accelerate»):
| Métrica | Qué Mide | Objetivo SAS | Situación Actual |
|---|---|---|---|
| Deployment Frequency | Frecuencia de despliegues a producción | Semanal | Quincenal (mejorando) |
| Lead Time for Changes | Tiempo desde commit hasta producción | < 24 horas | 72 horas |
| Mean Time to Restore (MTTR) | Tiempo para recuperarse de un fallo | < 1 hora | 2-3 horas |
| Change Failure Rate | % de despliegues que causan fallos | < 5% | 8% (mejorando) |
Estas métricas clasifican a las organizaciones en:
- Elite Performers: Despliegues bajo demanda, Lead Time <1 hora, MTTR <1 hora, Change Failure Rate <5%
- High Performers: Despliegues diarios/semanales
- Medium Performers: Despliegues mensuales
- Low Performers: Despliegues semestrales/anuales
El SAS está en proceso de transición de Medium a High Performer.
Pregunta típica: «En relación a DevOps, indique cuál de las siguientes afirmaciones es correcta:»
- ✅ «Los equipos lanzan versiones de software en ciclos cortos» (CORRECTO)
- ❌ «Están perfectamente separados los procesos de desarrollo y de operaciones» (FALSO – DevOps los UNE)
- ❌ «En el proceso de entrega de software se evita el uso de automatización» (FALSO – DevOps depende de automatización)
- ❌ «Cada equipo trabaja internamente sin compartir ni dar visibilidad» (FALSO – DevOps requiere transparencia y colaboración)
8. DevSecOps: Seguridad Integrada 🔒
DevSecOps es la evolución natural de DevOps: integrar la seguridad desde el inicio del ciclo de desarrollo, no como un «checkpoint» al final.
El término viene de: Development + Security + Operations
8.1. ¿Por Qué DevSecOps es Crítico en el SAS?
El SAS gestiona datos de categoría especial según el RGPD: datos de salud. Las consecuencias de una brecha de seguridad son graves:
- Legales: Sanciones de hasta 20 millones € o 4% de la facturación global (RGPD)
- Reputacionales: Pérdida de confianza de pacientes y profesionales
- Asistenciales: Si un ransomware bloquea Diraya, se paraliza la atención sanitaria
- Normativas: Incumplimiento del ENS-MEDIO (obligatorio para el SAS)
Por eso la seguridad NO puede ser un afterthought. Debe estar integrada desde el minuto 1.
8.2. Shift-Left Security
El concepto clave de DevSecOps es «Shift-Left»: mover la seguridad hacia la izquierda del ciclo de desarrollo (hacia el inicio).
8.3. Prácticas de DevSecOps
8.3.1. Threat Modeling (Modelado de Amenazas)
En la fase de diseño, identificar amenazas potenciales y diseñar controles.
Metodología STRIDE (Microsoft):
- Spoofing (Suplantación)
- Tampering (Manipulación)
- Repudiation (Repudio)
- Information Disclosure (Divulgación de información)
- Denial of Service (Denegación de servicio)
- Elevation of Privilege (Elevación de privilegios)
Ejemplo en el SAS: Al diseñar el módulo de receta electrónica, se hace threat modeling identificando:
- Amenaza: Médico suplantado prescribe medicación peligrosa (Spoofing)
- Control: Autenticación multifactor + certificado digital
- Amenaza: Modificación de dosis en tránsito (Tampering)
- Control: Firma digital de la receta + HTTPS con TLS 1.3
8.3.2. Secure Coding Standards
Estándares de codificación segura que el equipo sigue:
- OWASP Top 10: Las 10 vulnerabilidades web más críticas
- SANS Top 25: Los 25 errores de software más peligrosos
- CWE (Common Weakness Enumeration): Catálogo de debilidades de software
8.3.3. SAST (Static Application Security Testing)
Análisis estático del código para detectar vulnerabilidades sin ejecutarlo.
Herramientas: SonarQube, Checkmarx, Fortify, Veracode
En el SAS: Cada commit a Diraya pasa por SonarQube que busca:
- SQL Injections
- XSS (Cross-Site Scripting)
- Hard-coded passwords
- Uso de algoritmos criptográficos débiles (MD5, SHA1)
- Path Traversal
- Deserialización insegura
Si SonarQube detecta una vulnerabilidad CRÍTICA, el build falla automáticamente.
8.3.4. DAST (Dynamic Application Security Testing)
Análisis dinámico: probar la aplicación en ejecución simulando ataques.
Herramientas: OWASP ZAP, Burp Suite, Acunetix
En el SAS: Cada viernes por la noche, OWASP ZAP escanea automáticamente la versión de Diraya en preproducción, simulando ataques típicos (SQL injection, XSS, CSRF…). El lunes por la mañana, el equipo revisa el informe y prioriza fixes.
8.3.5. Dependency Scanning
Escanear dependencias (librerías de terceros) en busca de vulnerabilidades conocidas.
Herramientas: OWASP Dependency-Check, Snyk, WhiteSource
8.3.6. Container Security
Si usas Docker/Kubernetes, escanear imágenes de contenedores.
Herramientas: Trivy, Clair, Anchore
En el SAS: Antes de subir una imagen Docker de Diraya al registro, Trivy la escanea buscando:
- Vulnerabilidades en el sistema operativo base (Alpine Linux, Ubuntu…)
- Vulnerabilidades en las librerías incluidas
- Secretos hard-coded en la imagen
- Configuraciones inseguras
8.3.7. Secrets Management
NUNCA hard-codear contraseñas, API keys, certificados en el código.
Herramientas: HashiCorp Vault, AWS Secrets Manager, Azure Key Vault
8.3.8. Infrastructure Security (ENS Compliance)
En el SAS, cumplir el Esquema Nacional de Seguridad (ENS) es obligatorio. DevSecOps ayuda a automatizar controles ENS:
| Control ENS | Automatización DevSecOps |
|---|---|
| mp.si.2: Gestión de configuraciones seguras | IaC (Terraform/Ansible) con configuraciones auditadas |
| op.exp.8: Registro de la actividad | Logging centralizado (ELK Stack) + retención 2 años |
| op.exp.10: Protección de claves criptográficas | HashiCorp Vault + HSM para claves críticas |
| op.acc.5: Mecanismo de autenticación | OAuth 2.0 + OpenID Connect + MFA |
| mp.per.4: Gestión de vulnerabilidades | SAST/DAST/Dependency Scanning en CI/CD |
8.4. Pipeline DevSecOps Completo en el SAS
- Detección temprana de vulnerabilidades (costo de fix 10x menor que en producción)
- Cumplimiento ENS automatizado y auditable
- Reducción de superficie de ataque (dependency updates automáticos)
- Respuesta rápida a vulnerabilidades 0-day (Log4Shell: fix en 48h vs semanas)
- Cultura de seguridad compartida (no solo el equipo de seguridad, todo el equipo)
9. Casos Prácticos en el Servicio Andaluz de Salud 🏥
Situación Inicial (2019):
- ClicSalud+ (app para pacientes) desarrollada con Waterfall
- Releases anuales (1 gran release al año)
- Equipo externo (outsourcing) con poca comunicación
- Feedback de usuarios llegaba tarde y no se incorporaba
- Bugs en producción tardaban meses en corregirse
- Nuevas funcionalidades tardaban 6-12 meses desde idea hasta producción
Puntos de Dolor:
- Durante COVID (marzo 2020), se necesitaba URGENTE añadir telemedicina y autocita. No era posible con releases anuales.
- Los pacientes se quejaban de bugs que tardaban meses en arreglarse
- Las stores (App Store, Google Play) exigen actualizaciones frecuentes o la app baja en rankings
Transformación (2020-2021):
1. Creación de Equipo Interno Scrum:
- Product Owner: Responsable de Sistemas de Información Ciudadana del SAS
- Scrum Master: Técnico Especialista formado como PSM I
- Development Team: 2 dev iOS (Swift), 2 dev Android (Kotlin), 1 backend (Node.js), 1 QA, 1 UX/UI designer
- Duración Sprint: 2 semanas
2. Implementación de Prácticas Ágiles:
- Product Backlog: Historias de usuario priorizadas por valor + urgencia
- Sprint Planning: Cada 2 semanas, selección de historias para el Sprint
- Daily Standup: Cada mañana 9:00 AM, 15 minutos
- Sprint Review: Demo al final del Sprint con usuarios reales (pacientes y profesionales sanitarios)
- Sprint Retrospective: Mejora continua del proceso
3. Implementación de DevOps:
- CI/CD: GitLab CI con pipelines automatizados
- Testing: Tests unitarios (Jest), tests UI (Appium), tests E2E
- Despliegue: Beta Testing con 500 usuarios voluntarios antes de release público
- Monitorización: Firebase Analytics + Crashlytics para detectar problemas en tiempo real
4. Integración DevSecOps:
- SAST en cada commit (SonarQube)
- Dependency scanning (librerías vulnerables)
- DAST pre-release (OWASP ZAP contra el backend)
- Cumplimiento ENS automatizado
Resultados (2022):
| Métrica | Antes (2019) | Después (2022) | Mejora |
|---|---|---|---|
| Frecuencia Releases | 1 al año | 26 al año (cada 2 semanas) | 2600% |
| Lead Time (idea → producción) | 6-12 meses | 2-4 semanas | -92% |
| Tiempo Fix Bug Crítico | 2-3 meses | 2-3 días | -98% |
| Satisfacción Usuario (stores) | 3.2/5.0 | 4.5/5.0 | +41% |
| Usuarios Activos Mensuales | 450,000 | 1,200,000 | +167% |
| Vulnerabilidades en Producción | 12 (año 2019) | 1 (año 2022) | -92% |
Lecciones Aprendidas:
- La colaboración con usuarios reales en Sprint Reviews fue CRÍTICA para el éxito
- DevSecOps evitó vulnerabilidades graves (un SAST detectó una SQL injection antes de producción)
- La automatización de tests redujo regresiones (bugs que reaparecían)
- El equipo interno (vs outsourcing) mejoró muchísimo la calidad y velocidad
Contexto: ayudaDIGITAL es el Service Desk del SAS que da soporte a los 100,000+ profesionales sanitarios y administrativos en temas TIC.
Volumen de Trabajo:
- ~200 incidencias diarias
- ~50 peticiones de servicio diarias (solicitudes de accesos, altas de usuarios, etc.)
- ~30 consultas diarias
Problema (2020):
- Los técnicos tenían asignadas 15-20 incidencias simultáneamente
- Mucho «context switching» (cambiar de tarea constantemente)
- Incidencias atascadas en «En Progreso» durante semanas
- No había visibilidad de cuellos de botella
- SLAs incumplidos frecuentemente
Solución: Implementación de KANBAN (2021):
1. Diseño del Tablero Kanban (Jira):
2. Límites WIP:
- Triaje: Máximo 10 incidencias en triaje simultáneamente (si se llena, se para el intake hasta despejar)
- Pendiente Asignación: Máximo 20 incidencias listas para trabajar
- En Curso: Máximo 15 globales (5 técnicos × 3 incidencias/técnico)
- Verificación: Máximo 5 pendientes de validación usuario
3. Políticas Explícitas:
4. Métricas:
- Lead Time: Desde que se reporta hasta que se cierra (objetivo: <24h para MEDIA)
- Cycle Time: Desde que se empieza a trabajar hasta que se cierra
- Throughput: Incidencias cerradas por día (objetivo: >200/día)
- CFD: Diagrama de flujo acumulativo para detectar cuellos de botella
- SLA Compliance: % de incidencias resueltas dentro del SLA
5. Cadencias (Reuniones):
- Daily Standup: 15 min cada mañana frente al tablero Kanban
- ¿Hay incidencias bloqueadas?
- ¿Se están cumpliendo los límites WIP?
- ¿Hay cuellos de botella visibles?
- Revisión de Métricas: Semanal (viernes tarde)
- Revisar CFD: ¿hay cuellos de botella?
- Lead Time promedio por prioridad
- SLA compliance
- Identificar mejoras
- Kaizen (Mejora Continua): Mensual
- ¿Qué experimentos hacer este mes?
- Ej: «Vamos a probar aumentar el límite WIP de TRIAJE de 10 a 12 y ver si mejora el throughput sin perjudicar la calidad»
Resultados Tras 12 Meses de KANBAN:
| Métrica | Antes Kanban | Después Kanban | Mejora |
|---|---|---|---|
| Lead Time Promedio | 48 horas | 18 horas | -62% |
| Cycle Time Promedio | 32 horas | 12 horas | -62% |
| Throughput | 150 incidencias/día | 220 incidencias/día | +47% |
| SLA Compliance | 72% | 94% | +22 pp |
| Satisfacción Usuario | 6.2/10 | 8.5/10 | +37% |
| Incidencias Reabiertas | 15% | 6% | -60% |
Factores Clave de Éxito:
- Límites WIP: Forzaron al equipo a terminar antes de empezar cosas nuevas
- Visualización: El tablero Kanban hizo visible dónde estaban atascadas las incidencias
- Políticas Explícitas: Eliminaron ambigüedades sobre cuándo una incidencia estaba «hecha»
- Métricas: Lead Time, Cycle Time y CFD guiaron mejoras continuas basadas en datos
- Clases de Servicio: Aseguraron que las incidencias críticas tuvieran prioridad real
10. Cuestionario de Autoevaluación 📝
30 preguntas tipo test basadas en exámenes reales del SAS y el contenido del tema. Nivel de dificultad: OPOSICIÓN.
🎯 Evaluación del Cuestionario
Interpretación de Resultados:
- 27-30 correctas: Excelente. Estás preparado/a para el examen.
- 23-26 correctas: Muy bien. Repasa los temas que fallaste.
- 20-22 correctas: Suficiente. Necesitas reforzar conceptos clave.
- <20 correctas: Insuficiente. Vuelve a estudiar el tema completo.
Áreas críticas para repasar:
- Los 4 valores y 12 principios del Manifiesto Ágil (memorización literal)
- Diferencia entre Sprint Review y Sprint Retrospective
- Los 3 artefactos de SCRUM (Product Backlog, Sprint Backlog, Incremento)
- Métricas de Kanban: Lead Time vs Cycle Time, CFD
- Los 3 Caminos de DevOps y las 4 métricas clave
- Diferencia entre SAST y DAST en DevSecOps
- Los 7 principios de Lean
11. Mapa Conceptual del Tema 📐
┌─────────────────────────────────┐
│ DESARROLLO ÁGIL DE SOFTWARE │
│ (Manifiesto Ágil 2001) │
└────────────┬────────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
┌──────────▼──────────┐ ┌───────▼────────┐ ┌─────────▼─────────┐
│ 4 VALORES DEL │ │ 12 PRINCIPIOS │ │ METODOLOGÍAS │
│ MANIFIESTO ÁGIL │ │ OPERATIVOS │ │ ÁGILES │
└──────────┬──────────┘ └────────────────┘ └─────────┬─────────┘
│ │
┌────────┴────────┐ ┌────────────┼────────────┐
│ │ │ │ │
┌──────▼──────┐ ┌──────▼──────┐ ┌──────▼────┐ ┌────▼─────┐ ┌───▼────┐
│ PERSONAS │ │ SOFTWARE │ │ SCRUM │ │ KANBAN │ │ LEAN │
│ SOBRE │ │FUNCIONANDO │ │ │ │ │ │ │
│ PROCESOS │ │ SOBRE │ └─────┬─────┘ └────┬─────┘ └───┬────┘
└─────────────┘ │DOCUMENTACIÓN│ │ │ │
└─────────────┘ │ │ │
│ │ │
┌────────────────────────────────────┬──────┴────────────┼───────────┤
│ │ │ │
┌──▼────────────┐ ┌────────▼──────────┐ ┌─────▼──────┐ ┌─▼──────┐
│ ROLES SCRUM │ │ EVENTOS SCRUM │ │ ARTEFACTOS│ │ MÉTRICAS│
├───────────────┤ ├───────────────────┤ ├────────────┤ ├─────────┤
│• Product │ │• Sprint │ │• Product │ │• Lead │
│ Owner │ │• Sprint Planning │ │ Backlog │ │ Time │
│• Scrum Master │ │• Daily Scrum │ │• Sprint │ │• Cycle │
│• Development │ │• Sprint Review │ │ Backlog │ │ Time │
│ Team │ │• Sprint │ │• Incremento│ │• CFD │
└───────────────┘ │ Retrospective │ └────────────┘ │• WIP │
└───────────────────┘ └─────────┘
┌─────────────────────────────────────┐
│ EVOLUCIÓN ÁGIL │
└──────────────┬──────────────────────┘
│
┌────────────────────┼────────────────────┐
│ │ │
┌──────▼──────┐ ┌──────▼──────┐ ┌──────▼──────┐
│ DEVOPS │ │ DEVSECOPS │ │ SCRUMBAN │
│ (Dev + Ops) │ │(Dev+Sec+Ops)│ │ (Scrum + │
└──────┬──────┘ └──────┬──────┘ │ Kanban) │
│ │ └─────────────┘
┌─────────┼─────────┐ │
│ │ │ │
┌───▼────┐┌───▼────┐┌──▼───┐ ┌───▼───────┐
│CI/CD ││ IaC ││ChatOps│ │Shift-Left │
├────────┤├────────┤├───────┤ │Security │
│Jenkins ││Terraform│Slack │ ├───────────┤
│GitLab │││Ansible ││Teams │ │• SAST │
│GitHub │││ ││ │ │• DAST │
│Actions│││ ││ │ │• Dep Check│
└────────┘└────────┘└───────┘ │• Container│
│ Security │
┌──────────────────────────┐ └───────────┘
│ PILARES DEVOPS │
├──────────────────────────┤
│1. FLOW (Flujo) │
│2. FEEDBACK │
│3. CONTINUOUS LEARNING │
└──────────────────────────┘
┌──────────────────────────────────────────────────────────┐
│ APLICACIÓN EN EL SAS │
├──────────────────────────────────────────────────────────┤
│ │
│ SCRUM → Desarrollo Diraya (nuevas features) │
│ KANBAN → ayudaDIGITAL (Service Desk) │
│ DEVOPS → CI/CD para apps móviles │
│ DEVSECOPS → Cumplimiento ENS + RGPD │
│ LEAN → Optimización procesos desarrollo │
│ │
│ OBJETIVO: Transformación Digital SSPA 2022-2027 │
└──────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────┐
│ MÉTRICAS CLAVE DE ÉXITO │
├──────────────────────────────────────────────────────────┤
│ SCRUM → Velocity (puntos/sprint) │
│ → Burndown Chart │
│ KANBAN → Lead Time / Cycle Time │
│ → CFD (Cumulative Flow Diagram) │
│ → Throughput │
│ DEVOPS → Deployment Frequency │
│ → Lead Time for Changes │
│ → MTTR (Mean Time to Restore) │
│ → Change Failure Rate │
└──────────────────────────────────────────────────────────┘
Este mapa conceptual está diseñado para ayudarte a visualizar las relaciones entre conceptos. Recomendaciones:
- Imprímelo y tenlo visible mientras estudias
- Dibuja tu propia versión a mano (ayuda a memorizar)
- Úsalo para hacer repasos rápidos antes del examen
- Complementa con ejemplos del SAS para cada concepto
12. Conclusiones y Estrategia de Estudio 🎓
12.1. Ideas Clave del Tema (Memorizar)
🔑 Las 10 Ideas Clave que DEBES Dominar:
- Manifiesto Ágil: 4 valores + 12 principios (memorización literal de al menos 5 principios)
- SCRUM Roles: Product Owner (QUÉ), Scrum Master (facilitador), Dev Team (CÓMO)
- SCRUM Artefactos: Product Backlog, Sprint Backlog, Incremento
- SCRUM Eventos: Sprint, Planning, Daily (15min), Review (PRODUCTO), Retrospective (PROCESO)
- Kanban vs SCRUM: Flujo continuo vs Sprints, WIP explícito, Lead Time vs Velocity
- Kanban Métricas: Lead Time (cliente), Cycle Time (interno), CFD (diagrama clave)
- Lean 7 Principios: Eliminar desperdicio es #1, los otros 6 también importantes
- DevOps: CI/CD, IaC, Los 3 Caminos, 4 métricas clave
- DevSecOps: Shift-Left Security, SAST vs DAST, integración seguridad desde diseño
- Aplicación SAS: Diraya (SCRUM), ayudaDIGITAL (Kanban), Apps móviles (DevOps), ENS (DevSecOps)
12.2. Estrategia de Memorización
Para el Manifiesto Ágil (4 valores + 12 principios):
Técnica del Acrónimo:
Los 4 valores empiezan con: I-S-C-R
- Individuos e interacciones
- Software funcionando
- Colaboración con el cliente
- Respuesta ante el cambio
Para los 12 principios: Crea tarjetas Anki con el principio en una cara y un ejemplo del SAS en la otra.
Para SCRUM:
Visualización: Dibuja un ciclo Sprint completo incluyendo:
- Sprint Planning (inicio)
- Daily Scrum (durante, 15 min)
- Sprint Review (final, PRODUCTO)
- Sprint Retrospective (final, PROCESO)
- Incremento (salida)
Repite el dibujo 10 veces a mano. Tu cerebro recordará el patrón visual.
Para Kanban:
Práctica: Crea un tablero Kanban para tu propio estudio:
- Columnas: TEMAS POR ESTUDIAR | EN PROGRESO | REPASO | DOMINADO
- Límite WIP: Máximo 2 temas «En Progreso»
- Mide tu Lead Time por tema
Aplicar Kanban a tu propia preparación te ayudará a entenderlo profundamente.
12.3. Errores Comunes a Evitar
❌ Los 7 Errores Más Frecuentes:
- Confundir Sprint Review con Sprint Retrospective
- Review = PRODUCTO (qué se construyó)
- Retrospective = PROCESO (cómo se trabajó)
- Pensar que SCRUM no permite cambios
- SCRUM sí permite cambios, pero no durante el Sprint si afectan al Sprint Goal
- Creer que Agile = sin documentación
- Agile valora software funcionando SOBRE documentación, pero la documentación sigue siendo necesaria
- Confundir Lead Time con Cycle Time
- Lead Time = desde petición hasta entrega (incluye esperas)
- Cycle Time = desde inicio trabajo hasta entrega (solo trabajo activo)
- Pensar que el Scrum Master es el jefe del equipo
- El SM es un facilitador, no un manager. No asigna tareas ni controla al equipo
- Confundir CI/CD con DevOps
- CI/CD es una práctica de DevOps, no es lo mismo que DevOps (que es una cultura)
- Creer que Gantt es parte de Kanban
- Gantt es Waterfall. Kanban usa CFD (Cumulative Flow Diagram)
12.4. Plan de Estudio Sugerido (1 Semana)
📅 Plan Intensivo 7 Días:
Día 1 (3 horas): Filosofía y Manifiesto Ágil
- Lee la introducción y apartados 2-3
- Memoriza los 4 valores del Manifiesto
- Lee el Manifiesto Ágil original: agilemanifesto.org
- Haz las preguntas 1, 2, 11 del cuestionario
Día 2 (4 horas): SCRUM (Parte 1)
- Lee apartado 4 completo sobre SCRUM
- Descarga y lee la Scrum Guide oficial (PDF gratis)
- Dibuja un ciclo Sprint completo en papel
- Haz las preguntas 3-7, 12-13, 21, 23, 27, 30 del cuestionario
Día 3 (3 horas): SCRUM (Parte 2) + Caso Práctico SAS
- Repasa los roles, artefactos y eventos de SCRUM
- Lee el Caso Práctico 1 (Diraya con SCRUM)
- Identifica en tu trabajo actual qué elementos de SCRUM se aplican
- Repite preguntas SCRUM que hayas fallado
Día 4 (3 horas): KANBAN + LEAN
- Lee apartados 5 (Kanban) y 6 (Lean)
- Diferencia clara entre Lead Time y Cycle Time
- Memoriza los 7 principios de Lean
- Lee el Caso Práctico 2 (ayudaDIGITAL con Kanban)
- Haz las preguntas 8, 10, 14, 16-17, 24 del cuestionario
Día 5 (4 horas): DevOps
- Lee apartado 7 (DevOps) completo
- Memoriza los 3 Caminos de DevOps
- Memoriza las 4 métricas clave
- Entiende bien CI/CD, IaC, ChatOps
- Haz las preguntas 9, 15, 20, 22, 25-26 del cuestionario
Día 6 (3 horas): DevSecOps
- Lee apartado 8 (DevSecOps) completo
- Diferencia SAST (SonarQube) vs DAST (OWASP ZAP)
- Entiende «Shift-Left Security»
- Conecta con ENS y RGPD (Temas 36 y 38)
- Haz las preguntas 18-19, 28 del cuestionario
Día 7 (4 horas): Repaso Global + Simulacro
- Repasa el mapa conceptual completo
- Revisa todas las ideas clave
- Haz el cuestionario completo (30 preguntas) en 45 minutos
- Repasa las preguntas que falles
- Lee las conclusiones y estrategia de estudio
Total: 24 horas de estudio efectivo en 7 días = ~3-4 horas/día
🎯 El Día Antes del Examen:
- Repasa solo el mapa conceptual y las ideas clave
- Haz un simulacro rápido de 10 preguntas aleatorias
- NO estudies contenido nuevo
- Descansa bien (dormir 8 horas es MÁS importante que estudiar una hora más)
13. Referencias Normativas y Bibliográficas 📚
Documentos Oficiales y Guías
Disponible en: https://scrumguides.org/
Documento oficial de SCRUM (19 páginas). IMPRESCINDIBLE.
Disponible en: https://agilemanifesto.org/
El documento fundacional del movimiento ágil.
Disponible en: https://agilemanifesto.org/principles.html
Los 12 principios explicados.
Normativa y Estándares
Estándar internacional para procesos del ciclo de vida del software.
Estándar de gestión de servicios TI (alineado con ITIL).
Normativa española de ciberseguridad (aplicable al SAS).
Normativa europea de protección de datos (crítica para el SAS).
Bibliografía Técnica
Novela técnica sobre DevOps. Muy didáctica.
Manual completo de DevOps.
Investigación sobre las 4 métricas clave de DevOps.
El libro de referencia sobre Kanban en desarrollo de software.
Adaptación de Lean manufacturing al desarrollo de software.
