Profesores y alumnos inmersos en la implementación de un modelo internacional de procesos de software

 

D. Morales Orozco[1]

L. G. Gutiérrez Torres[2]

F. J. Martínez López[3]

 

RESUMEN

¿Qué aprendizajes? ¿Qué experiencias? Dejan a los alumnos el involucrarse en la implementación de un modelo de calidad internacional como es CMMi-DEV, se dará respuesta desde la experiencia del Centro de Desarrollo de Software del Instituto Tecnológico Superior del Sur de Guanajuato en el que se involucraron a 7 docentes y a 13 alumnos durante el año 2013 en el desarrollo de 3 proyectos de software que sirvieron para evidenciar las prácticas aplicadas del modelo en las áreas de proceso como son verificación y validación, administración de requerimientos, monitoreo y control, del nivel 3 del modelo.

 

ANTECEDENTES

El Centro de Desarrollo de Software, forma parte del Instituto Tecnológico Superior del Sur de Guanajuato (ITSUR) en enero de 2013 inicia el proceso para obtener la acreditación del nivel 3 del Modelo Integrado de la Capacidad y Madurez (CMMI, por sus siglas en ingles), en el centro participan docentes y alumnos del instituto, desempeñando distintos roles específicos del desarrollo de software como son líderes de proyecto, analistas, diseñadores, encargados de pruebas, etc.

 

En el 2012 el Centro de Desarrollo de Software (CDS) del ITSUR participó en la convocatoria del Programa para el Desarrollo del Sector de Tecnologías de la Información (Prosoft) y obtuvo la aprobación para iniciar en Octubre del mismo año el proceso de certificación en el modelo de calidad Capability Maturity Model Integrated level 3 (CMMI L3) en la que se estuvo trabajando durante el año 2013 en el cual estuvieron involucrados docentes y alumnos, en diversas actividades que exige el modelo como es tener documentados los procesos, implementar dichos procesos en proyectos reales y evaluaciones de calidad para aseguramiento de la calidad.

 

El CDS ha desarrollado diversos sistemas para el sector productivo y para la propia institución, por citar algunos ejemplos se ha desarrollado un sistema de control escolar, un sistema de control de producción entre otros también el CDS ha impartido distintas capacitaciones al sector productivo y al educativo y así mismo ha impartido distintos cursos a alumnos del ITSUR, en lenguajes de programación, base de datos, pruebas y calidad por mencionar algunas temáticas.

 

También gracias a la experiencia obtenida durante la acreditación del modelo de CMMi en el nivel 2 se pudo concretar el diseñar el modulo de especialidad de la carrera de licenciatura en informática en abril del 2011.

 

Pero a todo esto ¿Qué es CMMi? CMMi es un modelo de aseguramiento de calidad que dentro de sus principales objetivos esta el buscar la mejora continua de las organizaciones mediante análisis y rediseño de los procesos que maneja una organización, y al ser un modelo solo indicará el que debe realizar la empresa para cumplir con las mejores prácticas y el cómo implemente la organización estas prácticas esta fuera del modelo.

 

En (Mary Beth Chrissis, 2009), se describe como CMMi es un modelo que se divide en áreas de procesos y como estas a su vez en prácticas especificas, para poder alcanzar un nivel de madurez en la representación continua del modelo es necesario para el nivel 2 de CMMi que se denomina gestionado tiene que cumplir tanto con las practicas genéricas, como las practicas especificas de 6 áreas de proceso, ya que la séptima área de proceso es administración de proveedores y si la empresa no maneja proveedores se puede omitir la implementación de esta área de proceso, para comprobar que la empresa tiene un nivel se debe someter a una evaluación denominada SCAMPI.

 

CMMi evalúa la capacidad o el nivel de madurez de una organización, se divide en áreas de proceso las cuales tienen un conjunto de metas especificas y metas genéricas que se tienen que cumplir para un área de proceso especifica y a su vez se dividen en un conjunto de prácticas y su sub-practicas que se deben cumplir para dar cumplimiento a una meta especifica, y tiene dos formas de representar el modelo una es de forma continua en el que se avanza de acuerdo a las áreas de proceso que requiera implementar la organización y otra es la escalonada que es la que se maneja en el CDS, en la cual se avanza por niveles de madurez en la que para alcanzar un nivel de madurez se debe cumplir con todas las áreas de proceso definidas para ese nivel.

 

