¿Cómo puedo aplicar Six Sigma en un entorno de desarrollo de software?

13

Soy un desarrollador de Java, pero me pidieron que aprendiera sobre la aplicación de 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 me interesan 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 raíz de los defectos
  • minimizando la variabilidad en la aplicación de procesos de fabricación o de negocios

Me parece que estos conceptos podrían aplicarse al desarrollo de software, pero ¿pueden aplicarse efectivamente a un Ciclo de vida del desarrollo de software (SDLC)?

    
pregunta Dinesh Kumar 02.05.2012 - 16:05

3 respuestas

15

Las actividades básicas de Six Sigma se capturan con 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 formular 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 parte de él. Probablemente no intente aplicar los principios de Six Sigma a todo el SDLC (o al menos, no inicialmente). En su lugar, buscaría áreas en las que cree que tiene un problema (por ejemplo, nuestra tasa de defectos es demasiado alta; demasiadas regresiones; nuestro programa se desliza con demasiada frecuencia; demasiados malentendidos entre los desarrolladores y el cliente, etc.). Digamos por ahora que el problema es que se producen demasiados errores (o al menos se informan) cada semana. Así que 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 en los requisitos, la cantidad de horas que cada ingeniero pasa en las reuniones y otros datos posiblemente relevantes.

A continuación, observa los datos y trata de discernir patrones. Tal vez note que el equipo de ingeniería A cumple con cada fecha límite que se les otorga, y, a menudo, ¡incluso termina las tareas antes! Inicialmente, el equipo B no parece estar tan concentrado: no cumplen con los plazos de entrega por uno o dos días, al menos la mitad del tiempo, y en ocasiones llegan tarde una semana o más. La gerencia ve al equipo B como un problema y está tratando de agitar 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 corrija 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? Utilizando los datos que ha recopilado y el análisis que ha realizado, sugiere un cambio: el equipo A y el equipo B solucionarán sus propios errores. Con la bendición de la gerencia (y en contra de la vehemente oposición del equipo A), implementas ese cambio. Luego continúa con la recopilación de métricas y continúa analizando los datos para ver si su cambio hizo una diferencia. Repita este ciclo de medida / análisis / implementación hasta que la tasa de error se considere aceptable. Pero todavía no has terminado. De hecho, nunca ha terminado ... debe seguir midiendo la tasa de errores y comprobando que la tasa de errores se mantiene dentro del rango aceptable, es decir, está estadísticamente "en control".

Tenga en cuenta que aquí no hay nada específico para el desarrollo de software que no sean los aspectos específicos 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 Aquellos que utilizarías para un proceso de fabricación de widgets, aunque el desarrollo de software sea muy 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 establezca para su proceso.

    
respondido por el Caleb 02.05.2012 - 20:49
-3

Como lo menciona @Peter

  

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 seis sigma en los resultados de desarrollo de software en una rápida integración y prueba del software, ayuda a crear un software libre de errores y ayuda a que la administración del programa sea más eficiente.

Te puedo dar un escenario simple, estaba trabajando para una compañía aeroespacial. Hay un equipo que diseña circuitos para aviones. Estaban enfrentando muchas dificultades en el diseño de circuitos para aviones complejos. Debido a eso, faltaban fechas límite, aunque tenían diseñadores experimentados. Analicé su trabajo y noté que estaban desarrollando circuitos desde cero cada vez. Así que diseñé un software que hará un seguimiento de sus circuitos previamente diseñados y cada vez que tengan nuevos aviones usarán mi software y elegirán los aviones previamente diseñados que tienen circuitos similares y los usarán con poca modificación. Dado que esos circuitos se diseñaron y probaron previamente en aviones reales, ahora pueden centrarse más en los nuevos circuitos. Esto redujo el tiempo de entrega y redujo considerablemente sus errores al diseñar circuitos.

Este es solo un escenario en el que seguí el proceso SIX Sigma para recopilar todos los datos sobre sus errores y analizar cuáles son las razones de ello. A continuación, mejorarlos por mi software.

    
respondido por el rajkumarts 19.03.2013 - 19:07
-4

La aplicación de six sigma en el desarrollo de software se denomina software six sigma. Six Sigma se desarrolla básicamente para la fabricación, en el proceso de fabricación ayuda a las empresas a mejorar la entrega, la calidad del producto a un 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 seis sigma en los resultados de desarrollo de software en una rápida integración y prueba del software, ayuda a crear un software libre de errores y ayuda a que la administración del programa sea más eficiente.

Sin embargo, el software six sigma es un nuevo concepto que necesita la capacitación de las personas adecuadas. Un eficiente programa de entrenamiento Six Sigma puede ayudarlo aquí. Para la capacitación Six Sigma en línea sobre el entorno de desarrollo de software, sugeriría enlace /. Les sugiero que se basen en la recomendación que recibí de otra empresa.

    
respondido por el Peter 04.02.2013 - 11:32

Lea otras preguntas en las etiquetas