PERSONAL SOFTWARE PROCESS Y SU IMPACTO EN LA FORMACIÓN PROFESIONAL

 

L. G. Gutiérrez Torres[1]

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

G. I. Vega Olvera[3]

 

RESUMEN

El presente documento habla sobre la importancia de la certificación SEI-PSP Certified Proffesional y la implementación de las mejores prácticas derivadas de esta metodología de Ingeniería de Software en un Instituto Tecnológico descentralizado. PSP es el acrónimo de Personal Software Proccess, una disciplina creada por Watts Humphrey. PSP fue incorporado con éxito en tres principales aspectos de la vida académica del Instituto Tecnológico Superior del Sur de Guanajuato: asignaturas de las carreras de Ingeniería en Sistemas e Ingeniería en Informática, competencias de programación y la acreditación internacional CMMi. Los resultados han posicionado al ITSUR como uno de las pocas instituciones de educación con una acreditación CMMi a nivel mundial ya que el Centro de Desarrollo de Software del ITSUR logró el nivel 3 en esta acreditación al incorporar algunas buenas prácticas de PSP. En cuanto a los concursos de programación, el ITSUR fue el mejor de los Institutos Tecnológicos del país en el 2013 y el segundo mejor en el 2014 al incorporar en su preparación algunas mejoras en el proceso de solución de problemas mediante la metodología de PSP.

 

ANTECEDENTES

El Instituto Tecnológico Superior del Sur de Guanajuato (ITSUR) es una entidad descentralizada que cuenta actualmente con apenas 1007 alumnos, 180 de ellos en la carrera de Ingeniería en Sistemas y 94 en Ingeniería en Informática. Dentro del ITSUR opera el Centro de Desarrollo de Software (CDS) en el cual participan alumnos y docentes de Sistemas e Informática. El CDS tiene dos tareas principales, desarrollar aplicaciones para cubrir las necesidades internas del ITSUR y atender necesidades de empresas de la región.

 

Con el objetivo de proporcionar una herramienta de mejora que cause un impacto significativo en el desempeño académico de los alumnos y que además fortaleciera el CDS, el ITSUR apoyó a seis docentes de las carreras de Ingeniería en Sistemas e Ingeniería en Informática, en la formación y certificación en la metodología Personal Software Process (PSP).

 

PSP es un una disciplina de ingeniería de software diseñada para ayudar a los programadores a controlar, administrar y mejorar la forma en que realizan su trabajo de construcción de programas computacionales. PSP es un conjunto estructurado de actividades para desarrollar un sistema de software mejorando el desempeño personal y ayudando a generar un producto en menor tiempo y con mejor calidad. PSP fue desarrollado por el Instituto de Ingeniería de Software de la universidad Carnegie Mellon.

 

PSP es un proceso diseñado para ayudarte a controlar, administra y mejorar la forma en que haces tu trabajo. Humphrey (2005) señala que es un marco de trabajo estructurado de formatos, guías y procedimientos para desarrollar software y afirma además que adecuadamente utilizado, PSP te provee datos históricos que necesitas para hacer mejor el trabajo, cumplir los compromisos y hace que los elementos rutinarios de tu trabajo sean más eficientes y predecibles.

 

De acuerdo a Humphrey (2000), PSP está diseñado para ayudar a los profesionales del software a utilizar de forma consistente buenas prácticas de ingeniería. Les muestra como planear y rastrear su trabajo, utilizar un proceso definido y medible, establecer metas alcanzables y monitorear su desempeño contra esas metas. PSP muestra a los ingenieros como administrar la calidad desde el inicio del trabajo, como analizar los resultados de cada trabajo y como utilizar los resultados para mejorar el proceso para el siguiente proyecto.

 

Hayes y Over (1997) encontraron con diferencias estadísticamente significativas que PSP permite a los desarrolladores mejorar en cuatro dimensiones: exactitud en las estimaciones de tamaño, estimaciones de esfuerzo, calidad del producto y calidad del proceso. El estudio también señala que no encontraron cambios significativos en la productividad de lo que se puede concluir que con la misma productividad incrementaron la calidad del producto, del proceso y mejoraron en las estimaciones de tamaño y esfuerzo.

 

La ingeniería de software es uno de las industrias más grandes e influyentes en la sociedad moderna. Pomeroy-Huf et all (2009) indican que esta industria tiene influencia desde aplicaciones sencillas utilizadas por agencias de gobierno y universidades hasta aplicaciones complejas que permean cada aspecto de la vida moderna. El sistema bancario, las telecomunicaciones, viajes, medicina, entretenimiento, e inclusive la industria agrícola.

 