La evaluación del modelo se realiza mediante un método que es propiedad del Software Engineering Institute (SEI) el cual se llama Standard CMMI Appraisal Method for Process Improvement (SCAMPI) el cual se divide en tipos en donde el tipo A es el oficial y el único que permite otorgar un nivel de madurez, y está el tipo B el cual no otorga el nivel pero sirve como referencia para considerar si una empresa está lista para ser evaluado en el SCAMPI B o que ajustes debe realizar para pensar en obtener un nivel de madurez del CMMi. CMMi maneja 5 niveles de madurez en el que el nivel 1 se otorga automáticamente por el hecho de ser una organización, el nivel 2 evalúa principalmente la parte administrativa y de soporte de la organización, y el nivel 3 ya se centra más equilibradamente en la parte administrativa y de soporte y en el área de ingeniería del desarrollo del producto. El principal objetivo del CDS de obtener el nivel 3 de CMMi es mejorar la calidad de los productos de software que se desarrollan, ganar un reconocimiento por parte de los clientes del centro, y como institución educativa poder permear los conocimientos y experiencia obtenida de este proceso a los alumnos.

 

Los objetivos desglosados y que se buscan con la obtención del nivel 3 de CMMi son:

 

Beneficios ingenieriles

1.      Los procesos maduros permiten:

a.       Entender lo que está pasando.

b.      Que el personal desarrolle todo su potencial más completamente y más efectivamente dentro de la organización.

2. La mejora de los procesos tiene más posibilidades de resultar con éxito y ser más sustanciosa a la organización ya que se basa en la definición, medición y control de los procesos.

3. Se incrementa sensiblemente la probabilidad de éxito en la introducción de nuevas y apropiadas tecnologías, técnicas y herramientas en la organización

 

Beneficios económicos

1. Enfatiza el desarrollo de procesos en las organizaciones que permiten mejorar el desarrollo de los productos y los servicios ofertados a los clientes.

2. Proporciona un marco de trabajo que permite organizar y priorizar las actividades de mejora de procesos, involucrando al propio producto, al negocio, al personal y a la tecnología.

3. Da soporte a la coordinación de actividades multidisciplinarias que pueden ser necesarias para construir con éxito un determinado producto.

4. Enfatiza el alineamiento de los objetivos de la mejora de procesos con los objetivos de negocio de la organización.

 

Metodología

Para poder obtener el nivel se tuvieron que ajustar 6 áreas de procesos, un área de proceso que se tenían del nivel 2 y definir 13 áreas nuevas del nivel 3, un área de proceso es un grupo de prácticas que se deben seguir para poder tener implementada el área de proceso, y por último se deben poner en implementar los procesos en proyectos reales para comprobar que están adecuados a la organización y realizar ajustes si fuera necesario. Tomando como base las áreas de procesos se dividen las tareas en roles que deben asumir los involucrados del proyecto y es aquí donde a los alumnos que están haciendo sus residencias o servicio social se les involucra de acuerdo a sus intereses, que se dividen en 2 grandes grupos el área de calidad y pruebas y el área de desarrollo en el que se involucran como programadores y analistas, poco a poco a los alumnos se les va delegando mayores responsabilidades ya que al principio de su estancia es llevarlos de la mano pero conforme van entendiendo la manera de trabajar terminan prácticamente con la responsabilidad total de las actividades que están llevando a cabo.

 

El proceso para obtener la acreditación de nivel 3 de CMMi fue el que se describe en la Figura 1.

 

 

Figura 1. Proceso seguido para la obtención de nivel 3 de CMMi

 

En el diagnostico y ajuste de áreas de proceso, se realizó por parte de la empresa consultora un análisis de cómo estaba actualmente el centro de desarrollo de software y como estaban aplicándose las áreas de proceso de nivel 2, este se realizo revisando los documentos generados por el CDS de los proyectos y entrevistas a los integrantes del CDS para que a partir de este diagnostico se pudiera comenzar a construir las áreas de proceso de nivel 3.

 

Una vez entregado los resultados del diagnostico se entrego una propuesta de ajustes a las áreas de proceso que fue realizada en conjunto con la consultoría y elementos del CDS se hicieron los ajustes para cumplir con el nivel 3 de CMMi.

 

