¿Hay alguna evidencia que sugiera que el tiempo dedicado a escribir o pensar en los requisitos tendrá algún efecto en el tiempo de desarrollo? El estudio realizado por Standish (1995) sugiere que los requisitos incompletos contribuyeron parcialmente (13.1%) al fracaso de los proyectos. ¿Se han realizado estudios que demuestren que el tiempo dedicado al análisis de requisitos tendrá algún efecto en el tiempo de desarrollo de un proyecto, o qué tan exitoso será el proyecto?
software-engineering
Ken Li
fuente
fuente
Respuestas:
Ver Código Completo, por Steve McConnell, Tabla 3-1. Compara el costo promedio de la reparación de defectos en función de cuándo se introducen y detectan. La detección en el momento de la construcción cuesta 5-10 veces más que la detección en el momento requerido y 10-100 veces más después del lanzamiento.
La tabla se basa en las siguientes fuentes:
"Diseño e inspecciones de código para reducir errores en el desarrollo de programas" (Fagan 1976)
Eliminación de defectos de software (Dunn 1984)
"Mejora de procesos de software en aeronaves Hughes" (Humphrey, Snyder y WIllis 1991)
y varios mas
fuente
Sí, hay muchos estudios sobre este tema. Por supuesto, la pregunta es demasiado general para responder a todo tipo de proyectos de desarrollo de software, pero hay evidencia de varios contextos que respaldan la noción de que hacer un análisis de requisitos adecuado tendrá un impacto positivo en la etapa de implementación. Esta evidencia se ha recopilado parcialmente en "leyes", y aquí hay tres ejemplos:
Ley Glass: las deficiencias en los requisitos son la principal fuente de fallas en los proyectos.
Esta ley está respaldada por evidencia de estudios de caso de grandes proyectos de desarrollo de software. Glass descubrió que en los casos fallidos, había demasiados requisitos, eran inestables debido a cambios tardíos y eran ambiguos e incompletos.
Esto sugiere que existe una relación entre la calidad de los requisitos y el resultado del proyecto.
Primera ley de Boehm: los errores son más frecuentes durante los requisitos y las actividades de diseño y son más caros cuanto más tarde se eliminan.
Esto también está respaldado por la evidencia del estudio de caso y contribuye a responder la pregunta de la siguiente manera: hacer los requisitos correctamente reducirá la cantidad de errores en el sistema y corregirlos antes de comenzar la implementación será menos costoso que cazarlos abajo cuando la implementación ya ha comenzado (o peor, cuando el sistema ya se ha enviado).
La segunda ley de Boehm: la creación de prototipos (significativamente) reduce los requisitos y los errores de diseño, especialmente para las interfaces de usuario.
Esto está respaldado por experimentos controlados en un contexto estudiantil. Una posible interpretación es que los requisitos y las fases de diseño no necesitan estar completamente basados en la documentación y ser teóricos. En cambio, realizar prototipos como parte de los requisitos y las fases de diseño, lo que equivale a dedicar tiempo y pensar en los requisitos, afectará el éxito del proyecto y el tiempo de implementación.
También hay muchas otras pruebas que apuntan en la misma dirección: dedicar tiempo a la preparación para la implementación vale la pena en forma de menos riesgo y menos posibilidades de desbordamiento debido a sorpresas. Aunque la pregunta no era sobre las pruebas, la preparación adecuada también afecta positivamente las pruebas.
Las referencias para estas leyes son:
Glass 'law: Glass, RL: Software Runaways. Lecciones aprendidas de fallas masivas en proyectos de software. Upper Saddle River, Nueva Jersey: Prentice Hall 1998
La primera ley de Boehm: Boehm, BW, McClean, RK, Urfrig, DB: cierta experiencia con ayudas automatizadas para el diseño de software confiable a gran escala. IEEE Trans on Software Engineering 1, 1 (1975), 125–133
La segunda ley de Boehm: Boehm, BW, Gray, TE, Seewaldt, T .: Prototipos versus especificación: un experimento multiproyecto. IEEE Trans on Software Engineering 10, 3 (1984), 290–302
Además, la siguiente referencia puede ser de interés: Endres, A. y Rombach, D. Un manual de ingeniería de software y sistemas. Observaciones empíricas, leyes y teorías. La serie Fraunhofer IESE sobre ingeniería de software. Addison Wesley, 2003.
fuente