Desglose de trabajo rastreable
Cada tarea de implementación está vinculada a un requisito específico o a un criterio de aceptación — no a una descripción de función vagamente relacionada.
Desarrollo e Integración · Paso 04 · Cómo trabajamos
El Diseño de la solución produce una especificación probada y criterios de aceptación definidos. Esta etapa convierte esa especificación en software funcional y verificado — integrado con los sistemas con los que debe operar, y probado frente a los criterios definidos antes de que comenzara el desarrollo.
El desarrollo aquí no es interpretación. Toda decisión de implementación se remonta a una especificación producida durante el diseño — no a lo que un desarrollador supuso que probablemente era la intención.
No es esta la pregunta
"¿El código funciona?"
Esta pregunta, en su lugar
"¿El sistema construido satisface los criterios de aceptación definidos antes de que comenzáramos — bajo condiciones reales de integración, no solo en aislamiento?"
Implementación · Verificación · Integración · Trazabilidad · Disciplina de entrega
Por qué el desarrollo sigue al diseño
Todas las entradas a esta etapa se produjeron durante el Diseño de la solución: el Documento de Especificación de la Solución, el Informe de Evaluación del Prototipo y los Criterios de Aceptación y el Plan de Pruebas. Desarrollar sobre una especificación no probada simplemente trasladaría al código de producción el riesgo que el prototipado pretendía eliminar.
Especificación de la solución + Criterios de aceptación → Implementación verificada
Por qué importa la disciplina de entrega
El desempeño en la entrega de software no es simplemente una cuestión de qué tan rápido un equipo escribe código. La investigación de Forsgren, Humble y Kim — publicada en Accelerate: The Science of Lean Software and DevOps (2018), basada en la investigación plurianual del programa DevOps Research and Assessment (DORA) a través de miles de organizaciones — identificó dos categorías de desempeño de ingeniería que deben medirse conjuntamente: throughput (rendimiento) y estabilidad.
Tiempo de entrega
Cuánto tiempo tarda un cambio validado en pasar desde el commit hasta un estado desplegable.
Forsgren, Humble & Kim, Accelerate (2018); DORA, informe State of DevOps.
Tasa de fallos de cambios
El porcentaje de cambios que introducen un defecto que requiere corrección.
Forsgren, Humble & Kim, Accelerate (2018); DORA, informe State of DevOps.
Un equipo que entrega rápidamente pero que con frecuencia provoca fallos no tiene un buen desempeño según esta investigación — y tampoco lo tiene un equipo que entrega de forma segura pero demasiado lentamente como para importar. OpenQCore mantiene ambas dimensiones en consideración durante esta etapa, en lugar de optimizar únicamente la velocidad.
De la especificación a la implementación
El trabajo de implementación se descompone directamente a partir de la Especificación de la Solución y de los Criterios de Aceptación — no a partir de una comprensión general de lo que el diseño "intentaba lograr".
Cada tarea de implementación está vinculada a un requisito específico o a un criterio de aceptación — no a una descripción de función vagamente relacionada.
Una tarea no está completa cuando se escribe el código. Está completa cuando cumple el criterio de aceptación vinculado bajo prueba.
Cuando la implementación revela una laguna o ambigüedad en la especificación, la especificación se actualiza y revisa — no se reinterpreta silenciosamente por quien esté escribiendo el código ese día.
Verificación dirigida por pruebas
OpenQCore estructura la verificación según la pirámide de pruebas —un marco ampliamente utilizado, popularizado por Mike Cohn— para equilibrar la cobertura de pruebas entre las capas de un sistema en lugar de concentrarla en pruebas de extremo a extremo lentas y costosas.
Verificación rápida y aislada de componentes individuales frente a su comportamiento especificado —incluido su comportamiento ante entradas no válidas.
Verificación de que los componentes interactúan correctamente según los contratos de datos definidos durante el diseño de la solución.
Verificación de flujos de trabajo completos frente a los criterios de aceptación definidos antes de comenzar el desarrollo —la capa más pequeña y costosa, reservada para lo que realmente lo requiere.
El objetivo no es la mayor cantidad de pruebas. Es la confianza de que los criterios de aceptación se cumplen genuinamente, en la capa de menor costo capaz de demostrarlo.
Pruebas de integración y de contratos
Los contratos de datos y de API especificados durante el Diseño de la Solución no se tratan como documentación para seguir de forma informal. OpenQCore aplica pruebas de contrato impulsadas por el consumidor —un enfoque formalizado en herramientas como Pact— donde cada punto de integración se verifica frente a un contrato ejecutable que ambas partes de la integración deben cumplir.
Esto importa especialmente para sistemas que deben conectarse a infraestructura existente: un contrato que solo se verifica mediante revisión manual puede desviarse silenciosamente a medida que cualquiera de los lados cambie. Un contrato que se prueba automáticamente no puede.
Revisión de código y verificación estática
Investigaciones ampliamente citadas sobre la revisión por pares de código —incluido el estudio realizado en Cisco Systems y popularizado en Best Kept Secrets of Peer Code Review de Cohen et al.— concluyeron que la efectividad de la revisión depende en gran medida del ritmo y el alcance: revisiones más pequeñas y más frecuentes, realizadas sin presión de tiempo, detectan sustancialmente más defectos que revisiones grandes realizadas rápidamente.
OpenQCore aplica revisión de código estructurada junto con análisis estático automatizado —estilo, complejidad y escaneo de vulnerabilidades conocidas— como una capa de verificación permanente, no como un pase de cortesía opcional antes de la fusión.
Canalización de Integración Continua
Commit → Compilación automatizada → Pruebas unitarias y de integración → Análisis estático y de seguridad → Verificación de contratos → Listo para despliegue.
La verificación manual e inconsistente no escala y no produce una señal fiable sobre si un cambio es realmente seguro para liberar —una determinación que se toma en la siguiente etapa, Despliegue y Habilitación. Lo que garantiza esta etapa es que un cambio que alcanza esa puerta ya ha sido verificado según el mismo estándar automatizado que todos los cambios anteriores.
Prácticas de desarrollo seguras
Las prácticas de desarrollo de OpenQCore se alinean con la estructura descrita en el Secure Software Development Framework (SP 800-218) del NIST — organizando la actividad de seguridad en torno a preparar la organización, proteger el software, producir software bien asegurado y responder a las vulnerabilidades.
Escaneo automatizado de dependencias de terceros en busca de vulnerabilidades conocidas como parte del pipeline estándar, no una auditoría manual periódica.
Consideración estructurada de cómo un componente podría ser mal utilizado, informada por los modos de fallo definidos durante el diseño de la solución.
Alcances de acceso y permisos implementados en el nivel más restringido que satisface la especificación — no en el nivel más amplio que sea conveniente.
La puerta de verificación de integración
Cada cambio alcanza una puerta de verificación definida antes de que pueda considerarse para su despliegue.
Se cumplen todos los criterios de aceptación, verificados mediante pruebas automatizadas, comprobaciones de contrato y escaneo de seguridad.
Los defectos específicos e identificados deben resolverse antes de que este cambio pueda continuar.
La implementación reveló que la propia especificación no se sostiene en condiciones reales — la respuesta correcta es revisar la especificación, no eludirla con código.
Se identificó un riesgo de seguridad, cumplimiento o arquitectónico que requiere una decisión por encima de la autoridad del equipo de desarrollo.
Un pipeline que siempre alcanza "listo para el despliegue" no está verificando nada.
Lo que produce esta etapa
Dependiendo del alcance del compromiso, esta etapa produce:
Implementación rastreable hasta la especificación, superando todas las capas de verificación definidas.
Resultados de pruebas unitarias, de integración y de extremo a extremo mapeados a los criterios de aceptación.
Verificación ejecutable de cada punto de integración definido durante el diseño de la solución.
Historial de revisiones documentado y resolución de los problemas planteados.
Hallazgos de dependencias, vulnerabilidades y análisis estático y su resolución.
La canalización de verificación automatizada aplicada a este cambio, y a todos los cambios posteriores.
Del desarrollo al despliegue y habilitación
Desarrollo e Integración produce software que ha sido verificado frente a su especificación —no software que haya sido lanzado, monitorizado o demostrado estable bajo la carga real de producción. La siguiente etapa regula cómo, cuándo y con qué seguridad ese software llega realmente a producción.
Especificación de la solución → Implementación verificada → Despliegue y habilitación
Paso 05
Poner en producción software verificado de forma segura, deliberada y con una ruta definida para revertirlo.
Referencias de investigación y metodológicas
Forsgren, N., Humble, J. y Kim, G. — Accelerate: La ciencia del software Lean y DevOps (2018); Google Cloud, investigación DORA sobre el estado de DevOps
Fuente de las métricas de rendimiento de entrega mencionadas anteriormente.
Cohn, M. — Succeeding with Agile (2009)
Fuente del concepto de la pirámide de pruebas mencionado anteriormente en la verificación dirigida por pruebas.
Cohen, J. et al. — Best Kept Secrets of Peer Code Review (SmartBear, basado en investigación de Cisco Systems)
Fuente de los hallazgos sobre la eficacia de la revisión de código mencionados anteriormente.
Pact / Contratos dirigidos por el consumidor
Un enfoque establecido para contratos de integración ejecutables y verificados automáticamente, mencionado anteriormente en la sección de pruebas de integración.
NIST — Marco de Desarrollo de Software Seguro, SP 800-218
Fuente de la estructura citada en las prácticas de desarrollo seguro mencionadas anteriormente.