La demanda de los clientes es cada vez más exigente, el cliente desea que funcione bien desde la primera vez, y así se mantenga al transcurrir el tiempo. Esto también sucede con productos de software. Puedes considerar como ejemplo el uso que le das al software de la computadora que utilizas para leer este curso. Cada vez entras a la plataformalo que esperas es que tu navegador de Internet te muestre la información correcta y rápido, siempre. Si has tenido problemas con el navegador, seguro decidirás cambiarlo. Si una empresa desea mantener su actividad desarrollando software, debe enfocar sus esfuerzos por fabricar productos con estándares de calidad muy altos, de lo contrario los clientes optarán por otras organizaciones con mejores productos. Esto orilla a las empresas buscar alternativas que les permitan construir software con cero defectos desde la primera vez y con el mínimo de pruebas, a través de una constante capacitación, enfoque al proceso de desarrollo y creando una estrecha relación con sus clientes y proveedores.
10.1 Six Sigma
Es aquí donde entra Six Sigma. Es una metodología que busca evitar la variación de un proceso. Su nombre proviene de la letra griega ( σ ) que es utilizada para expresar la desviación estándar en estadística, que es la distancia que existe al valor de la media.
Una manera de interpretar la desviación estándar es que entre mayor sea el valor de sigma menos variación tiene el proceso. Así que un valor de sigma igual a 6 significa que existen menos de 3.4 defectos por cada millón de eventos, también conocido como DPMO por sus siglas en inglés (Defect per million of opportunities), que equivale a tener una tasa de error de 0.0003%, prácticamente sería un proceso libre de errores. Tener una tasa tan baja de errores permite que el proceso se mantenga constante, la productividad incrementaría, los costos estarían al mínimo, los precios serían competitivos y finalmente los clientes se mantendrían satisfechos.

|
Sigma |
DPMO |
% de eficiencia |
1 |
691,462 |
30.9 |
2 |
308,538 |
69.1 |
3 |
66,807 |
93.3 |
4 |
6210 |
99.4 |
5 |
233 |
99.9999966 |
6 |
3.4 |
99.9999966 |
El-Haik, B. y Shaout, A. (2010). Software Design for Six Sigma: A Roadmap for Excellence. USA: John Wiley & Sons.
Six Sigma ha sido implementada con éxito en la industria manufacturera o de transformación, debido a que es posible llevar a controlar todo el ciclo de producción, desde la entrada de materia prima hasta el producto terminado. En la industria del software implementar six sigma ha sido bastante difícil, debido a que es un proceso en el que interviene información de la cual se tiene poco control.
Imagina que te encuentras en un proyecto de desarrollo de software y, como parte de la ingeniería de requerimientos, el cliente te ofrece información incompleta o inclusive errónea de sus necesidades. Esto sin duda provocará retrabajo, que conduce a obtener baja productividad y aumentar costos.
El cliente percibe la calidad del software cuando cumple con sus expectativas, en cuanto a la disponibilidad, consistencia, integridad y facilidad de uso. Estos atributos se consiguen a través del control y seguimiento de algunas métricas del proceso de software, que permitan reducir la variabilidad y al mismo tiempo aumentar la capacidad del proceso.

