Integrando TSP y CMMI: Lo mejor de dos mundos

Publicado en

El desarrollo de software es una actividad joven, comparada con otras ingenierías. En sus inicios, ésta disciplina se desarrolló con base en habilidades personales y con la firme creencia de que su naturaleza era artesanal. La falta de procesos, la indisciplina personal y la falta de visión para conceptualizar al desarrollo de software como una ingeniería se materializó en la crisis del software en los años 70 y desde entonces se han tomado acciones para cambiar las malas prácticas y considerar al desarrollo de software como una ingeniería.

Se integraron prácticas universales de la administración de proyectos y se refinaron ciclos de vida. Adicionalmente, la IEEE creo la Certificación para Profesionistas de Desarrollo de Software (CSDP), liberó el libro del conocimiento de ingeniería de software (SWEBOK) y en conjunto con la ACM hicieron el diseño curricular de la carrera de Ingeniero de Software en el 2004.

Desafortunadamente, los esfuerzos no han sido suficientes. En el reporte “Resumen del Caos 2009” del Grupo Standish se indica que tan solo el 32% de los proyectos evaluados fueron exitosos, es decir: fueron entregados en tiempo, en presupuesto y con la funcionalidad requerida.
Otra línea de acción para aliviar el problema ha sido el promover la mejora de procesos de software en las organizaciones a través del estándar ISO 9000, el modelo TSP y el modelo CMMI.

Este artículo describe cómo el TSP y el CMMI están apoyando a desarrollar software de manera más disciplinada.

Proceso para equipos de software (TSP)

El TSP (Team Software Process) es una estrategia enfocada a procesos para ayudar a los equipos de software a mejorar su habilidad para producir software de alta calidad en los tiempos y costos comprometidos [1]. La mejora en el desempeño organizacional se logra mejorando el desempeño personal y posteriormente el del equipo asignado a un proyecto.

El TSP es un marco de trabajo de procesos diseñado específicamente para equipos de software. Para lograr los beneficios, TSP requiere que los miembros del equipo hayan sido entrenados en el Proceso Personal de Software (PSP, por sus siglas en inglés). El PSP es un marco de trabajo personal que ayuda a los ingenieros hacer su trabajo de desarrollo de software de manera disciplinada. El PSP incluye un conjunto de métodos, plantillas y procesos que ayudan a los ingenieros a planear, medir y administrar su trabajo. Cuando el PSP es usado en equipos de TSP, la meta es producir productos con cero defectos en el tiempo y costo planeado [2].

El PSP se desarrolló considerando los siguientes principios de calidad y planeación:

  • Cada ingeniero debe planear su trabajo con base en sus datos históricos personales.
  • Los ingenieros deben medir su trabajo y analizar los resultados para mejorar su desempeño.
  • Los ingenieros deben sentirse personalmente responsables de la calidad de sus productos buscando decididamente hacer trabajo de calidad.
  • Es más eficiente prevenir los defectos que encontrarlos y corregirlos.
  • La manera correcta es siempre la manera más rápida y económica de hacer el trabajo.

La importancia del entrenamiento y el marco de trabajo personal del PSP es que provee a los ingenieros un proceso disciplinado, métricas de desempeño, habilidades de planeación y estimación y habilidades de administración de la calidad.

El TSP es un proceso diseñado para equipos de software auto-dirigidos y de alto desempeño, ayudándolos a planear su trabajo, negociar compromisos con la gerencia, dar seguimiento cabal a sus compromisos y producir productos de calidad mientras mejoran su rendimiento. El marco de trabajo de TSP incluye roles, plantillas, procesos, guías, especificaciones y listas de chequeo. La Figura 1 muestra el marco de trabajo con algunos ejemplos de los elementos de proceso.

 


Figura 1. Elementos de proceso de TSP.

