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