
Tabla de Contenidos
- Introducción
- 1) Planificación
- 2) Diseño
- 3) Desarrollo
- 4) Pruebas
- 5) Despliegue
- 6) Mantenimiento
- Lista de Verificación de Entregables Fase por Fase
- Consejos Finales
- Referencias
- Palabras Clave SEO
Introducción
"Los programas deben ser escritos para que las personas los lean, y solo incidentalmente para que las máquinas los ejecuten." — Harold Abelson & Gerald Jay Sussman
El Software Development Life Cycle (SDLC) es la columna vertebral de la entrega disciplinada de software. Proporciona a los equipos un vocabulario compartido y un camino predecible desde la idea hasta el software confiable. Los estándares internacionales como ISO/IEC/IEEE 12207 y cuerpos de conocimiento como SWEBOK formalizan estos procesos para que las organizaciones puedan escalar la calidad y la repetibilidad.
1) Planificación
Objetivo: Alinearse con los resultados de negocio, usuarios, alcance, riesgos y métricas de éxito.
Qué producir
- Declaración del problema y objetivos medibles (p. ej., "reducir el abandono del checkout en un 15%").
- Mapa de stakeholders, restricciones y alcance de alto nivel.
- Registro de riesgos y criterios de go/no-go.
Consejos
- Escribe una página que explique el valor, no las funcionalidades.
- Elige un modelo de entrega (Waterfall, Iterativo, Agile) basado en el riesgo y la incertidumbre (ver "¿Qué modelo de SDLC usar y cuándo?" más abajo).
2) Diseño
Objetivo: Crear el blueprint: arquitectura del sistema, contratos, flujos UX y estrategia de pruebas.
Qué producir
- Diagrama de arquitectura, límites de módulos, contratos de datos.
- Flujos UX y criterios de accesibilidad.
- Requisitos no funcionales (fiabilidad, latencia, seguridad, coste).
Consejos
- Diseña para la observabilidad: logs, métricas y trazas son artefactos de diseño de primera clase.
- Decide cómo se probará y desplegará el sistema antes de codificar.
3) Desarrollo
Objetivo: Convertir el blueprint en código funcional y bien probado.
Prácticas que dan resultados
- Ramas de corta duración, PRs pequeños, integración continua (CI).
- Pair programming o revisiones ligeras para mantener feedback rápido.
- Mantén las pruebas cerca del código; automatiza todo lo que puedas.
"Cualquier tonto puede escribir código que una computadora pueda entender. Los buenos programadores escriben código que los humanos puedan entender." — Martin Fowler
4) Pruebas
Objetivo: Demostrar corrección, proteger la calidad y gestionar el riesgo antes del lanzamiento.
Qué cubrir
- Pruebas unitarias, de integración y de contrato para rutas críticas.
- Pruebas no funcionales (rendimiento, seguridad, accesibilidad).
- Estrategia de datos de prueba y pipelines deterministas.
5) Despliegue
Objetivo: Lanzar de forma segura y repetible.
Qué implementar
- Pipelines automatizados de build → test → release.
- Paridad de entornos (dev/stage/prod) y entrega progresiva (canary, feature flags).
- Planes de rollback y notas de lanzamiento.
La investigación moderna de DevOps vincula consistentemente prácticas sólidas de CI/CD e ingeniería de plataformas con mejores resultados de entrega y equipo.
6) Mantenimiento
Objetivo: Mantener el producto saludable y mejorándolo después del lanzamiento.
Qué hacer
- Monitorear SLIs/SLOs, presupuestos de error y revisiones de incidentes.
- Parchear vulnerabilidades, pagar deuda técnica y revisar suposiciones con nuevos datos.
- Retroalimentar los aprendizajes a Planificación (cerrar el ciclo).
Lista de Verificación de Entregables Fase por Fase (Para Copiar y Pegar)
- Planificación: declaración del problema · métrica de éxito · riesgos evaluados · stakeholders alineados
- Diseño: diagrama de arquitectura · contratos API · estrategia de pruebas · requisitos no funcionales
- Desarrollo: pruebas unitarias · code review · feature flags · hooks de observabilidad
- Pruebas: pruebas de integración · verificaciones de rendimiento/seguridad/accesibilidad · plan de rollback
- Despliegue: infrastructure as code · release automatizado · notas de lanzamiento
- Mantenimiento: dashboards de monitoreo · alertas · revisión de incidentes · backlog de mejoras
Los equipos Agile a menudo expresan estos como Definition of Ready/Done por fase y entregan incrementos pequeños y frecuentes para maximizar el aprendizaje y reducir el riesgo.
Consejos Finales
- Mantén las fases cortas y observables; el feedback es tu reductor de riesgo.
- Codifica el proceso como código (como los scripts de gates) para que la calidad esté aplicada, no solo documentada.
- Superpón prácticas de Agile + DevOps sobre el SDLC para lanzar más pequeño, más seguro y más a menudo.
Referencias y Lecturas Adicionales
- ISO/IEC/IEEE 12207 — Procesos del ciclo de vida del software. IEEE Standards Association
- SWEBOK v3.0 — Guide to the Software Engineering Body of Knowledge. ieeecs-media.computer.org
- Agile Manifesto (valores y principios). agilemanifesto.org
- Documentación de GitHub Actions (CI/CD). GitHub Docs
- Google Cloud DORA: highlights 2024 y hub de investigación DevOps. Google Cloud
- Citas: Abelson & Sussman (SICP), Martin Fowler. Goodreads
- Fuente original del artículo proporcionada por el usuario (conversación con ChatGPT)
Palabras Clave SEO
sdlc, software development life cycle, agile, devops, ci/cd, iso/iec/ieee 12207, swebok, github actions, testing strategy, deployment, continuous integration, software engineering fundamentals