2. ESTADO DEL ARTE
2.1 ÁREAS DE CONOCIMIENTO
2.1.2 GESTIÓN DEL PROCESO
Un proceso de software se puede definir como “un conjunto coherente de políticas,
estructuras organizativas, tecnologías, procedimientos y artefactos que son necesarios para concebir, desarrollar, instalar y mantener un producto software” (Fuggetta et al.,
2005).
Un proceso encapsula la experiencia obtenida por la organización en forma de una “receta” exitosa (Jalote, 2002). La gestión del proceso establece un marco de trabajo para aplicar métodos, tecnologías y personas a la tarea de desarrollar software. La gestión del proceso abarca las siguientes actividades (Florac et al., 1997): definición del proceso, control del proceso, medición del proceso, mejora del proceso y ejecución del proceso. Los conceptos relacionados con esta tesis se relacionan con la definición y mejora del proceso como se observa en la Figura 2-2.
Figura 2-2. Actividades de gestión del proceso. 2.1.2.1 Definición del proceso
El proceso de software incluye actividades técnicas y administrativas para poder aplicar métodos, herramientas y personas durante las tareas de producción y mantenimiento de
software. Un proceso de software definido identifica roles y responsabilidades, y actividades junto con sus criterios de entrada, salida y medidas de proceso (Cuevas, 2002).
El objetivo de esta actividad es definir un proceso que sea claro y útil para el equipo de desarrollo. Existen diferentes formatos para representar un proceso, por ejemplo (Cuevas, 2002):
• Modelos generados en algún lenguaje para representar procesos.
• Formularios para recopilación de datos.
• Guiones que describen cómo realizar el proceso.
• Estándares para guiar el desarrollo y verificar el producto construido.
Un proceso definido permitirá que todas las personas en la organización conozcan y sigan el proceso, de tal manera que el proceso se “institucionalice” como una cultura corporativa y pueda ser ejecutado de forma “natural” por el equipo de desarrollo. Estas tareas sobre la presentación y uso del proceso en la organización son el objetivo del concepto denominado Despliegue del Proceso.
El despliegue del proceso cubre amplios aspectos concernientes con la motivación para la adopción del proceso en la organización, cómo facilitar mejor la adopción y cómo evaluar dicha adopción (Bayona et al., 2008).
El despliegue de procesos de software consiste en realizar los cambios al proceso y colocar el proceso en la práctica. Involucra un serie de actividades como: seleccionar los activos de proceso apropiados, adaptar los activos seleccionados a los requerimientos de la organización, proporcionar entrenamiento, adquirir e instalar los recursos necesarios, realizar soporte a la ejecución del proceso y evaluar que el proceso cumple los objetivos.
Un aspecto primordial en el despliegue del proceso de software es la presentación del proceso y desarrollar formas de promoverlo y usarlo. El despliegue del proceso se centra en las personas. El personal debe estar motivado y contar con soporte adecuado para buscar y utilizar el conocimiento encontrado y así realizar con éxito una tarea (Kaltio, 2001). Las tareas esenciales durante el despliegue del proceso de software son:
• Entrenamiento: En las diferentes áreas del proceso de la organización utilizando el proceso estándar como referencia.
• Adaptación: Consiste en asegurar que la instancia del proceso concuerde con las necesidades del negocio. Los proyectos no utilizan toda la información incluida en el proceso estándar, así que deben desarrollar un proceso específico para un determinado proyecto adaptando dicho proceso estándar.
• Aseguramiento de la calidad: Consiste en asegurar que las actividades y los productos de trabajo cumplan los estándares, procedimientos y requisitos aplicables.
2.1.2.2 Mejora del proceso de software
Aunque un proceso puede estar definido, no garantiza que se desarrollen productos que satisfacen los requisitos del cliente. Los procesos pueden ser mejorados por medio de una planificación e implementación de acciones que los modifiquen y así cumplir con los requisitos del cliente y los objetivos de negocio de la organización (Allison et al., 2007).
La mejora del proceso de software es un programa de actividades diseñado para mejorar el rendimiento y madurez de los procesos de la organización. El objetivo de la mejora es definir un conjunto de características claves y establecidas para guiar el esfuerzo en mejorar un proceso existente de una forma específica y medible, en términos del producto resultante o en la forma en que el proceso es ejecutado.
La mejora del proceso requiere dos etapas principales (Sheard, 2003):
• Definición de nuevas descripciones de procesos o la modificación de los procesos existentes.
• El uso por parte de la organización de esas nuevas o modificadas descripciones de procesos.
Con la implementación de la mejora del proceso, los cambios y refinamientos incrementan la capacidad de enfrentarse a los requisitos y a las expectativas del mercado (Fuggetta, 2000). Estas ideas han permitido la creación de modelos de calidad y métodos de mejora para el proceso de software:
• Un modelo de calidad define un modelo de referencia para valorar el estado de una organización y el grado de mejora alcanzado. Un modelo como Capability Maturity
Model - CMMI define las mejores prácticas que tratan sobre las actividades de
concepción a la entrega y el mantenimiento (SEI, 2006). CMMI define cinco posibles niveles de madurez de un proceso de software: inicial, gestionado, definido, cuantificado y optimizado, como se observa en la Figura 2-3.
Figura 2-3. Niveles de madurez de CMMI.
• Un método de mejora sugiere los pasos a ser realizados para mejorar la calidad de un proceso de software. Un modelo como IDEAL describe las principales fases y etapas necesarias para introducir la mejora del proceso de software en una organización y establecer una infraestructura que lo soporte (McFeeley, 1996). El modelo IDEAL está conformado por cinco etapas que forman un ciclo de mejora del proceso de software: iniciación, diagnóstico, establecimiento, actuación y aprendizaje, como se observa en la Figura 2-4.