26 may 2014

El Costo de los Bugs

Por Verónica Moreno: Analista Testing

El software se desarrolla mediante un ciclo de vida por lo tanto, los bugs se pueden originar en cualquiera de las etapas de este ciclo, ya sea en la etapa de Análisis de Requerimientos, Diseño, Implementación, Testing, Integración o Mantenimiento.

La distribución típica del origen de los errores remarca que éstos se generan en mayor cantidad en las etapas iniciales (Requerimientos 56% y Diseño 27%), es decir, disminuye la cantidad a medida que se avanza en el ciclo de vida del desarrollo.

Distribución típica del origen de los errores

Asimismo, el esfuerzo de resolver los bugs que se van encontrando en las distintas etapas del desarrollo también será mayor en las iniciales y en menor proporción en las últimas etapas. Según la distribución típica el esfuerzo para resolver los bugs en el Análisis de Requerimientos es de un 82% y en Diseño de un 13%.

 
Distribución típica del esfuerzo para resolver errores


Sin embargo, por el contrario, el costo de corregir bugs se incrementa substancialmente a medida que se avanza en el proceso de desarrollo. Este tema comenzó a tomar relevancia y a analizarse desde hace más de 40 años en 1976 y hoy en día continúa analizándose.
Si bien puede variar conforme al proyecto y ambiente en el que se desarrolla el software, el costo de corregir los bugs sigue la regla de “1:10:100”.

Costo de corregir los errores

Esta regla establece que si se tiene un defecto que cuesta $1 corregirlo en la etapa de requerimientos o diseño, costará $10 corregirlo mientras se encuentre realizando el  Desarrollo y Testing y $100 una vez que el producto ya se encuentra en productivo.
Existen distintas razones que son las que originan este incremento del costo a medida que avanzamos en el proceso. Entre ellas tenemos:
  • El Efecto Ripple que generan los cambios en la aplicación.
  • La necesidad de realizar tareas nuevamente (rediseñar, volver a desarrollar, cambiar documentación, entre otros).
  • Notificar a las personas involucradas en el proyecto y a los usuarios sobre los cambios.

Adicionalmente, la resolución tardía de bugs le adiciona también riesgos al proyecto. Por lo tanto, tenemos que procurar no sólo encontrar los bugs tempranamente, sino que también principalmente debemos enfocarnos en mejorar nuestros procesos de calidad mediante la utilización de técnicas para la prevención de bugs (como por ejemplo Brain Storming en el Proceso de Análisis, Revisión de código, Control de Versiones, entre otros).  [1]






[1]  Ljubmir Lazica. Nikos Mastorakisb: Cost Effective Software Test Metrics [en línea]. <http://ow.ly/xg9Vd

No hay comentarios:

Publicar un comentario