El TSP tiene características propias que lo distinguen de otras metodologías. Por ejemplo:

  • Usa equipos auto-dirigidos con base en el estilo de administración de Peter Drucker (administración del conocimiento) junto con un coach que ayuda a desarrollar las habilidades de trabajo en equipo en los individuos.
  • Tiene procesos operacionales flexibles que permiten a los equipos adaptar los procesos, contando además con un marco de trabajo de métricas que soporta a su proceso e incluye técnicas para la administración de la calidad usando revisiones personales, inspecciones e índices de desempeño de la calidad.
  • Usa planes detallados con actividades no mayores a 10 hrs en periodos de 3-6 meses y establece juntas de cierre (postmortems) para finales de ciclo o de proyecto.
  • Utiliza lanzamientos de proyectos de 3.5 días para planear las actividades y para integrar a los miembros del equipo.
  • Cada miembro tienen asignado roles, metas y riesgos del proyecto.
  • Los calendarios del equipo son desglosados en calendarios personales que son ajustados con base en datos personales.

La fortaleza de la técnica radica en la sinergia del equipo auto-dirigido comprometido con un calendario y un plan de calidad. La Figura 2 ilustra las principales características de ambas metodologías [3].

Figura 2. Características de PSP y TSP.

Las desventajas de estás metodologías están ligadas a sus fortalezas: El PSP se desarrolló para ayudar a los ingenieros de software hacer productos de calidad, sin embargo, se requiere de un cambio organizacional que no puede ser sustentado por los ingenieros (de abajo hacia arriba). Así mismo, los equipos de TSP fueron concebidos como entidades independientes careciendo de una infraestructura organizacional para la administración de las mejoras y el mantenimiento de los procesos. Una solución radica en implementar un grupo de mejora después de los pilotos de TSP para que los procesos estándares y la mejora de procesos fluyan de manera natural.

Modelo de Capacidad y madurez integrado (CMMI®)

El Modelo de Capacidad y Madurez Integrado del SEI (CMMI) provee un camino para la mejora de procesos, el cual proporciona a las organizaciones con elementos esenciales para lograr procesos efectivos. El modelo puede ser usado en un proyecto o en una división dentro de la organización. CMMI [4] ayuda a integrar áreas funcionales, establecer objetivos de mejora y sus prioridades, guiar procesos de calidad e incrementar la eficiencia en el desarrollo y mantenimiento de productos y servicios.

CMMI se enfoca en los procesos de la organización y considera como premisa que “la calidad de un sistema es fuertemente influenciada por la calidad de los procesos usados para adquirirlos, desarrollarlos y mantenerlos.”

El modelo CMMI [4] ha ayudado a las organizaciones a:

  • Ligar explícitamente las actividades de administración e ingeniería con los objetivos de negocio.
  • A desarrollar funciones organizacionales adicionales que son críticas para sus productos y servicios.
  • Incorporar lecciones aprendidas en los proyectos a través de la mejora continua de sus procesos.

El reporte del SEI “Process Maturity Profile” del año 2010, indica que 5499 organizaciones han sido evaluadas en el modelo de referencia CMMI en los continentes de Asia, Europa, África y América.

El modelo CMMI tiene tres constelaciones: desarrollo, adquisiciones y servicios, las cuales son colecciones de componentes CMMI que incluyen un modelo de referencia, material de entrenamiento y materiales de evaluación relacionados a un área de interés en particular. CMMI tiene dos representaciones: continua y por etapas. Ambas representaciones incluyen 22 áreas de proceso y ayudan a las organizaciones a llevar procesos pobremente definidos a procesos controlados estadísticamente.

La representación por etapas de CMMI incluye 5 niveles de madurez y cada uno de ellos tiene asignadas áreas de proceso. CMMI DEV provee guías para medir, monitorear y planear la construcción de productos.

En la Figura 3 se muestran los niveles de madurez, su enfoque y las áreas de proceso asignadas (predeterminadas).

Figura 3. Representación por etapas de CMMI.

La representación por etapas ya tiene predefinidas las áreas de proceso asignadas a cada nivel y es la representación más usada a nivel mundial. Las áreas de proceso indican características técnicas de un área de conocimiento en particular. Un proceso administrado incluye [4]: la inclusión de una política, planea sus actividades, les asigna recursos y responsables, capacita y desarrolla habilidades del personal que los ejecuta, administra los productos de trabajo que produce, considera a los involucrados relevantes, monitorea y controla los pasos del proceso, hace revisiones de adherencia a procesos y productos, y retroalimenta a la alta gerencia sobre el estatus del proceso.

