QualDev Process: Procesos adaptables de desarrollo de software para proyectos ágiles Rubby Casallas Hugo F. Arboleda {rcasalla, h-arbole}@uniandes.edu.co Universidad de los Andes, Bogotá, Colombia Abstract The processes to be used during a software development project highly depend on the characteristics of the project. Among the characteristics we have those of the team project and those of the context in which the project is going to be carried out (clients, technology, constraints, etc.) We named agile project a high risk project with characteristics like an elevated labor turnover, new technology, a team geographically disperse, changing requirements, etc. On these kind of project is very difficult to prescribe the software engineering practices to be followed. In this paper we present a proposal of software processes called QualDev Process. The suggested processes in the proposal are suitable to improve the product quality, team productivity and to facilitate the maintenance of the product. The main ideas of the QualDev Process is the adaptability of the process and the continual improvement. The final result is a mixed of the called lightweight [7] process and those more defined like TSP [5] or CMMI [1]. The proposal includes besides of the practices to take into account to follow, a methodological way to put them in practice. This process has been used during the last two years in some software developments in agile projects, it has allowed us to validate the proposed practices. Key Words: Software Process, Quality, Process Adaptability, Life Cycle Models, Improvement Plan, Agile process. Resumen Los Procesos que deben ser utilizados durante el desarrollo de software dependen altamente de las características del proyecto. Entre estas características se encuentran las del grupo de desarrollo y las del contexto dentro del cual se trabajará (los clientes, la tecnología, las restricciones, etc.). Denominamos proyecto ágil aquel en el que sus características de alto riesgo (alta rotación de personal, tecnología nueva, dispersión geográfica, requerimientos cambiantes, etc.) dificulta el prescribir las prácticas de software que deben ser seguidas. En este artículo presentamos una propuesta de procesos de software para este tipo de proyectos denominada QualDev Process. Los procesos sugeridos son adecuados en términos de mejorar la calidad del producto, la productividad del equipo y la facilidad para realizar mantenimiento a los productos de software construidos. QualDev Process está basado en la idea de adaptabilidad de los procesos y de mejoramiento continuo. El resultado final es una mezcla de las propuestas de los procesos livianos (lightweight process) [7] y de procesos más definidos como TSP [5] o CMMI [1]. La propuesta, además de incluir el qué hacer incluye guías metodológicas de cómo llevar a cabo las prácticas. Este proceso se ha estado aplicando en los últimos dos años en algunos desarrollos de proyectos ágiles lo que nos ha permitido validar las prácticas. Palabras Claves: Proceso de software, Calidad, Adaptación de procesos, Contextos de desarrollo, Modelo de ciclo de vida de desarrollo, Plan de implantación, Mejora continua, Procesos ágiles. 1 Introducción A nivel mundial se manejan presupuestos elevados para desarrollo de software. Gran parte de estos presupuestos se gasta en desfases, cancelación de proyectos y mantenimiento del software. Requerimientos mal implementados, retrasos de cronogramas, baja calidad del producto y difícil mantenimiento del software son problemas recurrentes en los proyectos de desarrollo. Entre otras causas, se debe a la mala o ninguna administración del proceso de desarrollo, que lleva a ignorar las características del proyecto en el momento de escoger las mejores prácticas que se llevarán a cabo en cada etapa. Dentro de estas características se encuentran por ejemplo la tecnología de desarrollo y el recurso humano. Algunas respuestas a estos problemas son iniciativa del área de Procesos de Software. Es así como han surgido propuestas como el CMM [11], CMMI [1], SPICE [12], y TSP [5] entre otros. Estas propuestas tienen en común la idea fundamental de Mejoramiento Continuo. Sin embargo,