Los datos de la industria muestran que el desempeño de los ingenieros de software después del entrenamiento con PSP es substancialmente mejor que antes del entrenamiento Ferguson (1997), Seshagiri (2000).

 

Un paso muy importante en la mejora de la calidad del software en esta importante industria fue la creación de PSP. PSP lleva la mejora de procesos a las personas que desarrollan el software. PSP se concentra en buenas prácticas de software para los individuos. El principio detrás de PSP es que para producir sistemas de software de calidad, cada ingeniero que trabaja en un sistema debe realizar un trabajo de calidad. (Humphrey, 2000)

 

Las carreras de Ingeniería en Sistemas e Ingeniería en Informática de los Institutos Tecnológicos de la DGEST tienen a la programación de aplicaciones como una de sus principales ramas influyendo en más del 60% de sus asignaturas. Tener un grupo de docentes calificados y certificados en PSP puede impactar positivamente en cada una de estas materias.

 

METODOLOGÍA

Las principales preguntas de investigación para este trabajo son las siguientes:

 

Para responder las preguntas se solicitó el apoyo de la institución ante las autoridades académicas planteando que PSP podría ser de gran utilidad en tres principales ámbitos dentro del ITSUR:

1.      Asignaturas relacionadas a cuestiones de programación.

2.      Acreditación CMMi.

3.      Competencias de programación.

 

Para lograr una mejora en cada uno de estos tres rubros se plantearon los siguientes pasos:

  1. Acreditación de al menos cinco docentes del curso PSP para ingenieros.
  2. Obtener la certificación por parte de los docentes.
  3. Enriquecer el contenido de las materias relacionadas a la programación.
  4. Aplicar los conocimientos de PSP en la acreditación de calidad CMMi.
  5. Incorporar buenas prácticas de PSP en las competencias de programación.

 

Cada uno de estos pasos se describe con detalle a continuación.

 

Curso de PSP para Ingenieros

El primer paso en la implementación de PSP en el ITSUR fue tomar los cursos oficiales del Software Engineering Institute (SEI) denominados "PSP para Ingenieros I: Planeación" y "PSP para Ingenieros II: Calidad". éstos se impartieron en las instalaciones del Centro de Investigación en Matemáticas en la ciudad de Guanajuato por instructores certificados. Estos cursos forman una capacitación completa que incluye todo lo necesario para presentar la acreditación oficial del SEI cuyo nombre oficial es "SEI-Certified PSP Developer".

 

Esta capacitación fue cursada por seis docentes de tiempo completo del Instituto Tecnológico Superior del Sur de Guanajuato durante cuatro semanas de tiempo completo, las cuales se dividen de la siguiente manera, la primer semana se toma el curso PSP para ingenieros I, la segunda semana se generan reportes relativos al desempeño de la primera parte del curso, la tercer semana se toma el curso PSP para ingenieros II y la última semana se prepara el reporte final. Solo la primera y tercera semana son presenciales.

 

El ITSUR gestionó el monto de la certificación con apoyo del proyecto de fomento a la industria del software del Estado de Guanajuato.

 

Examen de certificación

El segundo paso en la implementación de PSP fue el examen de certificación. El examen de certificación tiene una gran importancia ya que mediante éste, se demuestra el dominio completo y adecuado de la disciplina. Es importante aclarar que a diferencia de otros exámenes de certificación, el de PSP no cuenta con sistemas simuladores para guía de estudio. Como herramienta para preparación del curso se desarrolló en el ITSUR un sistema de información similar a los simuladores que se utilizan actualmente en certificaciones como la de Java. Esta herramienta incluye una base de datos con 180 preguntas preparadas por los seis docentes. La Figura 1 muestra la interfaz del software PSP Certification Test, desarrollado por los docentes del ITSUR.

Después de los esfuerzos realizados, los seis docentes que participaron en el curso presentaron y aprobaron el examen de certificación.

 

 

Figura 1. Pantalla del software PSPCertification Test. Fuente: Software PSPCertification

 

Implementación de PSP en las asignaturas del ITSUR

Una vez obtenida la certificación, el tercer paso de la metodología fue implementar PSP en las asignaturas pertinentes de las carreras de Ingeniería en Informática e Ingeniería en Sistemas Computacionales. Para desarrollar este paso, se revisaron de forma colegiada las materias relacionadas a la programación de computadoras en ambas academias, determinándose incluir algunas buenas prácticas de programación derivadas de PSP en las siguientes materias de Informática: Fundamentos de Programación, Programación Orientada a Objetos, Estructura de Datos y Administración y Organización de Datos. En la carrera de Sistemas, las materias elegidas fueron: Fundamentos de Programación, Programación Orientada a Objetos, Estructura de Datos e Ingeniería de Software.

 