Mientras se revisan los procesos de nivel 2, se empezaron a formar equipos de trabajo para ser encargados de un conjunto de áreas de proceso de nivel 3 y revisar los nuevos procesos y ser los encargados de darle seguimiento a que su implementación fuera la adecuada, los equipos fueron para el área de ingeniería el área de administrativas, y las áreas de soporte y calidad.

 

Después de la capacitación, se trabajo para generar las nuevas áreas de proceso las cuales incluían Administración de riesgos, administración integrada de proyectos, verificación y validación entre otras, cabe destacar que las áreas de proceso se fueron construyendo para que fueran lo más agiles posibles y no hacer procesos demasiado pesados o burocráticos, que fue algo de que en nivel 2 se tendían a ser procesos sino pesados, si podían ser más ligeros.

 

Conforme se iban liberando áreas de proceso se comenzaban a poner a prueba en los proyectos que se estaban realizando actualmente en el CDS, una de las cosas que permitió tener una integración continua de la nuevas áreas de proceso y a los proyectos ya iniciados fue que a diferencia del nivel dos en el que el CDS manejaba los proyectos en un ciclo de vida en cascada se opto por trabajar los proyectos en un modelo iterativo incremental, el cual permite entre otras cosas entregas continuas del producto de software que se generará al finalizar el proyecto. Al principio que se comenzaba con la implantación surgían cosas que mejorar o cosas que estaban mal en el proceso y lo que se hacía era ajustar el proceso para corregir las deficiencias encontradas, igualmente se realizaban auditorias de calidad para asegurar la adherencia a procesos.

 

Una vez que se cubrieron implementaron todas las áreas de proceso de nivel 3 se realizo una Evaluación SCAMPI tipo B, en la que se formo un equipo evaluador conformado por dos personas del CDS y cuatro externas esto con el objetivo de verificar la madurez e institucionalización de las prácticas requeridas por los niveles 2 y 3 del modelo CMMI-DEV, una vez terminada esta evaluación se entregaron los resultados en el cual se indicaban las oportunidades de mejora que se encontraron.

 

Por último una vez que se realizaron los ajustes, se realizo el SCAMPI A para verificar el cumplimiento de las prácticas respecto a CMMI-DEV v1.3 y establecer las acciones de mejora para el siguiente periodo. Tener identificadas las fortalezas y oportunidades de mejora con respecto a CMMI-DEV v1.3 y establecido el nivel de madurez.

 

Los alumnos involucrados en el proceso de acreditación del nivel 3 de CMMi, principalmente fueron alumnos de residencias y un alumno de servicio social. Como se muestra en la Tabla 1 en la cual se puede observar que estuvieron participando 13 alumnos durante el año.

 

Tabla 1. Alumnos involucrados en el CDS en el año 2014

 

Rol / Actividad

Número de alumnos.

Servicio Social

Residentes

Analista / Programador

1

4

Auditores de Calidad

2

Pruebas

3

Auditores de Calidad y Pruebas

2

Apoyo General

1

Totales

1

12

 

Los alumnos estuvieron involucrados en dos vertientes, en la parte de calidad y pruebas y en la parte de desarrollo específicamente análisis, diseño y programación, se comenzara con detallar las actividades en las cuales se desenvolvieron los alumnos, poniendo énfasis en las actividades de mayor valor.

 

Primeramente en la parte de calidad, los alumnos residentes se encargaron de realizar auditorías de calidad a los proyectos que se estaban ejecutando, igualmente tuvieron como responsabilidad crear algunos de los criterios que se iban a aplicar en las auditorias, dos de los residentes también estuvieron presentes durante las capacitaciones de la empresa consultora.

 

En lo que concierne a pruebas los alumnos se encargaron de realizar los casos de prueba utilizando la herramienta test link y estos los realizan a partir de los casos de uso generados por los analistas, una vez que diseñan los casos de prueba se les realiza una revisión entre pares para después ejecutar estas pruebas una vez que se les informe que el ambiente beta para realizar las pruebas está listo una vez que se corren los casos de prueba eran encargados de registrar los defectos detectados y dar seguimiento hasta que se resolvieran los defectos que surgían, esto lo realizan mediante la herramienta de mantis que está ligada al test link.

 

