En base al trabajo llevado adelante en GeneXus Consulting desde hace algunos años, en este artículo compartimos lo que aprendimos sobre la mejora de procesos de desarrollo de software basados en GeneXus.
Por @irocca
MOTIVACIÓN
Durante más de 25 años GeneXus Consulting ha desarrollado proyectos en múltiples sectores industriales y mercados. Si bien, la diversidad de dominios y contextos de proyectos es muy amplia, todos estos proyectos tuvieron una cosa en común, fueron desarrollados utilizando tecnología GeneXus. Hacia 2013, la diversidad de proyectos y la necesidad de consolidar años de experiencia y conocimiento en el desarrollo de software con GeneXus, hicieron posible el inicio de un proyecto de formalización y mejora de nuestro proceso de desarrollo.
EL CAMINO DE LA MEJORA
EVALUACIÓN INICIAL
Como primer paso, se llevó adelante una evaluación de los procesos utilizados al momento. Para esto, se tomaron como referencia múltiples modelos de buenas prácticas de desarrollo de software como, CMMI, ISO/IEC 12207, Entreprise SPICE, ISO/IEC 20000. De igual forma, se consideraron otras prácticas dentro de la Ingeniería del Software como Project Management Body Of Knowledge (PMBOK), Business Analysis Body of Knowledge (BABOK), International Software Testing Qualification Board (ISTQB), Scrum, entre otras.
Cerca del 80% de la organización participó en talleres de evaluación de cada proceso. En estos talleres realizó un análisis de Gap con las mejores prácticas, detectando oportunidades de mejora que fueron incluidas en un programa de mejora. Se definió además una estructura organizacional, basada en el modelo IDEAL, para posibilitar la implementación de la mejora y los nuevos procesos.
PROCESO DE MEJORA
La estructura para la mejora está conformada por un equipo guía, encargado de traducir los objetivos organizacionales en requerimientos de procesos. Un equipo de procesos, a cargo de planificar la implementación de los requerimientos establecidos por el equipo guía. Por último, para implementar e implantar los nuevos procesos se generan múltiples equipos de mejora. Con esta estructura es posible abarcar una buena parte de la organización en el proceso de mejora.
Cada equipo cuenta con un conjunto de oportunidades de mejora y luego de proponer alternativas a los distintos procesos, estos se validan mediante su aplicación en algún proyecto piloto. De esta forma, los nuevos procesos de la organización, no sólo son generados por personas que conocen los procesos actuales y pueden consolidar la experiencia existente, sino que además, se evalúan en la práctica y se corrigen previa implantación.
RESULTADOS
Durante el primer año se crearon 10 equipos de mejora que involucraron a más de la mitad de la organización. Como resultado, se generaron más de 100 activos de procesos que permitieron formalizar una nueva versión de nuestro framework de desarrollo, el GeneXus Consulting Development Framework. Este trabajo también nos permitió certificar bajo la norma ISO 9001:2008 los procesos de desarrollo de software. Los equipos de mejora fueron institucionalizados como mecanismo para mejorar continuamente y en los años siguientes se crearon entre 3 y 6 equipos por año, dependiendo de los aspectos seleccionados por el equipo guía.
Como resultado del trabajo se ha podido constatar mejoras cuantificables en la precisión de las estimaciones, una reducción en la densidad de defectos, por ende mejora en la calidad del producto final y aumentos en la productividad del equipo.
LECCIONES APRENDIDAS
Para finalizar, queremos presentar un conjunto de lecciones aprendidas y reflexiones que son de aporte a la hora de encarar la mejora de procesos de desarrollo de software.
En primer lugar es importante involucrar a las personas en todos los niveles de la organización. La base de un proceso de mejora, son las personas que definen, validan e implantan los nuevos procesos en la organización. Un aspecto importante para el éxito del proceso fue conservar la integración del equipo guía y el equipo de procesos a lo largo del tiempo.
Respecto a los equipos de mejora es importante integrar a las personas con interés en participar de manera de fomentar el intercambio de conocimiento y reducir la resistencia al cambio. Los equipos de mejora deben trabajar con tiempos acotados siguiendo una filosofía “time-boxed” de manera de mantener un ritmo constante a lo largo del tiempo y reducir así los conflictos con el trabajo diario.
De igual forma, la mayoría de los modelos de buenas prácticas como por ejemplo CMMI, ISO, etc. o metodologías como Unified Process o Scrum, definen que tipo de actividades se deben tener en cuenta en los procesos. En ese sentido, debemos adaptar estas actividades y prácticas a las particularidades del desarrollo de software con GeneXus intentando sacar el máximo provecho de la tecnología que utilizamos. Adaptar en lugar de implantar.
Por último, es importante identificar las mejoras que pueden resultar de alto impacto para la organización, pero cuyo costo de implementación es relativamente bajo. El camino de la mejora es largo y la comunicación resulta clave. Lograr victorias visibles afirman y allanan el camino, motivando la participación de las personas y su involucramiento.
Escrito por Ignacio Rocca, Consultor Senior en GeneXus Consulting.
Para comentar debe estar registrado.