Luis Miguel del Apio, PMP.
Las organizaciones actuales deben ser capaces de afrontar el reto de mejorar continuamente. En Telefónica I+D estamos comprometidos en ser una “learning organization”, lo que nos permite construir cada vez mejores productos mediante la gestión de Lecciones Aprendidas.
Desde hace más de un año, varios equipos de desarrollo software de Telefónica I+D han comenzado a utilizar una base de datos corporativa de lecciones aprendidas, compartiendo con el resto de la organización las lecciones generadas dentro del equipo y consultando las de otros equipos.
En este artículo ,quiero presentar alguna información interesante sobre las lecciones que los equipos han decidido compartir y nuestra selección de las 3 lecciones aprendidas que todos los equipos de desarrollo SW deberían poner en práctica.
En primer lugar, durante el primer año hemos superado la barrera de las 100 lecciones aprendidas. Se han recibido contribuciones de más de 10 equipos de desarrollo diferentes que provienen de 4 áreas de negocio: Vídeo, Cloud, Internet of Things e Innovación. Si echamos un vistazo a la categorización de estas lecciones, un 18% de las mismas están relacionadas con las empresas externas que colaboran en el desarrollo del producto, un 17% tienen que ver con especificaciones, un 15% han sido categorizadas como tecnológicas, un 15% se relacionan con la gestión del proyecto, un 12% con Calidad, y el resto se divide en otras nueve categorías.
Nuestra selección de las 3 lecciones más relevantes del último año, ordenadas de menor a mayor relevancia, es:
Lección número 3: Acuerda una forma de trabajo con las empresas externas con las que desarrollas el producto
En los productos en los que el desarrollo software es realizado por empresas externas es muy importante acordar una forma de trabajar al principio, en el contrato si es posible. Esta forma de trabajar (way of working) debe incluir: una metodología de desarrollo, identificación de roles dentro de la empresa tercera que sean equivalentes a los roles de nuestra organización con requisitos de todas las disciplinas de desarrollo SW (Desarrollo, Experiencia de Usuario, Calidad, Gestión de Proyectos, Despliegue y Operación, etc.), que permita garantizarnos el éxito en la construcción del producto.
Se recomienda incluir esta forma de trabajar dentro de un anexo del contrato con el tercero. Si esto no ha sido posible, debe definirse en la reunión de kick-off del proyecto.
Es también importante trabajar con terceros siguiendo los principios de desarrollo ágil, donde los cambios son bienvenidos y acordados en lugar de discusiones contractuales.
Lección número 2: Integra tu software de forma continua o al menos al final de cada iteración
Durante la fase de construcción es necesario realizar integraciones intermedias. La mejor opción es implementar mecanismos de integración continua. Si el equipo no está preparado todavía, es importante hacer al menos pruebas de integración al final de cada iteración de desarrollo software. Para esto, ayuda mucho el tener automatizadas las pruebas y el disponer de un entorno de integración continua.
Para proyectos largos, otro consejo de uno de nuestros equipos es probar el proceso de despliegue del software (instalación y marcha atrás) al final de cada iteración. La idea es ir probando el proceso de instalación de forma incremental para evitar complejas y dolorosas instalaciones la finalizar el proyecto.
Lección número 1: Crea equipos conjuntos con tus socios con responsabilidad end-to-end
Cuando la construcción de producto es realizada parcialmente por equipos de desarrollo internos y parcialmente por equipos de desarrollo externo, la forma más eficiente de trabajar es crear equipos mixtos con miembros de nuestra empresa y del tercero con responsabilidad end-to-end.
Es decir, es mejor organizar los equipos teniendo en cuenta funcionalidades end-to-end en lugar de tener equipos diferenciados por empresa. Esta forma de trabajar ayuda a evitar malentendidos, tiempos de espera debido a traspasos de trabajo entre equipos, etc.
Luis Miguel del Apio, PMP.
Trabajo en Telefónica desde 1997. A lo largo de los años he contribuido al Grupo Telefónica desarrollando y liderando proyectos de optimización de redes 2G, 3G y 4G, como analista tecnológico, coordinando proyectos globales de red y plataformas de servicio en LATAM, en desarrollo de negocio, como analista estratégico de red y como program manager. Durante los últimos años he estado combinando mi trabajo dentro de la organización transversal de la Disciplina de Program Management con apoyos puntuales en distintos productos (Cloud, BI, etc.). Actualmente, soy también el master de la Comunidad de Agile Project Management de Telefónica I+D.
Mi objetivo actual es contribuir a la mejora en la madurez de la gestión de proyectos en Telefónica