Haz clic en cada atributo para conocer más detalles
Defecto:
En software el defecto no sólo es un bug que aparece en su codificación, sino cualquier elemento que provoque insatisfacción del cliente. Un proceso que sea lento para generar un reporte de información, una interfaz gráfica que provoque errores de captura, o incluso una funcionalidad incompleta, podrían no tener ningún bug en el código, sin embargo, el usuario podría considerarlas como elementos importantes de lo que espera recibir.
Evento u oportunidad:
Una oportunidad se define como cualquier operación que puede introducir un error o un defecto. Para que tengas una idea de lo difícil que puede llegar a ser contabilizar los defectos y oportunidades en el software El-Haik Shaout (2010), lo explican en el siguiente ejemplo:
Considera la acción de escribir la especificación de requerimientos.
Un defecto podría ser encontrar errores tipográficos en este documento. Ahora tienes que decidir la unidad de medida de oportunidad que puede ser una página. Si resulta que encuentras 3 errores tipográficos en 10 páginas, se estima entonces que la tasa de defectos sería de 300,000 por cada millón de páginas, es decir, te encuentras a 2 sigmas o un factor de 88,235 más lejos que el valor de six sigma. Eso te da una idea de lo difícil que puede llegar a alcanzar los niveles de defectos esperados en six sigma.
10.2 DMAIC de Six Sigma en software
La metodología de Six Sigma propone el siguiente proceso que permite mejorar los procesos hasta alcanzar cero defectos. Este proceso contiene 5 fases y se le conoce como DMAIC por sus siglas en inglés: Define, Measure, Analyze, Improve, Control.
Fase 1. Definir
El primer paso es crear una definición del proyecto que incluya una declaración del problema, objetivo y beneficios esperados. En esta definición se debe aclarar el alcance del proyecto, las personas que participarán, el tiempo y presupuesto asignado.
En esta definición también se incluyen los requerimientos del cliente y los atributos que medirán la calidad del producto resultado del proyecto.
Una de las herramientas que se recomiendan utilizar es el diagrama de mapeo del proceso SIPOC (Supplier, Inputs, Process, Outputs, Customers) del desarrollo de software. Observa el siguiente diagrama y el orden de las preguntas.
El-Haik, B. y Shaout, A. (2010). Software Design for Six Sigma: A Roadmap for Excellence.USA: John Wiley & Sons.
Fase 2. Medir
En esta fase se recopila toda la información de los procesos actuales, y se establece una línea de base que determina la capacidad del proceso, se determinan las métricas de desempeño del proceso y las metas que se desean alcanzar para mejorar.
En esta fase se pueden utilizar herramientas estadísticas para definir los factores que afectan el desempeño, también llamados factores X.
Fase 3. Analizar
Se identifican formas para reducir la brecha que existe entre el desempeño actual del proceso de desarrollo de software y el desempeño deseado.
Se establece la relación entre los factores de entrada X y las salidas Y.
Es posible realizar un análisis estadístico haciendo uso de pruebas de hipótesis, intervalos de confianza para determinar cuáles son los factores más significativos de variación.
Fase 4. Mejorar
El primer paso será identificar las soluciones potenciales a través de reuniones de equipos de trabajo en las que se realicen lluvias de ideas. Se sugieren algunas acciones para mejorar el proceso y se aplican en una prueba piloto. Si se confirma que existe una mejora se detalla un plan de implementación y un análisis costo beneficio. Finalmente se aplica el plan y se establecen las metas de mejora.
Fase 5. Controlar
El primer paso será determinar la estrategia en la que se fundamente el plan de control. Se realiza el plan en el que se asignan responsabilidades de monitoreo y seguimiento de las métricas del control.
La metodología DMAIC permite establecer mejoras sustanciales que permiten romper paradigmas, ya que se basa en atacar las causas y no los efectos, además, permite que el equipo de trabajo tome decisiones basadas en hechos haciendo uso de estadística, lo que permite aplicar mejoras con las que el cliente se ve beneficiado.
10.3 DFSS de Six Sigma en software
Además de la metodología DMAIC, Six Sigma ofrece otra metodología enfocada en el diseño de los productos y al proceso del software, que se llama DFSS – Design for Six Sigma. Esta metodología pretende garantizar que los nuevos diseños de software cumplan con los requisitos del cliente desde el lanzamiento, mediante un proceso que sea comprendido, aplicado, medido y monitoreado.
Las fases de DFSS las puedes identificar por las siglas ICOV: Identificar, Conceptualizar, Optimizar y Verificar.
Fase 1: se identifican las necesidades del cliente y las necesidades del diseño. Se determinan los factores CTS (Critical To Satisfaction), los parámetros del diseño y sus variables del proceso.
Fase 2: conceptualizar las especificaciones y los riesgos técnicos del proyecto.
Fase 3: optimizar las funciones de transferencia de diseño y mitigar los riesgos.
Fase 4: verificar que el diseño optimizado reúne los requisitos (del cliente, regulatorios, y el despliegue de la función de software).
Estas cuatro fases puedes relacionarlas con etapas del desarrollo del software de la siguiente manera:
Haz clic en cada etapa para conocer más detalles
Diagrama tomado de El-Haik, B. y Shaout, A. (2010). Software Design for Six Sigma: A Roadmap for Excellence. EEUU: John Wiley & Sons.
Relación de Six Sigma y PSP/TSP
En opinión de El-Haik, y Shaout (2010), las metodologías de Six Sigma permiten que los procesos definidos por PSP/TSP puedan alcanzar su máximo potencial. Mientras que los principales objetivos planteados por CMMI/PSP/TSP están enfocados en la mejora del desempeño de los equipos de software en términos de costo, tiempo de ciclo y calidad en la entrega, los objetivos de Six Sigma no especifican una definición particular del proceso para alcanzar la mejora, sino que también Six Sigma se enfoca en alcanzar otros objetivos del negocio, como mejoras al servicio al cliente y en sus niveles de satisfacción.
Otra diferencia es que Six Sigma se enfoca en un proceso específico que haya sido seleccionado, mientras que PSP/TSP incluyen todos los procesos de desarrollo de software.
“Six Sigma aplicado al software se enfoca al proceso y al producto de software, a equilibrar la "voz del cliente" y la "voz del negocio" para maximizar el valor general de la empresa resultante” (El-Haik, y Shaout, 2010).