Por qué construir software es difícil, y qué hacemos al respecto.
por registro exitoso el día del lanzamiento.
Citas literales · HHS OIG OEI-06-14-00350
"The absence of clear leadership caused delays in decision-making and a lack of clarity in project tasks."
"Devoting too much time to developing policy left too little time for developing the website."
"Failing to properly manage its key website development contract."
"Poor coordination between policy and technical work hampered progress."
"CMS continued on a failing path despite signs of trouble, making rushed corrections that proved insufficient."
Este semestre aprenderéis exactamente las herramientas que habrían evitado cada uno de estos cinco fallos.
"El término 'ingeniería del software' fue elegido deliberadamente como provocador, implicando que la fabricación de software debería basarse en los mismos fundamentos teóricos y disciplinas prácticas que las ramas establecidas de la ingeniería."
Por eso no basta con aplicar la ingeniería civil o la electrónica.
No hay inspección visual posible. El progreso es difícil de medir. El gestor no puede ver "qué queda por construir".
A diferencia del hardware, el software puede modificarse en cualquier momento. Esto es una ventaja y también la principal fuente de problemas.
Un puente del doble de tamaño no es el doble de complejo. Un sistema de software sí puede serlo. Las interacciones crecen cuadráticamente.
El hardware se rompe con el uso. El software no se desgasta, pero cada cambio introduce nuevos defectos. Se deteriora con las modificaciones, no con el tiempo.
Coste relativo de corregir un defecto según la fase donde se encuentra. Base: detectado en requisitos = 1×. El quinto error de Healthcare.gov (sin pruebas end-to-end) es exactamente esto.
The Standish Group, CHAOS Report 2020 · 50.000 proyectos de software analizados.
En plazo, dentro del presupuesto y con todas las funcionalidades requeridas.
Retrasados, sobre presupuesto o con funcionalidades recortadas.
Cancelados o entregados pero nunca utilizados.
Pruebas orales o escritas.
Entregables a lo largo del semestre.
Resolución de problemas.
Necesitáis una base teórica. Sin ella no entendéis por qué hacéis las cosas y no podéis adaptaros cuando algo sale mal.
Pero la teoría sola no os prepara para nada. El camino es construir algo real, equivocarse, corregirlo y entender qué falló, y por qué.