El modelo CMMI es un conjunto de buenas prácticas para implementar procesos eficientes y efectivos que han sido probadas por la industria. Es importante entender que CMMI es un modelo de referencia, CMMI no es un conjunto de procesos. Lo importante de una implementación de CMMI es la interpretación del modelo a la realidad de la empresa ya que los nuevos procesos implementados deben de agregar valor y resolver los problemas operativos de la empresa. Un aspecto frecuentemente ignorado en las implementaciones del modelo es el reconocer que una implementación de procesos es en esencia un cambio organizacional.

Para que la iniciativa de mejora sea exitosa, ésta se debe administrar como un proyecto de alta prioridad en la organización con recursos y presupuestos asignados desde su incepción. La metodología IDEAL del SEI puede ser usada para la administración de la mejora de procesos, la cual debe ser considerada como una actividad continua. Los costos asociados a una implementación del CMMI son altos porque se deben desarrollar nuevos procesos, plantillas, material de entrenamiento y herramientas. La larga duración de la implementación de procesos dificulta presentar reportes tempranos de retorno de inversión, principalmente en el nivel 2 de madurez. La falta de patrocinio, recursos, habilidades técnicas y asignación apropiada de responsabilidades puede terminar en falsos inicios de mejora.

Con respecto al desempeño de los procesos implementados con CMMI, depende de lo siguiente:

  • El tipo de implementación realizada.
  • Experiencia de la gente involucrada.
  • Enfoque hacia obtener el nivel vs. mejorar la operación.
  • Magnitud de recursos y tiempos asignados.
  • La cultura de calidad de la empresa al inicio del proyecto.

Integrando TSP y CMMI

TSP y CMMI son dos tecnologías del SEI enfocadas a la mejora de procesos de las organizaciones. Ambas comparten las mismas metas: ayudar a las empresas a desarrollar productos de calidad en los tiempos y presupuestos asignados.

Por un lado, CMMI es un modelo de referencia y por otro lado, TSP es una implementación de procesos de alto rendimiento que es utilizada por equipos auto-dirigidos. Mientras CMMI considera aspectos e infraestructura organizacional, TSP se enfoca en desarrollar disciplina de procesos y una cultura de calidad a nivel personal (a través de PSP) así mismo construye equipos de alto desempeño.

Una de las fortalezas de TSP, es la calidad de los productos desarrollados: El promedió de errores reportado después de la entrega del producto es de 0.06 por cada mil líneas de código (KLOC) nuevas o modificadas mientras que el promedio de empresas CMMI N5 es 1.05 [04].

El CMMI es un cómo, mientras el TSP es un producto con elementos de procesos, materiales de entrenamiento y un marco de trabajo para métricas, planeación y calidad. Las debilidades de TSP se pueden resolver con el enfoque organizacional de CMMI. El riesgo de implementar procesos burocráticos que no aportan valor agregado a la empresa se mitiga usando TSP.

En lugar de seguir considerando estas tecnologías como rivales e independientes, las tecnologías se deben combinar tomando ventaja de la sinergia que se produce [5]. La idea principal de combinar TSP y CMMI es reducir el tiempo para alcanzar CMMI nivel 3 (de 4 años a 18 meses) obteniendo la institucionalización de procesos definidos que son usados en equipos auto-dirigidos comprometidos con los planes, con un fuerte enfoque personal en la calidad, con ciclos de prueba cortos, teniendo alto desempeño, y haciendo uso de una infraestructura para administrar la mejora continua [5].

La idea de combinarlos es apoyada por el nivel de cobertura que brinda TSP sobre CMMI. La Figura 4 muestra los resultados de un mapeo de TSP con CMMI indicando el porcentaje de prácticas especificas de CMMI con el que cubre TSP: 85% para el nivel 2; 78% para el nivel 3; 54% para el nivel 4 y 25% para el nivel 5 [04]. El estudio también comenta que el 80% de las prácticas especificas de CMMI nivel 2 y 3 son implementadas por TSP.


