Scrum Distribuido: Administración Administración de Proyectos Agiles con Equipo de Desarrollo Outsourced Ing. Laura Garay
[email protected]
Ing. Cynthia González
[email protected]
Abstract A La administración de proyectos ágiles con Scrum deriva de las buenas prácticas de negocios realizadas por empresas empresas como Fuji-Xerox, Honda, Canon y Toyota. Scrum es una Metodología de desarrollo de software Agil, elaborado o para aumentar la energía, el enfoque, la claridad y la transparencia a los equipos de desarrollo en proyectos de sistemas de software. Un Scrum correctamente implementado aumenta la velocidad de desarrollo, alinea los objetivos individuales con los de la organización, crear una cultura impulsada por el rendimiento y lograr una comunicación estable y consistente consistente en todos los niveles y finalmente mejora el desarrollo individual y la calidad de vida. Scrum se ha diseñado para permitir a los desarrolladores auto-organizarse en equipos de alto rendimiento para lograr un estado hyperproductivo donde la productividad aumenta en una magnitud superior al promedio de la industria. ¿Puede Scrum hacer lo mismo con equipos distribuidos en todo el mundo y con equipos de Desarrollo Outsourced? Dos empresas ágiles, SirsiDynix y Starsoft han alcanzado rendimientos de hiperproductividad al desarrollar una aplicación Java con más de 1.000.000 de líneas de código. Durante el año 2005, un equipo distribuido con 56 desarrolladores Scrum trabajando desde Provo, Utah; Waterloo, Canadá, y San Petersburgo, Rusia, entregó 671.688 líneas de producción de código Java. Las buenas prácticas SirsiDynix son similares a las observadas en los equipos distribuidos de Scrum en IDX Systems, radicalmente diferente a lo que se promueven por el PMBOK, y contrario a las prácticas recomendadas por la Scrum Alliance. En este trabajo se analiza y recomiendan las buenas prácticas para equipos Agiles mundialmente distribuidos
Ing. Carlos Garay
[email protected]
Ing. Fabian Castillo
[email protected]
El sprint es por tanto el núcleo central que proporciona la base de desarrollo iterativo e incremental. incremental. Los elementos que conforman el desarrollo de Scrum son: Las reuniones:
Planificación de Sprint, Reunión diaria, Revisión de sprint
Los elementos:
Pila del producto, Pila del Sprint, Incremento
Los roles:
Scrum clasifica a todas las personas que intervienen o tienen interés en el desarrollo del proyecto en: Propietario del producto Equipo de desarrollo , Scrum Master Otros interesados
2. SCRUM Distribuido
Variante de Scrum adaptada a los ambientes distribuidos, donde los diferentes participantes del Proyecto no comparten una misma ubicación física y/o temporal. Las empresas estadounidenses, europeas o japonesas frecuentemente externalizan el desarrollo de software en Europa del Este, Rusia, o en el Oriente. Oriente. Normalmente, Normalmente, los equipos remotos remotos operan independientes y los problemas de comunicación limitan la productividad. Aunque hay una gran cantidad de investigaciones publicadas sobre la gestión de proyectos, desarrollo distribuido, y estrategias outsourcing como dominios aislados, existen pocos estudios detallados sobre las mejores prácticas de gestión proyectos de grandes sistemas que son son a la vez distribuidos y outsourced. outsourced.
3. Modelos de Equipos Distribuidos 1. Qué es SCRUM?
Formalmente podemos decir que es una Metodología Ágil de Gestión de Proyectos que se basa en la adaptación continua a las circunstancias evolutivas del Proyecto apoyándose en iteraciones cortas conocidas como Sprints a través del siguiente ciclo:
Vamos a considerar tres modelos de equipos distribuidos Scrum que se observan comúnmente en la práctica. Los equipos están geográficamente aislados. En la mayoría de los casos los equipos off-shore no son interfuncionales y no se puede usar el proceso de Scrum.
Scrums Aislados:
Los equipos de Scrum aislados geográficamente e integrado por un Scrum de Scrums que se reúne periódicamente en diferentes zonas geográficas. Distribuido Scrum de Scrum:
Scrums Totalmente Integrado :
Equipos de Scrum son multifuncional con miembros distribuidos geográficamente. En el caso de SirsiDynix, el Scrum de Scrum fue localizado con ScrumMasters en Utah.
1
7. ¿Un gran equipo distribuido, y outsourced, puede lograr el estado hiperproductivo?
4. El Caso SirsiDynix
SirsiDynix tiene aproximadamente 4.000 librerías y atiende a más de 200 millones de personas a través de más 20.000 puntos de venta de librerías en América, Europa, África, los Oriente Medio y Asia-Pacífico. Jack Blount, presidente y Director general negoció un acuerdo de outsourcing con Starsoft Development Labs, Inc. que es un proveedor de servicios de software externalizado en Rusia y Europa del Este. Starsoft opera centros de desarrollo en San Petersburgo, Rusia y Dnepropetrovsk, Ucrania, emplea a más de 450 profesionales. Hitos importantes del desarrollo se completaron en conjunto en unas pocas semanas con un desarrollo eficiente. Starsoft utiliza con éxito el desarrollo ágil y XP como práctica de ingeniería para mantener el nivel 3 de certificación CMM.
5. Costos Ocultos de Outsourcing
Los grandes proyectos de software son por lo general de muy alto riesgo. El informe realizado por Standish Chaos Report 2003 muestra tasas de éxito de sólo 34%. 51% de los proyectos son sobre el presupuesto o con falta de funcionalidad crítica. 15% con errores totales SirsiDynix evitó muchos de los costos ocultos y logró el objetivo de incrementar linealmente el output conforme al crecimiento del equipo de desarrollo. Alcanzando una velocidad de producción de más del doble cuando las 30 personas del equipo de desarrollo de Norte América fue ampliado con 26 Rusos de Starsoft en diciembre de 2005.
6. SCRUM Distribuido: Problemas Los principales problemas que tuvieron que ser manejados por SirsiDynix y StarSoft fueron. Estratégicos De proyectos y de Administración de procesos De Comunicación Cultural Técnicos Seguridad
2
La colaboración de SirsiDynix y StarSoft (outsourced) convirtió el proyecto Horizon 8.0 en uno de los proyectos más productivos de Scrum jamás documentados con una tasa de ejecución de cinco veces de la industria promedio. El proyecto que fue realizado inicialmente con un equipo en cascada y luego re-implementado con un equipo de Scrum . El equipo de cascada tomó 9 meses con 60 personas y genero 54000 líneas de código. Fue re-implementado por un equipo de Scrum de 4,5 personas en 12 meses, generando 50.803 líneas de código con más funcionalidad y mayor calidad. La experiencia de SirsiDynix con Scrum combinado con éxito StarSoft con XP llevaron a elegir una implementación del Modelo Scrum integrado. En el caso SirsiDynix y StarSoft es una prueba de que los equipos distribuidos geográficamente e incluso los equipos subcontratados pueden ser tan productivos y alcanzar un estado de hiperproductividad como un pequeño equipo fijo. Esto requiere una excelente implementación de Scrum junto con buenas prácticas de ingeniería. Todo el conjunto de equipos debe funcionar como un solo equipo con un repositorio global, una herramienta de seguimiento, reportes y reuniones diarias distribuidas geográficamente. Los equipos de Outsourced deben ser equipos ágiles altamente calificados y la implementación del proyecto debe exigir la transparencia geográfica con equipos multidisciplinarios en sitios remotos, totalmente integrados con equipos multidisciplinarios en el sitio primario. En el caso de SirsiDynix, los equipos se ejecutan desde un sitio central dando fuerte control central. Es muy poco probable que los equipos distribuidos geográficamente y tercerizados alcancen altos niveles de rendimiento. Por lo tanto, SirsiDynix ha establecido un nuevo estándar de buenas prácticas para equipos de outsourced distribuidos globalmente con un alto nivel de rendimiento.
8. Referencias:
Distributed Scrum: Agile Project Management with Outsourced Development Teams” – Paper presentado en 40th Hawaii International Conference on System Sciences – 2007 “Scrum Manager En busca de la excelencia del Código”
Febrero-2012 - Raúl Herranz Serrano “The Scrum Primer” - Pete Deemer, Gabrielle Benefield, Craig Larman, Bas Vodde