¿Por qué los ingenieros de software pierden regularmente las fechas de lanzamiento del producto?

Porque:

  1. Desarrollar software es difícil.
  2. Los plazos son a menudo arbitrarios e impuestos por preocupaciones distintas a las técnicas, por ejemplo, marketing.
  3. Las personas son malas para estimar tareas complejas.
  4. Los desarrolladores a menudo son presionados para ajustar sus estimaciones (ya inexactas) a los plazos deseados.
  5. Las malas estimaciones compuestas para tareas individuales hacen que la estimación general para un proyecto sea ridículamente inexacta.
  6. Complejidades inesperadas surgen todo el tiempo y pueden aumentar el esfuerzo requerido.
  7. Cambiar las prioridades y las especificaciones puede requerir cantidades excesivas de retrabajo.
  8. Un enfoque indisciplinado (que en sí mismo puede ser una respuesta a la presión de la fecha límite) inevitablemente resultará en que cada paso posterior sea cada vez más difícil de implementar.

Mezcla de razones, cada organización enfrentará diferentes:

  1. Gran acumulación de defectos
  2. Falta de automatización robusta en todo el SDLC
  1. Build / CI
  2. Prueba
  3. Integración
  4. Desplegar
  • Eventos no planificados o conocimiento de eventos del mercado que pueden afectar / impulsar horarios
  • Requisitos incorrectos del producto y alineación con las necesidades de marketing / negocios / clientes
  • Criterios de lanzamiento poco claros (función / rendimiento / calidad)