En el análisis, diseño y programación, dos de los alumnos estuvieron muy involucrados al comienzo se les brindo toda la ayuda y una capacitación para desempeñar sus labores, en la primera iteración del proyecto fue que ellos comenzaran a involucrarse en las entrevistas con el cliente en cómo iba a ser el llenado de los casos de uso y como debían realizar sus diseños, para poder comenzar a programar el sistema, pero ya en la segunda iteración fue menos el acompañamiento y en la tercera iteración y cuarta ya prácticamente solo era dar seguimiento a sus actividades porque ellos ya eran capaces de realizar el trabajo y conocían exactamente qué es lo que tenían que realizar y en qué orden.

 

Durante la evaluación del SCAMPI B y SCAMPI A, los alumnos fueron entrevistados por el equipo evaluador de manera independiente a los docentes que participan en el CDS y de sus respuestas fueron cruciales para poder obtener el nivel ya que si ellos no hubieran estado preparados y no conocieran sus roles que estaban desempeñando durante el desarrollo del proyecto no hubiera sido posible obtener el nivel ya que ellos fueron tratados como si fueran empleados del CDS y como tal tenían que tener todo el conocimiento y habilidades requeridas para desempeñar los diferentes roles.

 

Por último los alumnos también se involucraron en realizar mantenimientos a algunos sistemas que están actualmente en uso en la institución, agregando algunas funcionalidades o corrigiendo defectos que se llegan a presentar durante el uso de los sistemas, esto ayuda a que los sistemas estén en la mejor forma posible para estar operando en el día a día y asegurarse de que se cumplan con las nuevas reglas de operación que sufran los procesos que están ayudando a automatizar estos sistemas.

 

Es importante destacar que los proyectos que estuvieron involucrados los alumnos, son sistemas reales que se utilizan en la institución o que están por ser liberados a producción una vez que se tengan los recursos de hardware y configurada la infraestructura de red para su correcto funcionamiento.

 

Las tecnologías en las que se desarrollaron los sistemas, fueron una combinación de sistemas de escritorio, y sistemas Web.

 

En la en la tabla 2 se muestra como estuvieron distribuidas las actividades en los 3 proyectos que se estuvieron desarrollando durante el año 2013 en las que destaca el proyecto 2 en el que los alumnos estuvieron involucrados en todas las actividades de la lista.

 

Tabla 2. Actividades de los alumnos en los proyectos 2013

 

Identificador del proyecto

 

Actividades de los alumnos.

Pruebas

Calidad

Análisis

Diseño Alto Nivel

Diseño Bajo Nivel

Programación

Proyecto 1

X

X

 

 

 

Proyecto 2

X

X

X

X

X

X

Proyecto 3

X

X

 

 

X

X

 

En el proyecto 2 la experiencia que generó en los alumnos fue involucrarse en todo el ciclo de vida de la aplicación desde ir con el cliente a realizar entrevistas para recabar los requerimientos y generar los casos de uso en los que se plasmaba los requerimientos del cliente, pero siempre guiados por un docente que era el responsable de realizar estas actividades, cuando se termina el análisis se realizaba la validación de los casos de uso con el cliente para asegurarse de que se habían recabados correctamente los requerimientos y obtener su visto bueno de lo que se iba a comenzar a desarrollar.

 

Una vez terminado el análisis se procedía al diseño de alto nivel que es el diseño de la arquitectura del software y tomar la decisión de cuál es la arquitectura que mejor se adaptaba para resolver el problema, en esta etapa uno de los dos alumnos involucrados en el proyecto participo activamente dando su punto de vista de las opciones, cabe destacar que esto fue posible en parte porque este alumno ya había estado por todo un proceso de capacitación en el CDS y ya había participado como programador en varios proyectos dentro del CDS.

 

Los dos alumnos fueron encargados de realizar su diseño de bajo nivel, después de una capacitación que se les impartió para que vieran de qué manera se iba a desarrollar el diseño ya con sus diseños, comenzaron la programación de sus casos de uso asignados, siempre cuidando el documentar correctamente su código en base a los estándares especificados para tal propósito.

 

También es muy importante destacar la participación en la configuración y puesta en marcha de una herramienta para poder realizar pruebas de estrés al sistema, lo cual permitió verificar que el sistema este preparado para soportar la carga de transacciones que se generarán cuando ya esté en funcionamiento el sistema, algo que no se había hecho hasta el momento en el CDS.

 

DISCUSIÓN DE RESULTADOS

