Saltar al contenido

Pirámide de costos de desarrollo de software

Buscamos en todo el mundo on line para así brindarte la solución a tu inquietud, en caso de alguna pregunta puedes dejar un comentario y te contestamos porque estamos para servirte.

Solución:

La increíble tasa de rendimientos decrecientes de corregir errores de software

Stefan Priebsh: programación orientada a objetos y patrones de diseño: Codeworks DC en septiembre de 2009

(Stefan Priebsh: OOP y Design Patterns: Codeworks DC en septiembre de 2009)

Este es un resultado bien conocido en la ingeniería de software empírica que ha sido replicado y verificado una y otra vez en innumerables estudios. Desafortunadamente, lo cual es muy raro en la ingeniería de software: la mayoría de los “resultados” de la ingeniería de software son básicamente rumores, anécdotas, conjeturas, opiniones, ilusiones o simplemente mentiras. De hecho, la mayoría de los ingenieros de software probablemente no merecen la marca de “ingeniería”.

Desafortunadamente, a pesar de ser uno de los resultados de la ingeniería de software más sólidos, más sólidos desde el punto de vista científico y estadístico, más investigado, más ampliamente verificado y más a menudo replicado, también es incorrecto.

El problema es que todos esos estudios no controlan adecuadamente sus variables. Si quieres medir el efecto de una variable, tienes que ser muy cuidado de cambiar solamente que una variable y que las otras variables no cambian en absoluto. No “cambiar algunas variables”, no “minimizar los cambios en otras variables”. “Solo uno” y los otros “nada”.

O, en las palabras del brillante Zed Shaw: “Si quieres medir algo, entonces no midas otra mierda”.

En este caso particular, lo hicieron no solo miden en qué fase (requisitos, análisis, arquitectura, diseño, implementación, pruebas, mantenimiento) se encontró el error, ellos además midió cómo largo se quedó en el sistema. Y resulta que la fase es bastante irrelevante, lo único que importa es el tiempo. Es importante que se encuentren errores. rápidono en qué fase.

Esto tiene algunas ramificaciones interesantes: si es importante encontrar errores rápido, entonces, ¿por qué esperar tanto con la fase que es más probable que encuentre errores: la prueba? ¿Por qué no poner las pruebas en el comienzo?

El problema con la interpretación “tradicional” es que conduce a decisiones ineficientes. Debido a que asume que necesita encontrar todos los errores durante la fase de requisitos, prolonga la fase de requisitos innecesariamente: no puede correr requisitos (o arquitecturas, o diseños), por lo que hallazgo un error en algo que ni siquiera puedes ejecutar esta enloqueciendo difícil! Básicamente, mientras fijación los errores en la fase de requisitos son baratos, hallazgo ellos es caro.

Sin embargo, si te das cuenta de que no se trata de encontrar los errores en la fase más temprana posiblesino más bien de encontrar los errores lo antes posibleluego puede hacer ajustes a su proceso, para que avance la fase en la que hallazgo errores es más barato (prueba) hasta el punto en el tiempo donde fijación ellos es más barato (el principio).


Nota: Soy muy consciente de la ironía de terminar una diatriba sobre no aplicar adecuadamente las estadísticas con una afirmación completamente infundada. Desafortunadamente, perdí el enlace donde leí esto. Glenn Vanderburg también mencionó esto en su “Ingeniería de software real” habló en la Conferencia Lone Star Ruby 2010, pero AFAICR, tampoco citó ninguna fuente.

Si alguien conoce alguna fuente, por favor házmelo saber o edita mi respuesta, o incluso simplemente robar mi respuesta. (¡Si puede encontrar una fuente, se merece toda la reputación!)

Ver páginas 42 y 43 de esta presentación (pdf).

Desafortunadamente, la situación es como la describe Jörg, de hecho algo peor: la mayoría de las referencias citadas en este documento me parecen falsas, en el sentido de que el artículo citado no es una investigación original o no contiene palabras que respalden la afirmación que se hace. o – en el caso del artículo de 1998 sobre Hughes (p54) – contiene medidas que De hecho contradicen lo que implica la curva en la página 42 de la presentación: diferente forma de la curva y un modesto factor de costo de reparación de x5 a x10 entre la fase de requisitos y la fase de prueba funcional (y que en realidad disminuye en la prueba y el mantenimiento del sistema). ).

Reseñas y calificaciones

Si conservas algún recelo y forma de aumentar nuestro escrito puedes dejar una aclaración y con gusto lo analizaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *