En la actualidad muchos proveedores cotizan sus trabajos para brindar servicios profesionales en programación de aplicativos, sin embargo, las organizaciones de mayor tamaño y complejidad requieren algo más que un proveedor de servicios, en su lugar necesitan un socio que aporte beneficio a su cadena de valor. Para lograr esta contribución, es requerido que el socio tenga instrumentalizado un modelo de madurez para el desarrollo de software como “CMMi Development”. Este tipo de fábrica de software permite armonizar procesos, herramientas y colaboradores a través de la automatización, logrando resultados de alta calidad, dentro del presupuesto de tiempo y costo.
La definición e implementación de procesos ágiles son la base de una fábrica de software moderna. Desde la educción de necesidades a través de los “Dueños de Productos” apoyados por los “Analistas de Negocios” con el levantamiento de las historias de usuario del “Product Backlog”; hasta la incorporación temprana del equipo de “Testing” con el proceso de verificación de las historias de usuario y la generación de los casos de prueba. Igualmente, es fundamental la incorporación de un “Especialista en Experiencia de Usuario” que permita que a partir del “Story Boarding” se verifiquen las ideas antes de producirlas.
El diseño arquitectónico es fundamental desde el inicio del proyecto, con el objetivo de reducir el “re-factoring” en cada uno de los “sprints”, permitiendo al equipo de desarrollo comunicarse a través de una arquitectura previamente definidas con sus respectivas interfaces.
Otro proceso fundamental, es la integración del código fuente de forma continua, que permita la compilación y pruebas de integración a través de un “pipeline” automatizado; el cual en conjunto con el equipo de infraestructura logre la implementación en ambientes (virtuales y en nube), tales como desarrollo, pruebas, pre-producción, entre otros.
La automatización de las pruebas es un paso fundamental para el crecimiento sostenido de la fábrica de software, permitiendo un amplio conjunto de pruebas de regresión, en minutos, antes de una integración o un despliegue en un ambiente específico. La integración, entrega y despliegue continuo de aplicaciones en ambientes productivos depende de un proceso de “Testing automático” robusto, sin perder de vista las pruebas finales de aceptación del usuario (UAT).
Todo lo anterior, requiere de indicadores que sirvan como un “dashboard” de control operativo, para conocer la situación del proyecto en un momento específico del tiempo. Es fundamental, el análisis de esos indicadores y las posibles tendencias que se puedan observar. El negocio agradecerá una fábrica que realice implementaciones con frecuencia, que disminuya el tiempo promedio para un cambio, disminuya la tasa de fallos y reduzca el tiempo para detectar y reparar una falla.
Las organizaciones medianamente complejas requieren de modelos maduros como lo plantea CMMi, para evitar que el resultado sea diferente del esperado por el cliente. Hoy en día pocas organizaciones tienen sus procesos de ingeniería, proyectos y soporte tan alineados como una empresa que haya sido evaluada CMMi DEV /3 por el CMMi Institute.
Julio Córdoba, Gerente de Procesos e Información