Un caso especial es la materia de Ingeniería de Software ya que práctica mente todo su contenido concuerda con el curso de PSP.

Además de aplicar buenas prácticas de PSP en varias materias de las carreras, también se implementó un curso de titulación denominado "Calidad de Software" en el cual se enseño PSP en su totalidad. Los alumnos tuvieron la oportunidad de aprender y además titularse con este curso.

 

PSP en la acreditación CMMi

El cuarto paso de la metodología consistió en la integración de varios procesos de PSP en la Célula de Desarrollo de ITSUR para lograr con ello la acreditación CMMi nivel 2 y posteriormente el nivel 3. La acreditación internacional CMMi se otorga a empresas o unidades dedicadas al desarrollo de software.

 

CMMI es el acrónimo de Capability Maturity Model Integration. Es un modelo que contiene las mejores prácticas que ayudan a las organizaciones a mejorar sus procesos de desarrollo de aplicaciones de software. Fue desarrollado por equipos de trabajo formados por especialistas de la industria, el gobierno y el Software Engineering Institute (SEI) que transfirió los derechos al CMMi Institute para su operación y comercialización.

 

La adecuada interpretación del modelo para cubrir las diferentes situaciones, necesidades y objetivos de una organización son esenciales para lograr los resultados que se quieren. CMMi es una guía que ayuda en la mejora de procesos. El enfoque del modelo permite evolucionar desde un proceso en crisis hasta llegar a un proceso controlado, estandarizado, medido y optimizado que sienta las bases de la mejora continua y permite a la organización adoptar nuevas prácticas sobre un proceso estable y controlado que está institucionalizado.

 

Las metodologías Team Software Process (TSP) y PSP tienen una fuerte relación con la acreditación CMMI. McHalle et. all (2008) mencionan varias razones de esta relación, entre ellas, afirman que básicamente CMMi es la suma de TSP y PSP. Además, mencionan que combinados logran cubrir tanto el desempeño y la eficiencia operacional en cuestiones técnicas de desarrollo de software con TSP/PSP como cuestiones administrativas, organizacionales y de institucionalización de procesos con CMMi.

 

El método de estimación PROBE de PSP se tomó como base para desarrollar el método de estimación de esfuerzo que se utilizó en CMMi, además este método fue señalado en la evaluación SCAMPI como una de las fortalezas del Centro de Desarrollo de Software.

 

Otra de las áreas de proceso de CMMi que se vio influenciada por PSP fue la de Measurement and Analysis (MA) debido principalmente al enfoque claramente cuantitativo de la metodología PSP que incluye varias métricas relacionadas al desarrollo de software de forma individual pero que pueden proyectarse a nivel institucional.

 

En el nivel 3 de CMMi se incluyen, entre otras, las áreas de proceso Technical Solution, Verification y Validation. Derivado de PSP se desarrollaron aspectos relacionados a la solución técnica de los productos, las áreas de verificación y validación tienen una fuerte relación con las revisiones entre pares de PSP.

 

Todas estos conocimientos facilitaron que se lograra el nivel 3 de CMMi en el ITSUR, siendo una de las pocas instituciones de educación superior en el mundo que cuenta con una unidad de desarrollo de software formada por docentes y alumnos que tiene este nivel de acreditación internacional.

 

PSP y las competencias de programación

La última etapa de la implementación de PSP en el ITSUR consistió en tomar las buenas prácticas de PSP para los concursos de programación en los que participa la institución desde hace varios años. La competencia más importante de este tipo a nivel universitario es el ACM International Collegiate Programming Contest (ACM-ICPC). Las fases de diseño de código e inspecciones fueron incluidas en el entrenamiento para este tipo de concursos lo cual ayudó de manera significativa a obtener mejore resultados.

 

DISCUSIÓN DE RESULTADOS

Certificación

Todos los docentes del ITSUR que presentaron el examen de certificación lo aprobaron dejando de manifiesto el esfuerzo realizado para lograr el objetivo, además, se desarrolló un software para simular el examen de certificación mismo que fue compartido a compañeros de otras instituciones de educación superior para prepararse.

 

Resultados en el curso de titulación

El curso de titulación basado en PSP fue impartido a 17 alumnos del ITSUR, logrando 16 de ellos la titulación por este medio y además uno de los alumnos logró su certificación en PSP de manera gratuita mediante una beca conseguida por la institución.

 

