Las actividades básicas de Six Sigma son capturadas por el acrónimo DMAIC , que significa: definir, medir, analizar, mejorar, controlar . Los aplica al proceso que desea mejorar: defina el proceso, mídalo, use las mediciones para formar hipótesis sobre las causas de cualquier problema, implemente mejoras y asegúrese de que el proceso permanezca estadísticamente "en control".
En lo que se refiere al software, el proceso es su ciclo de vida de desarrollo de software (SDLC) o alguna parte del mismo. Probablemente no intente aplicar los principios Six Sigma a todo el SDLC (o al menos, no inicialmente). En cambio, buscaría áreas en las que cree que tiene un problema (por ejemplo, nuestra tasa de defectos es demasiado alta; demasiadas regresiones; nuestro cronograma se desliza con demasiada frecuencia; demasiados malentendidos entre desarrolladores y clientes; etc.). Digamos por ahora que el problema es que se están produciendo demasiados errores (o al menos reportados) cada semana. Entonces definirías el proceso de desarrollo de software / creación de errores. Luego comenzaría a recopilar métricas, como la cantidad de líneas de código escritas cada día, la frecuencia de los cambios de requisitos, la cantidad de horas que cada ingeniero pasa en las reuniones,
Luego, observa los datos e intenta discernir patrones. ¡Quizás te des cuenta de que el equipo de ingeniería A cumple todos los plazos establecidos y, a menudo, incluso termina las tareas antes de tiempo! Inicialmente, el equipo B no parece tan bueno: pierden sus plazos por un día o dos al menos la mitad del tiempo, y ocasionalmente llegan tarde una semana o más. La gerencia ve al equipo B como un problema y está buscando sacudir las cosas. Sin embargo, una mirada más cercana a los datos muestra que la tasa de errores del equipo B es mucho más baja que la del equipo A, y lo que es más, a menudo se le pide al equipo B que repare los errores atribuibles al equipo A porque la gerencia considera que el equipo A es demasiado valioso para gastar mucho de tiempo en mantenimiento.
¿Entonces, Qué haces? Usando los datos que ha recopilado y el análisis que ha realizado, sugiere un cambio: el equipo A y el equipo B corregirán sus propios errores. Con la bendición de la gerencia (y contra la vehemente oposición del equipo A) implementas ese cambio. Luego continúa recopilando métricas y continúa analizando los datos para ver si su cambio marcó la diferencia. Repita este ciclo de medición / análisis / implementación hasta que la tasa de error se considere aceptable. Pero aún no has terminado. De hecho, nunca ha terminado ... necesita seguir midiendo la tasa de errores y verificando que la tasa de errores permanezca dentro del rango aceptable, es decir, está estadísticamente "bajo control".
Tenga en cuenta que aquí no hay nada que sea específico para el desarrollo de software, aparte de los detalles del proceso que está mejorando, los tipos de métricas que recopila, etc. Las actividades que utiliza para mejorar un proceso de desarrollo de software son las mismas que usted ' d utilizar para un proceso de fabricación de widgets, aunque el desarrollo de software es bastante diferente de la fabricación de widgets. Todo lo que significa es que debe aplicar algo de sentido común en los tipos de objetivos que establece para su proceso.