Soy un desarrollador de Java, pero me pidieron que aprendiera sobre cómo aplicar Six Sigma con el objetivo de aumentar las ganancias de nuestra organización. He leído que Six Sigma se puede aplicar en todos los entornos, pero estoy interesado en los matices de aplicarlo al desarrollo de software.
¿Qué conceptos de Six Sigma se pueden aplicar a un entorno de desarrollo de software y cómo puedo aplicarlos de manera efectiva?
Entiendo que Six Sigma se enfoca en:
- Identificar y eliminar las causas de los defectos
- minimizando la variabilidad en la aplicación de procesos de fabricación o comerciales
Me parece que estos conceptos podrían aplicarse al desarrollo de software, pero ¿puede aplicarse efectivamente a un ciclo de vida de desarrollo de software (SDLC)?
quality
process-improvement
Dinesh Kumar
fuente
fuente
Respuestas:
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.
fuente
Como mencionó @Peter
Te puedo dar un escenario simple, estaba trabajando para una empresa aeroespacial. Hay un equipo que diseña circuitos para aviones. Se enfrentaban a muchas dificultades en el diseño de circuitos para aviones complejos. Debido a eso, les faltaban plazos, a pesar de que tenían diseñadores experimentados. Analicé su trabajo y noté que siempre estaban desarrollando circuitos desde cero. Así que diseñé un software que hará un seguimiento de sus circuitos previamente diseñados y cada vez que tengan un avión nuevo usarán mi software y elegirán el avión previamente diseñado que tiene circuitos similares y los usarán con poca modificación. Dado que esos circuitos están previamente diseñados y probados en aviones reales, ahora pueden centrarse más en nuevos circuitos.
Este es solo un escenario en el que seguí el proceso SIX Sigma para recopilar todos los datos sobre sus errores y analicé cuáles son las razones de eso. Luego mejorarlos con mi software.
fuente
La aplicación de Six Sigma en el desarrollo de software se llama Software Six Sigma. Six Sigma está desarrollado básicamente para la fabricación, en el proceso de fabricación ayuda a las empresas a mejorar la entrega y la calidad del producto a bajo costo. Mientras que lo mismo puede aplicarse al desarrollo de software también.
La aplicación de Six Sigma en el desarrollo de software crea una mejora sostenida en el desarrollo de un software. La aplicación de Six Sigma en el desarrollo de software da como resultado una rápida integración y prueba del software, ayuda a crear un software libre de errores y ayuda a una gestión más eficiente del programa.
Sin embargo, como el software six sigma es un concepto nuevo, necesita la capacitación de las personas adecuadas. Un eficiente programa de capacitación Six Sigma puede ayudarlo aquí. Para la capacitación en línea de Six Sigma sobre el entorno de desarrollo de software, sugeriría http://www.6sigma.us /. Los sugiero basados en la recomendación que recibí de otra empresa.
fuente