Resultados de CMMi nivel 3

Son muy pocas las empresas de desarrollo que logran una certificación como la de CMMi.

González et. all (2014) mencionan que al finalizar el año 2013, existían 1389 certificaciones activas en CMMI- DEV ver 1.3 alrededor del mundo, estas certificaciones están repartidas en 53 países. Menciona también el estudio que durante 2013 solamente 3 empresas del Estado de Guanajuato lograron alguna acreditación de CMMi en cualquier nivel. El ITSUR fue una de estas tres empresas logrando el nivel 3.

 

Como ayudó en Concursos de programación

El ITSUR ha participado en el concurso de programación ACM-ICPC desde 2010 logrando un notorio incremento en su nivel competitivo año con año. Docentes con la certificación de PSP son los responsables del entrenamiento de los alumnos. En la Figura 2 se puede apreciar el incremento en las posiciones a nivel nacional que ha logrado el ITSUR desde 2010 hasta 2014, pasando del lugar 150 en 2010 hasta el lugar 8 de México y Centro América en el 2013. Además, se mantuvo en el top ten en el 2014 al lograr el décimo puesto.

 

 

Figura 2. Resultados de 2010 a 2014 del ITSUR a nivel nacional. Fuente: elaboración propia

 

El nivel competitivo en este concurso es bastante alto. Participa instituciones como la UNAM, El Instituto Politécnico Nacional, el Instituto Tecnológico de Monterrey, la Universidad Autónoma de Nuevo León entre otros. En la Figura 3 se observan los primeros lugares del año 2013, el ITSUR se ubicó en la posición número 8. Es muy importante destacar que ese año quedó por encima de cualquier instituto tecnológico federal o descentralizado del país.

 

 

Figura 3. Lista de primeros lugares a nivel nacional en el 2013. Fuente: http://icpc.baylor.edu/

 

CONCLUSIONES

PSP ha sido de gran utilidad en materias como Tópicos avanzados de programación, Desarrollo de Sistemas, Ingeniería de Software y muchas otras. Además ha impactado fuertemente el CDS ya que basados en PSP se desarrollaron procesos que sirvieron para lograr la certificación CMMi nivel 2 en el año 2010 y CMMi nivel 3 en el año 2013. Algunas de las áreas de proceso beneficiadas fueron la de métricas, estimación, y revisiones entre pares.

 

Las certificaciones pueden ser un pilar importante en la preparación de ingenieros en nuestro país. El ITSUR ha logrado aprovechar una certificación en ingeniería de software para beneficiar a sus alumnos desde diferentes perspectivas. Aprovechar al máximo las certificaciones es una tarea de los docentes de cada institución y de los directivos que teniendo la visión suficiente pueden lograr un beneficio máximo para los alumnos.

 

BIBLIOGRAFÍA

Ferguson, P., Humphrey, W., Khajenoori, S., Macke, S., & Matvya, A. (1997). Intriducing the Personal Software Proocess: Tree Industry Case Studies. IEEE Computer , 24-31.

 

González Meneses, Y. N., Nayely Yaline, L. P., Hernández Mora, J. J., & Medina Barrera, M. G. (2014). Análsis del estado actual de certificaciones CMMI-DEV ver. 1.3 año 2013 y 2014, a nivel Mundial y en México. Research in Computing Science , 121-134.

 

Hayes, W., & Over, J. W. (1997). The Personal Software ProcessSM (PSPSM): An Empirical Study of the Impact of PSP on Individual Engineers. Pittsburg: Carnegie Mellon University.

 

Humphrey, W. S. (2005). A discipline for Software Enginnering. Addison-Wesley.

 

Humphrey, W. S. (2000). The Personal Software Process. Pittsburg: Carnegie Mellon University.

 

Pomeroy-Huff, M., Cannon, R., Chick, T. A., Mullaney, J., & Nichols, W. (2009). The Personal Software ProcessSM (PSPSM) Body of Knowledge, Version 2.0 . Pittsburg: Carnegie Mellon University.

 

Seshagiri, G. (2000). Making Quality Happen: The Managers' Role, AIS Case Study. Peoria: Advanced Information Systems.



[1] Profesor de Tiempo Completo. Tecnológico Superior del Sur de Guanajuato. licgerman@itsur.edu.mx.

[2] Profesor de Tiempo Completo. Tecnológico Superior del Sur de Guanajuato. fj.martinez@itsur.edu.mx.

[3] Profesor de Tiempo Completo. Tecnológico Superior del Sur de Guanajuato. gi.vega@itsur.edu.mx.