Ninguna de las respuestas anteriores es incorrecta. Realmente no sé cuál es la causa principal ni estoy realmente seguro de cómo una persona realmente puede responder esa pregunta. (por ejemplo, “¿Cuáles son las principales causas de demoras en la construcción de edificios?”). Entonces, en mi opinión, creo que la mayor causa se debe generalmente a “Fe ciega”, o expectativas poco realistas de “magia negra” de los ingenieros. Esto no se aplica solo al software, sino también a otros campos. Es solo que otros campos generalmente pueden llamar a bullcrap en un plan de proyecto porque es muy costoso comenzar un proyecto (porque necesitan hardware o materiales costosos), mientras que para el software es solo un grupo de personas que ya tienen:
- Cuando escribe software con características nunca antes hechas, generalmente está desarrollando un ‘nuevo proceso’. ¿Cómo puede estimar la fecha exacta de entrega de algo nuevo y no esperar imprecisiones? Es por eso que algunas empresas tienen el concepto de “nivel técnico” para cualquier componente -> una medida de familiaridad y madurez de la tecnología. Más alto significa que se entiende mejor, por lo que para la clasificación más alta, se ha demostrado que el componente ha funcionado antes en otro proyecto. Para el ranking más bajo, el componente es solo una idea nueva en la cabeza de alguien. Cuanto más alto sea el nivel tecnológico, más precisas serán sus estimaciones.
- Basado en el punto 1, las fechas de finalización para proyectos de bajo nivel tecnológico se sugieren en base a conjeturas, y luego se trata como un evangelio, cuando debe tratarse como un riesgo y administrarse como tal.
- Si la fecha de finalización no puede cambiar, debe gestionar el riesgo -> por ejemplo, exceso de recursos, reducción del alcance, etc. Debido a que los contadores de frijoles nunca sobre-recurren, y nunca podemos reducir el alcance porque es un producto mínimo viable. Este proyecto ya se puede concluir objetivamente para tener un alto riesgo de falla, pero la gente sigue adelante y ejecuta el proyecto de todos modos, porque a diferencia de la construcción o el diseño de hardware, no hay ningún costo para comenzar -> ya tiene los ingenieros. ¡La magia negra entra en escena! El proyecto tendrá éxito … solo porque está funcionando.
- No se produce mitigación de riesgos durante todo el curso del proyecto. Simplemente estás luchando contra incendios cuando comienzan, y eventualmente …
- El proyecto está ‘retrasado’, porque la fecha de finalización original era solo una estimación en la vida real, y no hubo mitigación de riesgos.
(Ruta alternativa)
- Lo mismo que arriba
- Lo mismo que arriba
- PM tiene algo de sentido común: multiplica la fecha de finalización estimada por un factor de escala para agregar amortiguación a la fecha límite para mitigar el riesgo.
- El gerente sénior con muy poco trabajo por hacer aparece … Quiero que entreguen en esta fecha anterior, por lo que la entrega es un 20% más rápida que la última vez. Eso demuestra mejoría.
- PM dice … uh … sí, vale, podemos hacer eso. Cancela el búfer e informa a los ingenieros.
- Los ingenieros se ponen nerviosos y comienzan a desviarse del plan al comenzar a recortar esquinas para mitigar el riesgo de no cumplir con la fecha de finalización, en lugar de mitigar el riesgo del proyecto.
- Las fallas se encuentran al final del proyecto debido al corte de esquinas.
- El proyecto está ‘retrasado’, ya que se hizo un esfuerzo para mantener el tiempo de KPI en lugar de eliminar el riesgo del proyecto.
- ¿Está bien que un ingeniero senior con 7 años de experiencia trabaje continuamente en un campo técnico durante 3 años más?
- ¿Es posible entrenar una red neuronal para convertir imágenes de rostros humanos (selfies) en dibujos animados de estilo moderno?
- ¿Qué compañías en Silicon Valley tienen la reputación de tener los "peores" ingenieros?
- ¿Cómo uno, programáticamente hablando, crea un juego como 'No Man's Sky'? ¿Qué tipo de problemas deben resolverse?
- ¿Es la desigualdad de género en tecnología realmente un problema? Si es así, ¿alguien puede proporcionar ejemplos?