En diciembre de 2013 se obtiene los resultados de que se están aplicando las 19 áreas de procesos y en enero de 2014 después de un proceso de verificación, se hace oficial la obtención del nivel 3 de CMMi, en la que la última recta del proyecto de mejora se involucraron 6 alumnos los cuales estuvieron involucrados en 3 proyectos de software (2 sistemas de escritorio y uno web) mostrando una gran capacidad resaltando uno de los proyectos que se termino en tiempo y forma y con un bajo índice de re-trabajo y errores.

 

La empresa Avantare elogio el trabajo que se realiza con los alumnos residentes con el siguiente comentario: "Actualmente el CDS es una organización pequeña que tiene la ventaja de poder integrar cada semestre a un grupo de residentes de la propia Universidad para apoyar al CDS en el desarrollo de software y en su proyecto de mejora (Avantare, 2014).

 

A pesar del tamaño del CDS se logró obtener el nivel como menciona como se cita a Mariana Pérez-Vargas comentó: "El CDS es una organización pequeña que gracias a la definición e implantación de procesos ágiles logró la adaptación del modelo CMMI-DEV a las necesidades del negocio, demostrando con ello que CMMI si aplica para pequeñas empresas” (Avantare, 2014).

 

En palabras de una de las alumnos que estuvo participando en el CDS, "Pues para mí fue una muy buena experiencia porque me enseño a desempeñarme más profesionalmente en mis actividades, además también me ayudó a perder un poco el miedo a entrar en el campo laboral (Tenia mucho temor de no dar el ancho)” esto da una muestra de lo que es para los alumnos involucrarse en el CDS y específicamente durante el proceso de acreditación del nivel 3 de CMMi.

 

CONCLUSIONES

El CDS del ITSUR, es de las pocas instituciones de educación superior en trabajar de esta manera con alumnos del mismo instituto, y quizás sea la única que trabaja de esta manera con un contacto tan cercano a los alumnos y residentes.

 

El CDS se ha establecido como un parteaguas al momento de ofrecer a sus alumnos la oportunidad de aprender y trabajar en una cedula de de desarrollo de software que está acreditada con un modelo de reconocimiento internacional y que permea también a los alumnos que reciben clases de los docentes involucrados en el centro de desarrollo de software.

 

Esta experiencia es una manera de acercar a los alumnos a lo que se enfrentarán al momento de estar trabajando y sean capaces de proponer o ser críticos en la empresa que les toque estar laborando y sean capaces de ayudar a la empresa en caso de querer implementar CMMi, y es de resaltar que ellos tienen elementos para poder sugerir a las empresas en las que les toque laborar el que puedan trabajar en base a procesos y con roles bien definidos, independientemente de si es basado en CMMi u otro modelo.

 

El trabajar en base a procesos es una experiencia que te lleva a replantear la manera que realizas tus actividades diarias, ayudando a ser más ordenado y tener una mejor calidad con tu trabajo y en el desarrollo de software el tener definidos roles, responsabilidades, y un proceso que guía estos roles ayuda a desempeñar un mejor trabajo y evitar algo que en ingeniería de software es muy común, lo cual es dedicar más tiempo que el de tu jornada laboral.

 

Es deseable que en la medida de las posibilidades de la institución se pueda ir aprovechando de una mejor manera las oportunidades que ofrece el que una institución educativa de nivel superior tenga este centro para poder ganar prestigio en la región y fomentar que los futuros ingenieros de software estén mejor capacitados y se reduzca la curva de aprendizaje al momento de insertarse al mundo laboral y que permita a los alumnos desarrollar competencias que sean deseables por las empresas ya que el que estén trabajando y se involucren en estos procesos realmente pocos tienen esta oportunidad.

 

BIBLIOGRAFÍA

Avantare. (2014). Avantare. Recuperado el 31 de Marzo de 2014, de

http://www.avantare.com/academy/articulos-virtual?es#evaluacion-aprobada-centro-de-desarrollo-de-software-del-itsur

 

Mary Beth Chrissis, M. K. (2009). CMMI Guia para la integración de procesos y la mejora de productos. Pearson.



[1] Profesor de tiempo completo del Instituto Tecnológico Superior del Sur de Guanajuato. d.morales@itsur.edu.mx.

[2] Profesor de tiempo completo del Instituto Tecnológico Superior del Sur de Guanajuato. licgerman@itsur.edu.mx.

[3] Profesor de tiempo completo del Instituto Tecnológico Superior del Sur de Guanajuato. fj.martinez@itsur.edu.mx.