Figura 4. Prácticas de CMMI consideradas por TSP.

Uno de los promotores de combinar TSP y CMMI fue la Secretaria de Economía Mexicana en el 2008, a través de su programa PROSOFT (Programa del Desarrollo del Sector de Servicios de Tecnologías de Información) quien reconoce la fortaleza de ambos modelos y le pide al SEI que desarrolle una versión extendida del TSP que cumpla con la mayoría de prácticas de CMMI nivel 3.

El SEI extendió el TSP para poder cubrir con algunas de las prácticas específicas de CMM nivel 3 que no habían sido consideradas en TSP. A la versión extendida se le llamó 2008.09.TSPm.

En noviembre del 2009, la empresa SILAC en Zacatecas, México, iniciaron un piloto del TSP-CMMI Accelerated Improvement Method (TC AIM). La empresa había implementado TSP en algunos proyectos [5].

La primera actividad realizada fue crear el Grupo de Ingeniería de Procesos (EPG) para administrar las actividades de Mejora de Procesos de Software (SPI) a nivel organizacional. El EPG fue lanzado como equipo TSP para que las actividades de SPI fueran administradas con el mismo rigor y disciplina de un proyecto TSP, ver Figura 5.

Figura 5. Integrando TSP y CMMI.

El TSPm es una versión de TSP para administrar proyectos con múltiples equipos, ver Figura 6. Los nuevos roles de TSPm definen responsabilidades para:

  • Crear y administrar el Conjunto Estándar de Procesos Organizacionales (OSSP, por sus siglas en inglés).
  • Establecer un canal para reportar y/o escalar los asuntos de no conformidad a procesos.
  • Establecer y mantener el entrenamiento organizacional.
  • Dar seguimiento a las actividades del coach.
  • Establecer y mantener los procesos definidos del proyecto.

El TSPm también incluye nuevos elementos de procesos para cubrir más prácticas de CMMI de la administración de procesos y riesgos, aseguramiento de calidad, análisis de decisión y administración de la configuración.

Durante el Workshop anual de TSP en septiembre 2010, se anunció la liberación del Método Acelerado de Mejora (AIM). El SEI liberó en octubre 2010 el TSP+ a sus partners con coach TSP certificado. El TSP+ es la nueva versión del TSPm descrito en este artículo. El TSP+ es la versión de TSP usada en el AIM.

Conclusiones

TSP y CMMI son estrategias complementarias que combinadas proveen una poderosa sinergia, porque a nivel personal se establece una forma de trabajo disciplinada enfocada a la calidad y con un marco de trabajo para métricas y estimaciones. A nivel equipo, se establecen equipos de desarrollo de software auto-dirigidos que se comprometen a planes de trabajo balanceados y alcanzables y que le dan seguimiento a planes agresivos de calidad. A nivel organizacional, se genera la infraestructura para administrar la mejora continua, se establece una librería con procesos estándares, y se construyen las bases para la institucionalización de procesos definidos.

Combinar TSP y CMMI, sin embargo, no es una tarea fácil. Cuando un profesional de una de estas estrategias trata de asimilar la otra, podría confundirse y malinterpretar los conceptos y filosofías. Además, es muy importante tener asesoría objetiva y calificada durante la implementación porque éstos marcos de referencia han sido erróneamente percibidos como opuestos.

Independientemente del riesgo arriba mencionado, vale la pena combinar TSP y CMMI para aplicar procesos de alto desempeño en equipos auto-dirigidos, que son administrados y mejorados organizacionalmente y que permiten entregar productos de alta calidad en los tiempos y costos estipulados.

La versión completa de este artículo se escribió para el V Taller de Calidad en las Tecnologías de la Información y las Comunicaciones, Cuba, 2011.



Figura 6. Componentes de TSPm.

Bio

El Dr. Oscar Mondragón colabora en el SIE Center como consultor de modelos de calidad de software.