Logo Gerardo Perrucci - Full Stack Developer

Las Seis Fases del SDLC—Explicadas para Profesionales

Las Seis Fases del SDLC—Explicadas para Profesionales

Tabla de Contenidos

Introducción

Decorative quote icon

"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.
Decorative quote icon

"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