Plantilla del CIO para la Adopción del Método ... - Rally Software
Plantilla del CIO para la Adopción del Método ... - Rally Software
Plantilla del CIO para la Adopción del Método ... - Rally Software
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>P<strong>la</strong>ntil<strong>la</strong></strong> <strong>del</strong> <strong>CIO</strong> <strong>para</strong> <strong>la</strong> Adopción<br />
<strong>del</strong> Método Scrum <strong>para</strong> Obtener<br />
Agilidad en <strong>Software</strong><br />
Whitepaper<br />
Con Dean Leffingwell y Hubert Smits<br />
Las presiones de una economía verdaderamente global hacen que<br />
<strong>la</strong>s empresas de hoy dependan cada vez más de su habilidad <strong>para</strong><br />
producir software como su principal ventaja competitiva. Sea software<br />
<strong>para</strong> gestionar procesos de manufactura o entrega de productos, o<br />
software que mejore <strong>la</strong> eficiencia de <strong>la</strong>s actividades diarias, el impacto<br />
de este software se extiende a todas <strong>la</strong>s áreas de los negocios.<br />
Este documento describe como implementar Scrum en una<br />
organización, inclusive como esca<strong>la</strong>r Scrum en proyectos de gran<br />
envergadura y/o en proyectos con un sin número de equipos,<br />
los desafíos que puedan surgir , y los beneficios de Scrum. Este<br />
documento también provee una p<strong>la</strong>ntil<strong>la</strong> <strong>para</strong> <strong>la</strong> adopción de Scrum<br />
en organizaciones en <strong>la</strong>s que el desarrollo de software es primordial<br />
<strong>para</strong> obtener una alta ventaja competitiva.<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
1
Índice<br />
INTRODUCCIÓN.................................................................................................................................4<br />
VISIÓN GENERAL DE SCRUM Y DE LA AGILIDAD DEL SOFTWARE.............................................5<br />
PRINCIPIOS SCRUM.................................................................................................................................................... 6<br />
ADOPCIÓN DE UN PROCESO EMPÍRICO X DE UN PROCESO PLANIFICADO........................................................ 7<br />
ELIMINE LOS OBSTÁCULOS PARA QUE EL EQUIPO PUEDA HACER SU TRABAJO.............................................. 7<br />
MEJORES RESULTADOS, PERO MENOS PREDECIBLES X FALSA SEGURIDAD.................................................... 8<br />
SCRUM Y LA AGILIDAD DE LOS SOFTWARE............................................................................................................. 8<br />
PREPARÁNDOSE PARA SCRUM.......................................................................................................9<br />
“SCRUMMING” TANTO EN EL PROCESO DE SOFTWARE COMO EN LA ORGANIZACIÓN.................................. 10<br />
EL PAPEL DEL <strong>CIO</strong> COMO SCRUMMASTER ORGANIZA<strong>CIO</strong>NAL PARA LA MEJORA CONTINUA....................... 10<br />
CUIDADO: CAMBIAR ES UN TRABAJO DURO......................................................................................................... 11<br />
UNA PLANTILLA PARA LA ADOPCIÓN DE SCRUM.......................................................................13<br />
PLAY 0 - DESCRIPCIÓN, EVALUACIÓN Y PREPARACIÓN DEL PILOTO................................................................. 13<br />
PLAY 1 - PROYECTO(S) PILOTO................................................................................................................................ 14<br />
PLAY 2 – EXPANSIÓN ORGANIZA<strong>CIO</strong>NAL................................................................................................................ 15<br />
PLAY 3 – CAUSANDO IMPACTO................................................................................................................................ 16<br />
PLAY 4 - MIDA, EVALÚE Y AJUSTE........................................................................................................................... 17<br />
PLAY 5 – EXPANDA Y CONQUISTE........................................................................................................................... 18<br />
IMPEDIMENTOS ORGANIZA<strong>CIO</strong>NALES PARA LA ADOPCIÓN DE SCRUM.................................19<br />
EXPONIENDO LOS IMPEDIMENTOS CON SCRUM.................................................................................................. 19<br />
CARACTERIZANDO LOS IMPEDIMENTOS............................................................................................................... 20<br />
ESCALAMIENTO DE SCRUM..........................................................................................................22<br />
ESCALAMIENTO DE LA ORGANIZACIÓN: EQUIPOS DE EQUIPOS DE SCRUM.................................................... 22<br />
LA ORGANIZACIÓN SIGUE LA ARQUITECTURA...................................................................................................... 23<br />
COORDINANDO EQUIPOS DE EQUIPOS.................................................................................................................. 23<br />
COMUNICACIÓN DIARIA: SCRUM OF SCRUMS...................................................................................................... 24<br />
PLANIFICACIÓN Y MONITOREO DEL RELEASE AL NIVEL DE SISTEMA............................................................... 24<br />
INFRAESTRUCTURA DE HERRAMIENTAS PARA AGILIDAD CORPORATIVA......................................................... 25<br />
PERSONAS Y COMUNICACIÓN................................................................................................................................. 25<br />
OPORTUNIDADES DE LA INFRAESTRUCTURA DE HERRAMIENTAS.................................................................... 26<br />
EVOLU<strong>CIO</strong>NANDO LA INFRAESTRUCTURA EN SPRINTS....................................................................................... 28<br />
CONCLUSIÓN...................................................................................................................................29<br />
BIBLIOGRAFIA.................................................................................................................................30<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
2
APÉNDICE A - RECURSOS..............................................................................................................31<br />
LECTURAS SELEC<strong>CIO</strong>NADAS................................................................................................................................... 31<br />
ENTRENAMIENTO ÁGIL............................................................................................................................................. 31<br />
OTROS......................................................................................................................................................................... 31<br />
APÉNDICE B – EL MANIFIESTO ÁGIL.............................................................................................32<br />
PRINCIPIOS DETRÁS DEL MANIFIESTO ÁGIL......................................................................................................... 32<br />
DELIVERABLES Y CAMBIOS...................................................................................................................................... 32<br />
PERSONAS Y COMUNICACIÓN................................................................................................................................. 33<br />
FEEDBACK.................................................................................................................................................................. 33<br />
CRÉDITO A LOS LÍDERES DE LOS MÉTODOS ÁGILES........................................................................................... 33<br />
APÉNDICE C – MÉTRICAS DE SCRUM..........................................................................................34<br />
TABLA 1 – MÉTRICAS DEL PROCESO SCRUM (HARTMANN, STALLINGS)........................................................... 34<br />
TABLA 2 – MÉTRICAS DEL PROYECTO SCRUM (RALLY SOFTWARE DEVELOPMENT CORP.)............................ 36<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
3
Introducción<br />
Las presiones de una economía verdaderamente global hacen que <strong>la</strong>s empresa de hoy<br />
dependan cada vez más de su habilidad <strong>para</strong> producir software como su principal ventaja<br />
competitiva. Sea software <strong>para</strong> gestionar procesos de manufactura o entrega de productos,<br />
o software que mejore <strong>la</strong> eficiencia de <strong>la</strong>s actividades diarias, el impacto de este software se<br />
extiende a todas <strong>la</strong>s áreas de los negocios.<br />
Pese a estas presiones, <strong>para</strong> muchas organizaciones, <strong>la</strong>s prácticas de desarrollo de<br />
software continúan siendo simi<strong>la</strong>res a <strong>la</strong>s utilizadas en <strong>la</strong> decada de los años ochenta. La<br />
dependencia en métodos <strong>del</strong> tipo cascada (waterfall), normativos y basados en p<strong>la</strong>nes a<br />
<strong>la</strong>rgos p<strong>la</strong>zos, a pesar de <strong>la</strong>s evidencias de que estas prácticas normalmente no logran<br />
proveer valor real en tiempo adecuado y, por consiguiente, dificultan <strong>la</strong> capacidad de<br />
respuesta de nuestras instituciones a <strong>la</strong>s necesidades de cambios rápidos de los clientes y<br />
de <strong>la</strong>s condiciones de los mercados. Y esto situación tiende a agravarse.<br />
Las organizaciones de TI de hoy también<br />
necesitan coordinar de forma eficaz<br />
Gestionar organizaciones<br />
a equipos de desarrollo de software<br />
distribuidas y migrar de forma<br />
distribuidos por el mundo entero enofcados<br />
eficaz <strong>para</strong> arquitecturas orientadas<br />
en regernera sistemas legacy en arquitecturas<br />
a servicios exige un nuevo enfoque<br />
más flexibles y orientadas a servicios. Es<br />
de desarrollo de software<br />
evidente que necesitamos de un nuevo<br />
enfoque <strong>para</strong> gestionar y desarrol<strong>la</strong>r software<br />
<strong>para</strong> mantener <strong>la</strong>s competitividad de nuestras instituciones.<br />
Para resolver estos desafíos, están siendo adoptadas varios métodos de desarrollo de<br />
software más ágiles y adaptables que permiten a <strong>la</strong>s organizaciones suministrar software de<br />
mejor calidad en formar más rápida. Scrum es uno de estos métodos comprovados que ha<br />
tenido un alto nivel de adopción en muchas organizaciones de software. Este documento<br />
técnico describe como un <strong>CIO</strong> u otro gerente <strong>del</strong> área de informática puede implementar<br />
Scrum en toda <strong>la</strong> organización, incluso pudiendo esca<strong>la</strong>rlo <strong>para</strong> aplicaciones mayores y<br />
equipos de equipos - los desafíos que él o el<strong>la</strong> irán a enfrentar, así como también los frutos<br />
que podrán obtener- y suministra una p<strong>la</strong>ntil<strong>la</strong> <strong>para</strong> <strong>la</strong> adopción de Scrum en empresas<br />
donde el software, muchos software, es primordial <strong>para</strong> tener una ventaja competitiva en el<br />
mercado.<br />
Esta es una p<strong>la</strong>ntil<strong>la</strong> de ideas sobre como implementar Scrum en una empresa. La<br />
consideramos una p<strong>la</strong>ntil<strong>la</strong> y no un manual porque cada organización tiene características<br />
diferentes. La implementación de Scrum dentro de una determinada empresa puede ser<br />
significativamente diferente de su implementación en otra. Los tipos de impedimentos, los<br />
elementos que requieran cambios, <strong>la</strong> dificultad <strong>del</strong> cambio y <strong>la</strong>s personas que harán los<br />
cambios son diferentes, así como los calendarios, <strong>la</strong>s prioridades y el esfuerzo.<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
4
Visión General de Scrum y de <strong>la</strong> Agilidad <strong>del</strong> <strong>Software</strong><br />
Superficialmente, Scrum es un proceso muy simple: una técnica de administración<br />
de software que tiene un conjunto re<strong>la</strong>tivamente pequeño de prácticas y reg<strong>la</strong>s<br />
interre<strong>la</strong>cionadas, no es demasiado prescriptiva, se puede aprender rápidamente y es capaz<br />
de producir ganancias de productividad casi inmediatamente.<br />
Scrum foca naturalmente una organización entera en <strong>la</strong> creación de productos de éxito.<br />
Suministra funcionalidades útiles a intervalos regu<strong>la</strong>res a <strong>la</strong> medida que los requisitos, <strong>la</strong><br />
arquitectura y el diseño van emergiendo, mismo cuando se utilizan tecnologías inestables.<br />
Ud. puede implementar Scrum en el comienzo o en medio de un proyecto y Scrum ahorrará<br />
muchos esfuerzos de desarrollo que estaban en dificultades.<br />
Scrum funciona porque optimiza el ambiente de desarrollo, reduce los gastos generales de<br />
organización y sincroniza rigurosamente los requisitos <strong>del</strong> mercado con <strong>la</strong> rápida entrega<br />
de funcionalidades. Fundamentado en una moderna teoría de control de procesos, Scrum<br />
produce el mejor software posible con los recursos disponibles, los niveles de calidad<br />
aceptables y <strong>la</strong>s fechas de release exigidas.<br />
En su esencia, Scrum es un proceso iterativo e incremental <strong>para</strong> desarrollo de cualquier<br />
producto o gestión de cualquier trabajo que produzca un conjunto potencialmente<br />
entregable de funcionalidades al término de cada de iteración. Sus atributos son:<br />
• Un proceso ágil <strong>para</strong> gestionar y contro<strong>la</strong>r el trabajo de desarrollo.<br />
• Un envoltorio <strong>para</strong> <strong>la</strong>s prácticas de ingeniería existentes.<br />
• Un enfoque basado en el equipo de desarrollo de sistemas cuando <strong>la</strong>s necesidades están<br />
cambiando rápidamente.<br />
• Contro<strong>la</strong> el caos generado por los conflictos de intereses y necesidades.<br />
• Mejora <strong>la</strong> comunicación y maximiza <strong>la</strong> cooperación.<br />
• Detecta y elimina cualquier cosa que se interponga en el camino <strong>del</strong> desarrollo y entrega<br />
de productos.<br />
• Una forma de maximizar <strong>la</strong> productividad.<br />
• Se puede esca<strong>la</strong>r desde proyectos individuales hasta organizaciones enteras y se ha<br />
aplicado a <strong>la</strong> gestión <strong>del</strong> desarrollo de productos y proyectos interre<strong>la</strong>cionados en que<br />
participaron más de mil miembros <strong>del</strong> equipo.<br />
• Una forma de hacer que todos se sientan bien con su trabajo sus contribuciones, y saber<br />
que hicieron lo mejor que podrían haber hecho.<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
5
Aunque <strong>la</strong> descripción de <strong>la</strong>s prácticas de Scrum en detalle está más allá <strong>del</strong> alcance de<br />
este documento técnico (véase Schwaber Schwaber 2004 y 2002), el método se caracteriza<br />
por <strong>la</strong> producción de un Backlog <strong>del</strong> Producto en el que <strong>la</strong>s características requeridas<br />
están organizadas por prioridad (Figura 1). Un Product<br />
Owner se encarga de aprobar los cambios en el backlog<br />
<strong>del</strong> producto. La ejecución se produce en interacciones de<br />
aproximadamente<br />
30 días, l<strong>la</strong>madas<br />
Sprint, que se<br />
centran en <strong>la</strong>s más<br />
altas prioridades <strong>del</strong><br />
Backlog <strong>del</strong> Producto.<br />
El objetivo de cada<br />
Sprint es <strong>la</strong> entrega<br />
de un incremento de<br />
1<br />
2<br />
3<br />
4<br />
Product Backlog<br />
prioritized product features<br />
desired by the customer<br />
1<br />
Sprint Backlog<br />
features assigned<br />
to a sprint<br />
Sprint backlog items<br />
expanded by<br />
the team<br />
30-day sprint<br />
Scrum<br />
15-minute daily meeting,<br />
each team member reviews:<br />
1. What did you do since the<br />
<strong>la</strong>st Scrum meeting?<br />
2. Do you have any obstacles?<br />
3. What will you do before<br />
next meeting?<br />
new functionality is<br />
demonstrated at the<br />
end of the Sprint<br />
producto potencialmente entregable. Durante el Sprint, se observan los puntos de control<br />
en una reunión de “Scrum”, que informa de los progresos y actividades diarias dentro <strong>del</strong><br />
equipo y se comparten problemas que puedan “bloquear” el progreso de un individuo o un<br />
equipo. Esto permite al ScrumMaster determinar el progreso de los compromisos <strong>del</strong> Sprint<br />
y ayudar a corregir el rumbo <strong>para</strong> asegurar <strong>la</strong> conclusión exitosa <strong>del</strong> Sprint.<br />
Principios Scrum<br />
Aunque estos sean algunos de los mecanismos de Scrum, lo más importante es que el <strong>CIO</strong><br />
entienda que el método Scrum es guiado por algunos principios generales:<br />
• La convicción de que el desarrollo de software eficiente se implementa mejor a través de<br />
un proceso empírico de que a través de un proceso p<strong>la</strong>nificado;<br />
• La convicción de que, una vez eliminados los obstáculos de organización, un equipo<br />
auto-organizado y autogestionado, naturalmente, va a producir mejor software que lo<br />
haría en <strong>la</strong> situación contraria;<br />
• La premisa que se puede producir software más valioso dentro de un p<strong>la</strong>zo y<br />
presupuesto determinado, pero definitivamente no se puede predecir <strong>la</strong> funcionalidad<br />
exacta de lo que un equipo va a entregar<br />
La afirmación de Scrum es que el reconocimiento de estos principios fundamentales libera<br />
una organización de muchas de <strong>la</strong>s restricciones que impiden el desarrollo de software<br />
eficiente. Sin embargo, los <strong>CIO</strong>s también tienen que reconocer que estos principios implican<br />
cambios potencialmente significativos en <strong>la</strong> organización que decide adoptarlos. Dado que<br />
estos principios constituyen <strong>la</strong> base fundamental de Scrum, cada uno merece una discusión<br />
adicional.<br />
every<br />
24<br />
hours<br />
Figura 1: Un Mo<strong>del</strong>o de proceso empírico que caracteriza el Scrum<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
6
Adopción de un Proceso Empírico x de un Proceso P<strong>la</strong>nificado<br />
El método Scrum considera que <strong>la</strong> mayoría de los sistemas de desarrollo de hoy en día<br />
tienen una base filosófica incorrecta, es decir, mediante una p<strong>la</strong>nificación mayor y mejor<br />
se pueden lograr resultados más predecibles de mayor calidad. Scrum reconoce que el<br />
proceso de desarrollo de aplicaciones es impredecible y extraordinariamente complicado<br />
(imagine cientos de miles de líneas de código creadas manualmente) cuyo valor sólo se<br />
puede medir empíricamente. Después de todo, <strong>la</strong> aplicación en desarrollo probablemente<br />
nunca ha sido desarrol<strong>la</strong>da por cualquier equipo en cualquier lugar, y mucho menos por<br />
su equipo en su contexto, por lo que los métodos de p<strong>la</strong>nificación de <strong>la</strong> c<strong>la</strong>se de libros de<br />
cocina, paso a paso, no pueden resolver <strong>la</strong> imprevisibilidad inherente de manera efectiva.<br />
Scrum define el proceso de desarrollo de sistemas como un conjunto de actividades<br />
libres, que combina <strong>la</strong>s herramientas y técnicas conocidas y ejecutables con un equipo<br />
capacitado que está firmemente vincu<strong>la</strong>da al Cliente/Product Owner. Dado que muchas de<br />
estas actividades están sueltas, se aplican controles - como <strong>la</strong> inspección y demostración<br />
constante - <strong>para</strong> gestionar el riesgo y proporcionar evidencia empírica de <strong>la</strong> situación <strong>del</strong><br />
proyecto en tiempo real, todo el tiempo.<br />
La opción por Scrum es simple:<br />
Sepas dónde estás cada día con Scrum<br />
- o -<br />
Creas que sabes donde estás en tu p<strong>la</strong>n bien formado y descubras que estás muy<br />
equivocado, mucho más tarde<br />
Elimine los obstáculos <strong>para</strong> que el equipo pueda hacer su trabajo<br />
Con los años, los procesos de negocio de una empresa y sus prácticas de desarrollo de<br />
software generalmente aumentan de peso, a menudo haciendo <strong>la</strong> creación de software un<br />
gran esfuerzo. Cuando se implementa Scrum, estos “impedimentos organizacionales” <strong>para</strong><br />
<strong>la</strong> distribución eficiente de software se hace muy evidente, porque obstaculizan <strong>la</strong> capacidad<br />
<strong>del</strong> equipo con respecto al cumplimiento de <strong>la</strong> rápida naturaleza iterativa e incremental de<br />
Scrum. Eliminar o cambiar estos procesos y prácticas puede mostrar que un proyecto de<br />
grandes cambios debe ser iniciado, dirigido y supervisado por el <strong>CIO</strong> o ejecutivo campeón<br />
(más sobre este tema más a<strong>del</strong>ante).<br />
Además, en Scrum, el equipo es <strong>la</strong> cosa. Al final de cuentas, ellos son los que de hecho<br />
proyectan, desarrol<strong>la</strong>n y suministran <strong>la</strong> aplicación, así, cuando optimizamos su desempeño<br />
eliminando obstáculos, optimizamos el desempeño de <strong>la</strong> empresa <strong>para</strong> suministrar valor a<br />
sus usuarios. La gerencia cumple con su papel cuando elimina impedimentos. El Equipo<br />
cumple con su papel cuando honra sus compromisos según lo descrito en el Backlog de<br />
cada Sprint.<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
7
En otras pa<strong>la</strong>bras, en Scrum, el equipo es tanto capacitado como responsable de<br />
suministrar los bienes. Hace su trabajo cuando auto-organiza, auto-genera y auto-cumple<br />
los objetivos <strong>del</strong> Sprint. Para muchas organizaciones, esto significa cambiar <strong>la</strong>s cosas al<br />
revés. El abordaje jerárquico-técnico-gerencial-directivo es esencialmente eliminado por el<br />
Scrum. El Product Owner ahora define los objetivos y prioridades, el equipo piensa como<br />
atenderlos y nadie tiene que enseñarlos como hacerlo durante el proceso.<br />
Mejores Resultados, Pero Menos Predecibles x Falsa Seguridad<br />
El Scrum comienza con <strong>la</strong> premisa de que <strong>la</strong> creación de software es un negocio complicado<br />
que opera en un ambiente técnico y altamente fluido y que nadie puede prever con<br />
seguridad o p<strong>la</strong>nificar definitivamente qué exactamente un equipo irá a entregar, cuando va<br />
a hacerlo y cual será <strong>la</strong> calidad y el coste. En su lugar, el Scrum entiende que los equipos<br />
pueden estimar estos ítems, informar <strong>la</strong>s estimaciones, negociar un p<strong>la</strong>n de corto p<strong>la</strong>zo<br />
de acuerdo a los varios riesgos y ajustarse conforme avanza. El acuerdo es que el equipo<br />
deberá suministrar el mejor software posible dado <strong>la</strong>s circunstancias y que <strong>la</strong> adopción de<br />
cualquier abordaje “libro de cocina” no va a mejorar <strong>la</strong> definición de “el mejor” y sólo va a<br />
comprometer <strong>la</strong> rapidez de respuesta <strong>del</strong> equipo a <strong>la</strong> complejidad e imprevisibilidad real<br />
existente.<br />
Históricamente, <strong>la</strong> ignorancia de esta filosofía crea varios problemas de organización:<br />
• La gerencia realmente cree que puede prever el costo, <strong>la</strong> programación de entrega y <strong>la</strong><br />
funcionalidad que será entregue y p<strong>la</strong>nifica en consecuencia.<br />
• Los desarrol<strong>la</strong>dores y gerentes de proyecto son forzados a vivir en <strong>la</strong> mentira: fingen que<br />
pueden p<strong>la</strong>nificar, prever y entregar. Crean en un cierto modo, pero necesitan fingir que lo<br />
hacen de otro modo. En el final, acaban esencialmente sin controles.<br />
• En el momento en que se entrega el sistema, a menudo se vuelve irrelevante o requiere<br />
cambios significativos. Una de <strong>la</strong>s causas fundamentales es que los costos elevados de<br />
<strong>la</strong> iteración limitan nuestra visibilidad de <strong>la</strong> utilidad de lo que el equipo está realmente<br />
desarrol<strong>la</strong>ndo, incluso cuando ya es demasiado tarde.<br />
El reconocimiento de estas realidades no es nada fácil - por ejemplo, ¿qué gerente desea<br />
decir a su ejecutivo que no sabe exactamente lo que el equipo va a entregar en una fecha<br />
determinada? Pero los beneficios de este abordaje son que <strong>la</strong>s organizaciones se vuelven<br />
realmente autónomas: <strong>la</strong> empresa finalmente se libera <strong>para</strong> producir mejores resultados<br />
<strong>para</strong> sus usuarios finales y ahora podrá hacerlo más rápido, creando una c<strong>la</strong>ra ventaja<br />
competitiva <strong>para</strong> los negocios.<br />
Scrum y <strong>la</strong> Agilidad de los <strong>Software</strong><br />
Scrum se ha utilizado desde mediados de los noventa y actualmente está siendo aplicado<br />
en miles de proyectos en todo el mundo. Además de Scrum, varias de <strong>la</strong>s nuevas<br />
metodologías iterativas también han recibido atención durante este período. Al igual que con<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
8
Scrum, cada una de el<strong>la</strong>s resulta de una combinación de ideas viejas con nuevas ideas, pero<br />
todas destacan:<br />
• La estrecha co<strong>la</strong>boración entre el equipo de desarrollo y expertos de negocios;<br />
• La comunicación cara a cara (como más eficiente que <strong>la</strong> documentación escrita);<br />
• La entrega frecuente de nuevos software con valor comercial aplicable;<br />
• Equipos auto-organizados y cohesionados;<br />
• Formas de crear el código, y el equipo <strong>para</strong> permitir una adaptación continua a <strong>la</strong>s<br />
nuevas exigencias.<br />
En 2001, varios idealizadores y practicantes de estas metodologías, incluso líderes de<br />
Scrum, lograron entender lo que tenían en común. Escogieron <strong>la</strong> pa<strong>la</strong>bra “ágil” como<br />
el término comprensivo y e<strong>la</strong>boraron el “Manifiesto <strong>para</strong> el Desarrollo Ágil de <strong>Software</strong>”<br />
(Apéndice B), siendo su aspecto más importante una especificación de valores compartidos:<br />
Estamos descubriendo mejores maneras de desarrol<strong>la</strong>r software haciéndolo y ayudando a<br />
otros a hacerlo. A través de este trabajo, aprender a valorar más:<br />
• Individuos e interacciones que procesos y herramientas<br />
• <strong>Software</strong> en funcionamiento que documentación comprensiva<br />
• Co<strong>la</strong>boración con el cliente que negociación de contratos<br />
• Reaccionar a cambios que seguir un p<strong>la</strong>n<br />
Es decir, a pesar de que hay valor en los ítems de <strong>la</strong> derecha, valoramos más los ítems de <strong>la</strong><br />
izquierda.<br />
El Manifiesto ha impactado y desencadenado a miles de nuevos proyectos ágiles. Los<br />
resultados y <strong>la</strong>s experiencias de estos proyectos mejoraron <strong>la</strong>s técnicas aplicadas por<br />
<strong>la</strong>s diferentes formas de prácticas ágiles. Como con cualquier intento humano, algunas<br />
tuvieron éxito, otras no. Pero lo que más impacto tuvo en los éxitos fue el vinculo que los<br />
empresarios y los técnicos tenían con su proyecto. Ésta era <strong>la</strong> manera que ellos deseaban<br />
que los software fuesen desarrol<strong>la</strong>dos - y los clientes y usuarios finales concordaron.<br />
Proyectos exitosos han generado más entusiastas y tal como un Sprint exitoso, el ciclo ágil<br />
virtuoso continúa hasta hoy.<br />
Preparándose <strong>para</strong> Scrum<br />
Después de haber adquirido un entendimiento básico de los beneficios comerciales y<br />
culturales de Scrum y de <strong>la</strong> agilidad, los <strong>CIO</strong>s normalmente desean dar el paso siguiente y<br />
ver como este método de desarrollo puede incrementar su organización.<br />
Durante sus primeros quince años de vida, <strong>la</strong> mayoría de <strong>la</strong>s implementaciones de<br />
Scrum fueron conducidas en el esquema bottom-up. En otras pa<strong>la</strong>bras, un equipo de<br />
proyectos experimentaba el Scrum y los resultados eran impresionantes. Otro equipo lo<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
9
experimentaba y rápidamente los proyectos de Scrum aparecían en <strong>la</strong> organización entera.<br />
Más recientemente, sin embargo, muchas organizaciones desean implementar Scrum en el<br />
esquema top-down, como parte de una directiva <strong>para</strong> aumentar <strong>la</strong> rapidez de respuesta de<br />
<strong>la</strong> empresa y aumentar <strong>la</strong> productividad.<br />
Como Scrum representa autonomía <strong>para</strong> el equipo y “dejar el equipo decidir”, una<br />
implementación top-down exige consideración y pre<strong>para</strong>ción ponderadas, como iremos a<br />
describir en esta sección.<br />
“Scrumming” tanto en el Proceso de <strong>Software</strong> Como en <strong>la</strong><br />
Organización<br />
Muchas organizaciones tienen ineficiencias e impedimentos tolerados durante años;<br />
Scrum los identifica rápidamente y exige su resolución. Afortunadamente, el aumento de<br />
productividad y de valor derivado de proyectos Scrum hace el esfuerzo valer <strong>la</strong> pena, pero<br />
sigue siendo una lucha.<br />
Para implementar Scrum, una organización necesita asumir dos obras: <strong>la</strong> primera consiste<br />
en proyectos en los cuales los equipos de desarrollo son orientados a crear software<br />
utilizando Scrum; <strong>la</strong> segunda, eliminar impedimentos a <strong>la</strong> creación y distribución de software<br />
optimizado que los equipos de Scrum encuentran. La primera obra mejora <strong>la</strong> distribución <strong>del</strong><br />
software y <strong>la</strong> segunda resuelve los impedimentos a <strong>la</strong> productividad y al ROI identificado en<br />
<strong>la</strong> primera.<br />
Ambas obras son difíciles y requieren mucho trabajo por encima y más allá <strong>del</strong> desarrollo<br />
actual <strong>del</strong> software; una implementación completa de Scrum puede durar hasta dos años.<br />
No importa cuál sea <strong>la</strong> intensidad o el compromiso de <strong>la</strong> gerencia, no se puede reducir este<br />
horario debido a que el núcleo <strong>del</strong> proyecto es el cambio organizacional.<br />
Los ciclos diarios y mensuales de inspección y adaptación de Scrum hacen todo visible -<br />
el código, el proceso y los impedimentos de <strong>la</strong> empresa. Los proyectos que utilizan Scrum<br />
regu<strong>la</strong>rmente identifican impedimentos que se deben registrar, evaluar, priorizar y resolver.<br />
La velocidad de implementación de Scrum está directamente re<strong>la</strong>cionada con:<br />
• El grado de cambio requerido dentro de <strong>la</strong> organización;<br />
• La urgencia dentro de <strong>la</strong> organización <strong>para</strong> mejorar su proceso de desarrollo y entrega de<br />
software;<br />
• La efectividad de liderazgo dentro de <strong>la</strong> organización.<br />
El papel <strong>del</strong> <strong>CIO</strong> como ScrumMaster Organizacional <strong>para</strong> <strong>la</strong><br />
Mejora Continua<br />
En Scrum, el ScrumMaster es responsable de asegurar que un equipo Scrum adopte<br />
plenamente los valores y prácticas de Scrum. El ScrumMaster protege el equipo asegurando<br />
que él no se comprometa mas allá <strong>del</strong> límite de lo que puede lograr en un Sprint y es su<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
10
papel eliminar continuamente los obstáculos que puedan impedir el equipo de entregar los<br />
resultados <strong>del</strong> Sprint con éxito.<br />
Al nivel de impedimento organizacional, esta tarea<br />
cabe al <strong>CIO</strong> o a otro patrocinador ejecutivo cuya<br />
función sea trabajar fuera <strong>del</strong> equipo y eliminar <strong>la</strong>s<br />
barreras organizacionales que puedan impedir el<br />
éxito de un mo<strong>del</strong>o de desarrollo ágil.<br />
El <strong>CIO</strong> es el ScrumMaster <strong>para</strong><br />
Cambios Organizacionales<br />
La función <strong>del</strong> ScrumMaster Organizacional es percibir, identificar y trabajar dentro de <strong>la</strong><br />
organización <strong>para</strong> causar los cambios que eliminan los impedimentos, es decir, el <strong>CIO</strong><br />
como ScrumMaster Organizacional es principalmente un agente de cambios y <strong>la</strong> lista de<br />
impedimentos es su Backlog de Producto. El patrocinador <strong>del</strong> Scrum <strong>del</strong> <strong>CIO</strong> - procediendo<br />
como “Product Owner” con re<strong>la</strong>ción a estos impedimentos - define <strong>la</strong>s prioridades de estos<br />
ítems. Este Backlog de Producto de impedimentos es trabajado por <strong>la</strong> organización a través<br />
de los equipos que utilizan el proceso Scrum, teniendo como <strong>del</strong>iverables <strong>la</strong> remoción <strong>del</strong><br />
impedimento. Este backlog de cambios organizacional inicia durante los proyectos pilotos y<br />
continúa mientras los cambios necesarios sean identificados durante el ciclo de inspección<br />
y adaptación de Scrum.<br />
El ScrumMaster Organizacional si encuentra periódicamente con todos los ScrumMasters,<br />
con el Product Owner y el patrocinador <strong>para</strong> seguir desarrol<strong>la</strong>ndo el Backlog de Producto de<br />
Cambio Organizacional. Se forman equipos que conducen los cambios en <strong>la</strong> organización<br />
dentro de un Sprint. En <strong>la</strong> fase de Revisión <strong>del</strong> Sprint, el cambio es analizado así como <strong>la</strong><br />
métrica que se puede usar <strong>para</strong> monitorizar el progreso de <strong>la</strong> implementación <strong>del</strong> cambio.<br />
De esa manera, el <strong>CIO</strong> se hace cargo de un proceso continuo de mejora organizacional<br />
específicamente orientado <strong>para</strong> aumentar <strong>la</strong> productividad y <strong>la</strong> calidad de los equipos de<br />
desarrollo de software.<br />
Cuidado: Cambiar es un Trabajo Duro<br />
El cambio es un trabajo duro y no hay forma de evitar el trabajo duro. Las organizaciones<br />
que implementan el Scrum a veces identifican el trabajo duro de forma equivocada, como<br />
fallo de alguien, algo que se puede hacer <strong>para</strong> eliminar si el grupo que falló simplemente<br />
“corregir su hecho”. Este tipo de culpa organizacional puede matar una implementación<br />
de Scrum, y con el<strong>la</strong>, también <strong>la</strong> capacidad de <strong>la</strong> organización <strong>para</strong> crear software mejor.<br />
Cuando algo es penoso, cuando algo sale mal, reconocer esto es sólo parte <strong>del</strong> cambio que<br />
se está produciendo; es una oportunidad <strong>para</strong> que todos se reúnan <strong>para</strong> imaginar como<br />
resolver el problema, juntos.<br />
No se puede p<strong>la</strong>nificar e implementar Scrum con listas de verificación, procedimientos y<br />
formu<strong>la</strong>rios. Scrum es sólo una estructura simple que puede identificar en una organización<br />
todo lo que dificulta <strong>la</strong> creación de software optimizado. El trabajo <strong>para</strong> gestionar y eliminar<br />
estos impedimentos es <strong>la</strong> parte más difícil de implementar Scrum y es diferente <strong>para</strong> cada<br />
organización, ya que cada organización es diferente.<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
11
A nadie le gustan los problemas y dificultades. Muchos de los impedimentos son tan<br />
inherentes al modo de pensar y operar de una organización que se vuelven muy difíciles<br />
de eliminar. Ningún volumen de p<strong>la</strong>nificación anticipada irá a reducir esta dificultad; él solo<br />
podrá ayudar a alertar todo el mundo <strong>para</strong> el trabajo duro que necesita ser realizado <strong>para</strong><br />
convertirse en un competidor de c<strong>la</strong>se mundial. El Scrum exige que <strong>la</strong> alta administración<br />
esté vitalmente involucrada en <strong>la</strong> tría y remoción de los impedimentos y, así, exige que el<br />
<strong>CIO</strong> que esté adoptando el Scrum se convierta en el principal agente de cambio.<br />
De esa manera, el <strong>CIO</strong> asume un proceso de mejora organizacional continuo, totalmente<br />
enfocado en el aumento de <strong>la</strong> productividad y de <strong>la</strong> calidad de los equipos de software. No<br />
es fácil y el liderazgo que el <strong>CIO</strong> ofrece será un factor crucial <strong>para</strong> el éxito, como ilustra <strong>la</strong><br />
siguiente nota de Ken Schwaber <strong>para</strong> un CEO:<br />
De: Ken Schwaber<br />
Para: XXX XXXXX, CEO de XXXXXXX Corporation<br />
“Por un <strong>la</strong>do, Scrum ofrece algunas posibilidades muy atractivas<br />
- una mayor productividad, un mejor ambiente de trabajo, una<br />
mayor competitividad y un producto de calidad superior. Por otro<br />
<strong>la</strong>do, es difícil de implementar. La cantidad de cambio generado<br />
por una implementación de Scrum es significativa y difícil.<br />
Aunque el cambio sea difícil <strong>para</strong> desarrol<strong>la</strong>dores y clientes<br />
(product owners), ellos obtienen una respuesta inmediata a<br />
través de una satisfacción más grande en el trabajo. Esto los<br />
ayuda en tiempos de tensión y ansiedad. La administración<br />
intermediaria, sin embargo, sufre estrés sin recompensa inmediata.<br />
Se les pide a ayudar en <strong>la</strong> transición de una organización de<br />
abordajes tradicionales a abordajes más enjutos, sin <strong>la</strong> visión<br />
c<strong>la</strong>ra de un punto final personal… ¿que voy a hacer y adonde<br />
voy a me encajar en <strong>la</strong> nueva organización? Ésta pregunta es<br />
particu<strong>la</strong>rmente difícil y llena de peligro, pues <strong>la</strong> administración<br />
intermediaria va a moldear <strong>la</strong> nueva organización. El potencial <strong>para</strong><br />
conflictos y políticas es desalentador.<br />
Mi experiencia con implementaciones top-down corporativas<br />
de Scrum me llevaron a creer que <strong>la</strong> diferencia entre el éxito y<br />
el fracaso es Ud. Su capacidad <strong>para</strong> imaginar el futuro y ayudar<br />
a transmitir esto a su gerencia, su habilidad <strong>para</strong> orientar<strong>la</strong><br />
pacientemente durante el cambio y <strong>para</strong> convencer a su gerencia<br />
intermediaria de lo cuanto es valerosa y transformar<strong>la</strong> en un<br />
equipo va a distinguir su habilidad <strong>para</strong> absorber el cambio y<br />
darse cuenta de los beneficios, o no.”<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
12
Una <strong>P<strong>la</strong>ntil<strong>la</strong></strong> <strong>para</strong> <strong>la</strong> Adopción de Scrum<br />
Una vez que Ud. decida implementar Scrum en su organización, se inicia un viaje con <strong>la</strong><br />
creencia de que el esfuerzo será recompensado con un proceso de software más eficaz y<br />
una empresa más ágil y competitiva. También se reconoce que una cantidad significativa de<br />
cambio organizacional se encuentra ahora en el pronóstico.<br />
A medida que el <strong>CIO</strong> contemp<strong>la</strong> este compromiso, <strong>la</strong> comprensión <strong>del</strong> comportamiento<br />
organizacional conduce a un conjunto racional de los pasos a seguir <strong>para</strong> lograr un cambio<br />
real. Estos pasos incluyen:<br />
• Encontrar un evangelista y un patrocinador local;<br />
• Dar pequeños pasos iniciales <strong>para</strong> tantear el terreno;<br />
• Reflexionar sobre los éxitos y fracasos y avanzar paso a paso.<br />
La próxima sección describe algunos ejemplos típicos de como Ud. podría implementar<br />
Scrum en toda <strong>la</strong> organización; una p<strong>la</strong>ntil<strong>la</strong> con ejemplos de técnicas que Ud. puede aplicar<br />
<strong>para</strong> realizar el cambio necesario.<br />
P<strong>la</strong>y 0 - Descripción, Evaluación y Pre<strong>para</strong>ción <strong>del</strong> Piloto<br />
El objetivo <strong>del</strong> primer p<strong>la</strong>y es pre<strong>para</strong>r el terreno <strong>para</strong> <strong>la</strong>s actividades futuras: a) evaluar el<br />
grado de pre<strong>para</strong>ción de <strong>la</strong>s organizaciones <strong>para</strong> <strong>la</strong> agilidad, b) suministrar entrenamiento<br />
inicial <strong>para</strong> los primeros participantes y c) pre<strong>para</strong>r el Backlog de Producto <strong>para</strong> los<br />
proyectos iniciales. Los detalles de este p<strong>la</strong>y son los siguientes:<br />
Descripción y Evaluación<br />
Descripción: Sesión funcional de dos días que consiste en<br />
• Prueba de Aptitud de Scrum - expone <strong>la</strong> gerencia a los tipos de cambio que se producen<br />
con Scrum y ayuda a determinar si desea proceder.<br />
• Presentaciones de Scrum - despertar concienciación general y presentar conceptos <strong>para</strong><br />
<strong>la</strong> organización entera.<br />
• Evaluar <strong>la</strong> prontitud organizacional y definir los próximos pasos.<br />
• Definir p<strong>la</strong>nes; identificar los posibles pilotos, programar entrenamientos y providenciar<br />
recursos <strong>para</strong> el proyecto piloto.<br />
• Cenar con <strong>la</strong> alta gerencia <strong>para</strong> examinar los próximos pasos.<br />
Duración: 2 días<br />
Suporte: Externo<br />
Pre<strong>para</strong>ción <strong>del</strong> Piloto<br />
La organización está lista <strong>para</strong> proseguir con el entrenamiento y <strong>la</strong> estructura necesaria <strong>para</strong><br />
soportar el primero proyecto piloto. Las actividades en esta fase incluyen:<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
13
Entrenamiento <strong>del</strong> ScrumMaster<br />
Descripción: Entrenar los ScrumMasters <strong>para</strong> ejecutar los pilotos<br />
Duración: 2 días<br />
Suporte: Externo<br />
Entrenamiento <strong>del</strong> Product Owner<br />
Descripción: Entrenar los Product Owners <strong>para</strong> maximizar el ROI utilizando Scrum.<br />
Duración: 1 día<br />
Soporte: Externo<br />
Establecer Métricas<br />
Descripción: Analizar y cambiar métricas que monitorean el uso de Scrum en <strong>la</strong><br />
organización y definir el valor resultante de los pilotos. Establecer procesos primordiales de<br />
Scrum y <strong>la</strong>s métricas <strong>del</strong> proyecto.<br />
Duración: 1 semana<br />
Suporte: Externo<br />
Establecer Backlog de Producto <strong>para</strong> Cambios<br />
Descripción: Establecer backlog de producto <strong>para</strong> realizar un seguimiento y evaluar los<br />
impedimentos que surgen durante los proyectos piloto. Esta será <strong>la</strong> base <strong>para</strong> <strong>la</strong> iniciativa de<br />
cambio dentro de <strong>la</strong> organización.<br />
Duración: 1 día<br />
Soporte: Externo<br />
P<strong>la</strong>y 1 - Proyecto(s) Piloto<br />
El objetivo de este p<strong>la</strong>y es experimentar el Scrum en un o más proyectos reales <strong>para</strong><br />
demostrar los beneficios positivos de <strong>la</strong> agilidad mejorada <strong>del</strong> software dentro de <strong>la</strong><br />
organización. Un o más proyectos piloto son ejecutados en esta fase. Los ScrumMasters<br />
y <strong>la</strong> gerencia acompañan los pilotos con mucha atención <strong>para</strong> identificar obstáculos e<br />
impedimentos organizacionales al Scrum. Cuando estos impedimentos son identificados,<br />
ellos son corregidos en el lugar donde es posible, o simplemente son registrados en el<br />
Backlog de Cambios Organizacionales y categorizados <strong>para</strong> tratamiento posterior.<br />
Proyectos Piloto<br />
Duración: 3 a 6 meses<br />
Soporte: ScrumMaster Externo / Interno<br />
Descripción: Ejecute de 3 a 6 iteraciones de los proyectos piloto. Los proyectos piloto<br />
entregan incrementos de funcionalidad e identifican los impedimentos al desarrollo de<br />
software optimizado. Evalúe y ajuste el p<strong>la</strong>n, evalúe y priorice los impedimentos.<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
14
Retrospectiva<br />
Duración: 2 días<br />
Soporte: ScrumMaster Externo / Interno<br />
Descripción: Analice los proyectos piloto, <strong>la</strong>s métricas y los impedimentos. Evalúe lo<br />
que funcionó y lo que podría ser mejorado e identifique el ROI. Evalúe el impacto en<br />
<strong>la</strong>s operaciones de negocio, incluso en <strong>la</strong>s re<strong>la</strong>ciones dentro de los departamentos<br />
organizacionales y con los clientes.<br />
Rep<strong>la</strong>nificación<br />
Duración: 1 día<br />
Soporte: ScrumMaster Externo / Interno<br />
Descripción: Modifique el p<strong>la</strong>n piloto <strong>para</strong> <strong>la</strong> implementación de Scrum, mantenga el alto<br />
nivel y deje que los p<strong>la</strong>nes de proyectos y el p<strong>la</strong>n de los cambios organizacionales sean<br />
conducidos por sus propios backlogs de producto específicos.<br />
P<strong>la</strong>y 2 – Expansión Organizacional<br />
Basado en pilotos exitosos, el objetivo de este p<strong>la</strong>y es ampliar <strong>la</strong> utilización de Scrum y de<br />
sus beneficios a un subconjunto significativo de <strong>la</strong> organización de desarrollo. Hasta ahora,<br />
existe un entendimiento de cuales prácticas benéficas están integradas, qué impedimentos<br />
estaban en el camino de una adopción más amplia y donde había más necesidad de<br />
entrenamiento. Por ejemplo, los programas de entrenamiento más amplios siguientes ahora<br />
pueden ser eficaces:<br />
• Entrenamiento <strong>del</strong> ScrumMaster: Antes de esca<strong>la</strong>r <strong>la</strong> implementación a proyectos<br />
adicionales y mayores, Ud. necesita aumentar el número de Scrum Masters. Los<br />
candidatos con habilidades apropiadas deben ahora ser reconocidos en <strong>la</strong> organización.<br />
Los ScrumMasters que irán a comandar el Scrum of Scrums (vea abajo) ahora pueden<br />
ser entrenados en habilidades avanzadas, como Facilitación de Equipos y Colecta de<br />
Mediciones.<br />
• Entrenamiento en Desarrollo de Productos: Optimizamos <strong>la</strong> transferencia entre los<br />
analistas y los equipos de desarrollo cuando estas dos funciones usen un abordaje<br />
común. Un abordaje muy común es <strong>la</strong> adopción de métodos de desarrollo de producto<br />
en el estilo Lean o Toyota. Las referencias enumeran varios libros que suministran<br />
informaciones acerca de estos temas.<br />
• Entrenamiento de los desarrol<strong>la</strong>dores: Los equipos de desarrollo de proyectos ágiles<br />
habrán aprendido cuando van a necesitar <strong>la</strong>s habilidades <strong>para</strong> trabajar en una forma más<br />
ágil. El aprendizaje de <strong>la</strong>s habilidades Extreme Programming (XP), como el desarrollo<br />
dirigido a pruebas (TDD), etc., pueden ahora ser garantizada. (Beck 2004)<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
15
• Entrenamiento en Scrum/Agilidad: Una aplicación exitosa de Scrum, dependerá en<br />
gran parte de un vocabu<strong>la</strong>rio común a todas <strong>la</strong>s personas involucradas. Esto puede<br />
lograrse mediante cursos introductorios de 2 a 4 horas <strong>para</strong> 30 a 50% de <strong>la</strong> organización.<br />
Además, se pueden aplicar otras actividades <strong>para</strong> aumentar <strong>la</strong> visibilidad y el nivel de<br />
aceptación de Scrum en <strong>la</strong> organización:<br />
• Radiadores de información: Informe el estado de los proyectos de Scrum a través de<br />
radiadores de información simple y de gran eficacia, como whiteboards exhibiendo <strong>la</strong>s<br />
tareas (Task Board), Backlogs de Producto y de Release y los gráficos BurnDown de<br />
proyectos y programas.<br />
• Lecturas: Una sugerencia de artículos y libros puede ser ofrecida <strong>para</strong> todas <strong>la</strong>s<br />
personas de <strong>la</strong> organización <strong>para</strong> incentivar <strong>la</strong> mayor difusión <strong>del</strong> conocimiento.<br />
• Seminarios/brownbags suministrados por el <strong>CIO</strong>: El(los) líder(es) de cambio debe(n)<br />
informar con frecuencia y de forma franca sobre lo que está pasando en <strong>la</strong> organización.<br />
Reuniones informales, como brownbags y pizza hours tienden a tener un impacto<br />
positivo sobre los cambios.<br />
• Char<strong>la</strong>s / experiencias difíciles / feedbacks sobre piloto(s): Los resultados de los<br />
proyectos piloto deben se poner disponibles a todos. Esto aumentará los debates y <strong>la</strong><br />
participación en todos los niveles de <strong>la</strong> organización.<br />
P<strong>la</strong>y 3 – Causando Impacto<br />
Como los proyectos piloto probaron que el valor real será entregue a través de un abordaje<br />
ágil de <strong>la</strong> gestión de proyectos de software, el objetivo de este p<strong>la</strong>y es causar un impacto<br />
más significativo en el resultado que solo podrá ser demostrado a través de más y mayores<br />
proyectos. A través de los p<strong>la</strong>ys anteriores, <strong>la</strong> organización habrá colectado conocimiento<br />
explícito y tácito suficiente <strong>para</strong> ser capaz de enfrentarlos con una alta probabilidad de<br />
éxito. En este punto, por lo menos 25% de <strong>la</strong> organización deberá estar involucrada en <strong>la</strong><br />
implementación <strong>del</strong> Scrum.<br />
Un cambio efectivo ya deberá estar ocurriendo dentro y fuera de <strong>la</strong> organización de<br />
desarrollo. Dentro <strong>del</strong> desarrollo, el trabajo se realiza mejor por el equipo de desarrollo.<br />
Fuera de los equipos de desarrollo, el trabajo de eliminar impedimentos es conducido por el<br />
ScrumMaster Organizacional e implementado por los departamentos afectados.<br />
Proyectos de Desarrollo<br />
Duración: Para siempre<br />
Soporte: Interno<br />
Descripción: Proyectos de desarrollo monitoreados por el ROI.<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
16
Proyectos de Cambio<br />
Duración: La mayor parte <strong>del</strong> trabajo en los primeros 1 a 2 años; conforme necesario<br />
Soporte: Interno<br />
Descripción: Proyectos de cambio organizacional dentro de varios departamentos eliminan<br />
impedimentos emergentes y variables.<br />
Evalúe y Adapte<br />
Duración: A Cada Sprint<br />
Soporte: ScrumMaster Externo / Interno<br />
Descripción: Analice <strong>la</strong>s métricas cualitativas y cuantitativas. Agregue otras métricas y<br />
analice los procesos de captura siempre que haya ocurrido una sorpresa.<br />
P<strong>la</strong>y 4 - Mida, Evalúe y Ajuste<br />
El objetivo de este p<strong>la</strong>y es evaluar el progreso de <strong>la</strong> organización y establecer un<br />
conjunto más amplio de métricas <strong>para</strong> servir como base <strong>para</strong> una mayor expansión. El<br />
<strong>CIO</strong> deberá tener en cuenta de que <strong>la</strong> discusión inminente sobre <strong>la</strong>s métricas podrá ser<br />
tanto controversial como perturbadora, ya que muchas de <strong>la</strong>s métricas tradicionales que<br />
podrían estar en vigor antes de <strong>la</strong> adopción <strong>del</strong> Scrum (ejemplo: medidas de “integridad de<br />
documento”) no son más relevantes. Afortunadamente, el Scrum y <strong>la</strong>s prácticas ágiles son<br />
realmente interpretables y mensurables y los practicantes están convergiendo un conjunto<br />
de métricas que suministran feedback cualitativo y cuantitativo tanto al nivel de procesos<br />
cuanto de proyectos. Pero, antes de entrar en esta discusión, es necesario hacer una<br />
distinción importante entre los diversos procesos tradicionales de desarrollo de software y el<br />
Scrum y el ágil:<br />
El principal indicador <strong>para</strong> el desarrollo ágil de software es si el software funcional en<br />
realidad existe y es demostrablemente adecuado <strong>para</strong> uso en los fines previstos. En Scrum<br />
este indicador c<strong>la</strong>ve se determina empíricamente, mediante demostración, al final de cada<br />
individuo Sprint.<br />
Esta medición primaria de <strong>la</strong> calidad y productividad <strong>del</strong> software es <strong>la</strong> esencia <strong>del</strong> desarrollo<br />
ágil. Así, con Scrum, Ud. no podrá desviarse mucho de su objetivo sin darse cuenta.<br />
Todas <strong>la</strong>s otras métricas se subordinan a ese objetivo y a su eterno mantra de “suministrar<br />
software funcional con mayor frecuencia”.<br />
En este punto <strong>del</strong> p<strong>la</strong>y de adopción de Scrum, una parte significativa de <strong>la</strong> organización ya<br />
está operando de manera ágil. Los resultados de Sprint de los proyectos iniciales son <strong>la</strong><br />
principal medida de <strong>la</strong> eficacia de los nuevos comportamientos <strong>del</strong> equipo y de sus nuevos<br />
procesos. Estos datos deben ser publicados y analizados.<br />
Además, ahora es el momento apropiado <strong>para</strong> definir un conjunto de métricas secundarias<br />
usadas <strong>para</strong> guiar a su organización en <strong>la</strong> forma como implementar Scrum. Por lo tanto, hay<br />
dos tipos de métricas que se pueden aplicar:<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
17
Métricas de Procesos – indicadores principalmente cualitativos de <strong>la</strong> eficacia de los<br />
equipos y de <strong>la</strong> organización en <strong>la</strong> adopción de Scrum. Incluyen ítems tales como <strong>la</strong> eficacia<br />
de los equipos en <strong>la</strong> gestión <strong>del</strong> Backlog <strong>del</strong> Producto, <strong>la</strong> eficacia de los procesos de Scrum,<br />
como <strong>la</strong> reunión diaria de Scrum, reunión de P<strong>la</strong>nificación de Sprint, etc. En cooperación con<br />
<strong>la</strong> ScrumAlliance, Hartman y Stallings han desarrol<strong>la</strong>do un temp<strong>la</strong>te de métricas de procesos<br />
que puede ser utilizado por cualquier organización que esté implementando Scrum. Estas<br />
métricas son presentadas como <strong>la</strong> Tab<strong>la</strong> 1 <strong>del</strong> Apéndice 2.<br />
Métricas <strong>del</strong> Proyecto – Al nivel <strong>del</strong> proyecto, se puede aplicar un conjunto de métricas<br />
adicional <strong>para</strong> medir los resultados de un equipo de Scrum particu<strong>la</strong>r y el servicio,<br />
componente o sistema sobre los cuales es responsable. El conjunto pueden incluir algunas<br />
métricas tradicionales, como conteo de defectos, porcentaje de código con cobertura de<br />
test unitario, porcentaje de código cubierto por tests de regresión automatizados, etc.,<br />
así como también métricas específicas de Scrum, como número de historias de usuario<br />
concluidas y demostrables al final de cada Sprint. Un ejemplo de un conjunto de estas<br />
métricas aparece como Tab<strong>la</strong> 2 en el Apéndice 2.<br />
Una Nota sobre Calidad y Scrum<br />
Los clientes suelen presionar <strong>la</strong>s organizaciones de desarrollo <strong>para</strong> que entreguen<br />
funcionalidades más rápidamente de lo que es posible. Algunas organizaciones logran<br />
contornar eso reduciendo <strong>la</strong> calidad <strong>del</strong> producto, abandonando <strong>la</strong> refactorización,<br />
reduciendo esfuerzos en pruebas y otras prácticas sólidas de ingeniería. Esto no es tolerable<br />
dentro de <strong>la</strong>s prácticas de Scrum, puesto que el sistema o producto es un bien corporativo,<br />
continuamente refinado y medido objetivamente, no un activo de proyecto único. Las<br />
organizaciones de ingeniería que sucumben a esta presión acaban por crear sistemas con<br />
“design muerto”, que no pueden ser mantenidos o incrementados de forma eficaz. La<br />
organización sufre el enorme costo de una significativa reformu<strong>la</strong>ción y re-release <strong>del</strong> código<br />
fuente. Para evitar esto, sólo los niveles mayores de una organización pueden tomar una<br />
decisión de activos <strong>para</strong> reducir <strong>la</strong> calidad.<br />
P<strong>la</strong>y 5 – Expanda y Conquiste<br />
Con estas actividades por detrás de <strong>la</strong> organización y con un conjunto definido de métricas<br />
<strong>para</strong> guiar y evaluar el progreso futuro visando <strong>la</strong> organización entera, ahora es el momento<br />
de ampliar el uso de Scrum en el ambiente entero. Las actividades de esta fase de<br />
implementación son enfocadas en el esca<strong>la</strong>miento mayor <strong>del</strong> Scrum en <strong>la</strong> organización.<br />
En incrementos de quizá 25 a 30% <strong>del</strong> número de funcionarios, el Scrum es presentado a<br />
los demás equipos de <strong>la</strong> organización. Las prácticas ya existentes son refinadas todavía<br />
más y compartidas entre los equipos <strong>para</strong> que se obtenga <strong>la</strong> absorción organizacional de <strong>la</strong>s<br />
prácticas ágiles. Solo ahora <strong>la</strong>s reg<strong>la</strong>s rígidas con que Scrum opera pueden ser ajustadas<br />
<strong>para</strong> corresponder mejor a <strong>la</strong>s necesidades de <strong>la</strong> organización. Los clientes pueden ser<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
18
invitados a participar de <strong>la</strong> implementación a través de entrenamientos como Product<br />
Owners o ScrumMasters. Esta fase continúa hasta que todos los equipos estén involucrados<br />
con Scrum y los mecanismos de inspección y adaptación de Scrum tomen cuenta de <strong>la</strong>s<br />
mejoras adicionales de sus procesos y prácticas.<br />
En este punto, <strong>la</strong> organización estará recibiendo <strong>la</strong> productividad substancial y los beneficios<br />
comerciales y culturales de Scrum.<br />
Antes de que prosigamos <strong>para</strong> el Esca<strong>la</strong>miento de Scrum <strong>para</strong> ambientes de proyectos<br />
mayores, sin embargo, necesitamos analizar los tipos de impedimentos organizacionales<br />
que pueden estorbar <strong>la</strong>s prácticas eficaces de Scrum.<br />
Impedimentos Organizacionales <strong>para</strong> <strong>la</strong> Adopción de<br />
Scrum<br />
Las aplicaciones desarrol<strong>la</strong>das en cualquier organización son proyectadas <strong>para</strong> optimizar<br />
<strong>la</strong> capacidad de <strong>la</strong> empresa de cumplir su misión en los negocios. Sin embargo, con el<br />
paso <strong>del</strong> tiempo, <strong>la</strong>s organizaciones evolucionan de formas que ni siempre conducen a<br />
<strong>la</strong> productividad <strong>del</strong> equipo de software que desarrol<strong>la</strong> y mantiene esas aplicaciones. De<br />
hecho, algunas organizaciones evolucionaron al punto en que <strong>la</strong>s prácticas de software<br />
son en gran parte disfuncionales y, a pesar de los repetidos esfuerzos <strong>para</strong> mejorar<strong>la</strong>s, <strong>la</strong><br />
estructura organizacional, <strong>la</strong>s políticas y <strong>la</strong>s restricciones impiden un cambio eficaz. Esta<br />
sección describe el origen y <strong>la</strong> naturaleza de estos impedimentos <strong>para</strong> mejor pre<strong>para</strong>r el <strong>CIO</strong><br />
<strong>para</strong> el trabajo que vendrá.<br />
Exponiendo los Impedimentos con Scrum<br />
La propia naturaleza de Scrum; sus demandas incesantes por software de calidad que<br />
debe ser entregue más rápido; su demanda continua de trabajar con usuarios finales <strong>para</strong><br />
asegurar una implementación eficaz, sus mecanismos de inspección y de adaptación<br />
continua exponen <strong>la</strong>s prácticas disfuncionales y “problemas impeditivos” muy rápidamente.<br />
Este efecto se vuelve todavía más pronunciado cuando Scrum también es usado como un<br />
proceso <strong>para</strong> implementar y dimensionar Scrum en <strong>la</strong> organización.<br />
Es imposible identificar todos los<br />
esfuerzos organizacionales de<br />
antemano<br />
Usted no puede identificar todos los<br />
impedimentos de antemano, ya que se<br />
han integrado en <strong>la</strong> organización y por lo<br />
tanto son muy familiares <strong>para</strong> que puedan<br />
ser fácilmente identificados. Sólo cuando<br />
se comienza a utilizar Scrum es que los<br />
obstaculos se vuelven obvios. El p<strong>la</strong>n de implementación surge cuando existe una evidencia<br />
de lo que necesita ser cambiado y <strong>la</strong> voluntad de <strong>la</strong> organización <strong>para</strong> realizar el cambio.<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
19
Caracterizando los Impedimentos<br />
Los impedimentos se encuentran generalmente en cuatro áreas:<br />
En el Propio Proceso Scrum – ¿Qué impedimentos se están produciendo e interrumpiendo<br />
el proceso de Scrum?<br />
Prácticas Personales – ¿Qué prácticas personales están obstaculizando el desarrollo, <strong>la</strong><br />
distribución, el soporte y el uso de productos <strong>para</strong> maximizar <strong>la</strong> satisfacción de todos los<br />
involucrados?<br />
Prácticas de <strong>la</strong> Ingeniería de Productos – ¿Qué prácticas están impidiendo <strong>la</strong> optimización<br />
de retorno sobre <strong>la</strong> inversión, o <strong>la</strong> maximización de <strong>la</strong> misión de <strong>la</strong> organización bajo <strong>la</strong><br />
perspectiva <strong>del</strong> producto y qué impedimentos existen contra el desarrollo optimizado <strong>del</strong><br />
producto y su entrega?<br />
Cuestiones Organizacionales – ¿Qué problemas organizacionales sistémicos - c<strong>la</strong>ramente<br />
fuera <strong>del</strong> control <strong>del</strong> equipo - están impidiendo los equipos de que entreguen software más<br />
rápidamente a sus usuarios?<br />
Queremos categorías se<strong>para</strong>das en el Backlog de Producto de Impedimento Organizacional<br />
porque estas exigen habilidades exclusivas <strong>para</strong> su solución. Además, el<strong>la</strong>s deben ser<br />
priorizadas <strong>para</strong> causar impacto, y se debe pensar un poco en quien en <strong>la</strong> organización tiene<br />
más capacidad <strong>para</strong> mejor solucionar el impedimento.<br />
La Tab<strong>la</strong> 1 abajo exhibe ejemplos de impedimentos encontrados en organizaciones que<br />
adoptaron el Scrum. Esta lista podría funcionar como un punto de partida y un sistema<br />
de advertencia anticipada sobre algunos de los impedimentos que su organización podría<br />
encontrar. Pero, de nuevo, ¡cada empresa es diferente y toda implementación es única, así<br />
que, afortunadamente o <strong>la</strong>mentablemente, el proceso Scrum irá seguramente descubrir<br />
algunos nuevos impedimentos <strong>para</strong> que el <strong>CIO</strong> los trate!<br />
Proceso Scrum<br />
Las personas llegan tarde al Scrum diario y no toleran disciplina básica<br />
Las reuniones de Scrum son muy demoradas - el equipo se queda<br />
aburrida y considera el tiempo improductivo<br />
ScrumMaster dicha <strong>la</strong>s decisiones de design o administra<br />
meticulosamente<br />
Los equipos son muy grandes <strong>para</strong> Scrum diario eficaz y p<strong>la</strong>nificación<br />
<strong>del</strong> Sprint<br />
Los equipos no re<strong>la</strong>tan tiempo restante de <strong>la</strong>s tareas <strong>para</strong> análisis de<br />
BurnDown<br />
Impacto Costo Owner<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
20
Prácticas Personales<br />
Individuos interrumpidos y encargados de trabajar fuera <strong>del</strong> Sprint<br />
Equipos se<strong>para</strong>dos en cubículo y no en área de Scrum abierta<br />
Miembros <strong>del</strong> equipo no responsables de compromisos personales<br />
<strong>del</strong> Sprint<br />
Individuos divididos entre muchos proyectos y equipos<br />
Impacto Costo Owner<br />
Prácticas de Ingeniería de Productos<br />
Los recursos interdisciplinarios <strong>para</strong> definición, design, implementación y<br />
pruebas no están presentes en el equipo<br />
Los Sprints no implementan ni testan completamente incrementos<br />
potencialmente aplicables de funcionalidades valiosas <strong>para</strong> el cliente<br />
El Product Owner no está siempre disponible / no está íntegro en el<br />
equipo<br />
La integración de sistemas no es forzada a cada Sprint<br />
El Product Owner no divide ítems voluminosos <strong>del</strong> backlog de producto<br />
<strong>para</strong> ajustarlos dentro de un Sprint<br />
Los equipos tienen recursos ineficaces <strong>para</strong> automatizar creaciones e<br />
integraciones<br />
Las funcionalidades son cargadas en el Sprint después que el Sprint<br />
empieza<br />
Cuestiones Organizacionales<br />
Políticas de procesos de software ineficaces <strong>para</strong> regu<strong>la</strong>r procesos<br />
La gerencia presupone precio fijo, tiempo fijo, postura fija de entrega de<br />
funcionalidades<br />
Pruebas de <strong>Software</strong> o CQ de Sistemas es una organización se<strong>para</strong>da y<br />
no integrada con el equipo<br />
La organización recompensa individuos en vez de recompensar el<br />
comportamiento <strong>del</strong> equipo<br />
Las reg<strong>la</strong>s ya existentes o <strong>la</strong> capitalización de software demandan<br />
adherencia a abordajes tipo cascada, orientadas por documentos<br />
Los equipos no son colocadas en el mismo espacio cuanto posible<br />
Los equipos no consiguen tomar pequeñas decisiones organizacionales<br />
de espacio y de gastos necesarios <strong>para</strong> que ejecuten su trabajo<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
21
Subtítulo:<br />
Impacto de este impedimento en el proyecto (de 0 a 9 siendo 0 = bajo, 9 = alto),<br />
Costo <strong>para</strong> resolver este impedimento (de 0 a 9 siendo 0 = bajo, 9 = alto)<br />
Owner: Punto en una organización <strong>para</strong> resolución:<br />
C – CEO/CTO/COO/CFO,<br />
V – VP,<br />
D – Director,<br />
P – Gerencia de Producto,<br />
E – Gerencia de Ingeniaría,<br />
T – Equipo<br />
Esca<strong>la</strong>miento de Scrum<br />
Los beneficios empresariales de Scrum y de <strong>la</strong> agilidad son más prontamente obtenidos<br />
con equipos pequeños, situados en el mismo local e integrados, consistiendo idealmente<br />
en ocho personas o menos (incluso Product Owner, ScrumMaster, Desarrol<strong>la</strong>dores y<br />
Probadores) siendo que cada equipo de Scrum es owner de un producto específico o de<br />
una determinada aplicación que el<strong>la</strong> pueda definir, desarrol<strong>la</strong>r, testar y entregar sin mucha<br />
ayuda externa.<br />
Sin embargo, es inevitable que el éxito de Scrum resulte en su aplicación en programas<br />
mayores, sistemas de sistemas y aplicaciones que demandan muchos (probablemente<br />
distribuidos) equipos <strong>para</strong> desarrol<strong>la</strong>r<strong>la</strong>s y entregar<strong>la</strong>s. Afortunadamente, Scrum ha mostrado<br />
su eficacia en proyectos involucrando cientos de desarrol<strong>la</strong>dores, por lo tanto, pudiendo ser<br />
proporcionalmente dimensionado <strong>para</strong> atender <strong>la</strong>s mayores empresas de software. Estos<br />
casos, sin embargo, involucran un conjunto exclusivo de obstáculos que necesitan ser<br />
resueltos, específicamente:<br />
1. Esca<strong>la</strong>miento de <strong>la</strong> organización: Equipos de Equipos de Scrum<br />
2. Infraestructura de herramientas <strong>para</strong> promover agilidad corporativa<br />
3. Coordinación de equipos de equipos<br />
Cada uno de estos desafíos es abordado en <strong>la</strong>s sesiones abajo.<br />
Esca<strong>la</strong>miento de <strong>la</strong> Organización: Equipos de Equipos de Scrum<br />
Consistente con su filosofía de que “menos es más”, Scrum tiene un número muy pequeño<br />
de normas. Sin embargo, <strong>la</strong> mayoría de <strong>la</strong>s normas que existen son fijas y re<strong>la</strong>tivamente<br />
invio<strong>la</strong>bles. Una norma básica es el equipo consistir en ocho o menos miembros que<br />
trabajan en una misma área física. Éste es el mo<strong>del</strong>o más eficaz y productivo, puesto que a)<br />
soporta el requisito de <strong>la</strong> comunicación informal y constante entre los miembros <strong>del</strong> equipo,<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
22
) promueve un alto grado de corporativismo y c) permite un compromiso común con <strong>la</strong>s<br />
metas <strong>del</strong> Sprint entre los miembros <strong>del</strong> equipo que de hecho conocen un al otro y tienen de<br />
trabajar juntos diariamente. Además, ciertos mecanismos de Scrum, como p<strong>la</strong>nificación de<br />
Sprint y <strong>la</strong> reunión Diaria de Scrum pueden deteriorarse muy rápidamente si el tamaño <strong>del</strong><br />
equipo pasar de 8 a 10 individuos.<br />
El esca<strong>la</strong>miento de Scrum <strong>para</strong> aplicaciones mayores mantiene este principio c<strong>la</strong>ve en<br />
vigor. Por eso, el esca<strong>la</strong>miento hacia una aplicación involucrando 300 personas requiere<br />
<strong>la</strong> organización de cerca de 30 equipos de Scrum. Conforme discutido anteriormente, <strong>la</strong><br />
formación <strong>del</strong> equipo debe ser totalmente equilibrada y capaz de desarrol<strong>la</strong>r segmentos<br />
potencialmente aplicables de funcionalidad a cada Sprint. Para <strong>la</strong> mayoría de <strong>la</strong>s<br />
organizaciones, esto exige reorganizar equipos alrededor de funcionalidades de productos,<br />
servicios, componentes o subsistemas, en lugar de hacerlo por función individual (por<br />
ejemplo, pool de desarrol<strong>la</strong>dores, recursos de pruebas, etc.). Aunque ya hayamos discutido<br />
este impedimento organizacional anteriormente, vemos que él se vuelve más complejo a <strong>la</strong><br />
medida que nuestro proyecto aumenta de tamaño.<br />
La Organización Sigue <strong>la</strong> Arquitectura<br />
Además, no podemos formar equipos de<br />
Scrum prontamente sin entender cómo cada<br />
equipo individual puede, de forma re<strong>la</strong>tivamente<br />
holística, entregar funcionalidades <strong>para</strong><br />
usuarios finales. Por otro <strong>la</strong>do, esto nos obliga a<br />
descomponer <strong>la</strong> arquitectura de <strong>la</strong>s aplicaciones<br />
en componentes o subsistemas que posean<br />
integridad conceptual y puedan suministrar<br />
valor de negocio por su propia cuenta. El<br />
Scrum permite esta actividad de factorización<br />
arquitectónica en <strong>la</strong> fase de organización <strong>del</strong> Sprint y en los Sprints iniciales, por los<br />
Figura 2: Un Sistema Siendo Creado por tres<br />
Equipos de Scrum en tres Sprints<br />
equipos avanzados de Scrum. Este método funciona particu<strong>la</strong>rmente bien en un período<br />
de expansión de Scrum y su implementación en un proyecto grande. Aquí, los equipos de<br />
frente crean puntos de pruebas de valor <strong>para</strong> el cliente mientras factorizan <strong>la</strong> arquitectura de<br />
<strong>la</strong>s aplicaciones simultáneamente <strong>para</strong> aceptar equipos adicionales cuyo entrenamiento en<br />
Scrum irá probablemente ocurrir al mismo tiempo. A <strong>la</strong> medida que cada nuevo equipo es<br />
formada, su función en el sistema mayor se pone más c<strong>la</strong>ra y surge una situación como <strong>la</strong><br />
descrita en <strong>la</strong> Figura 2.<br />
Coordinando Equipos de Equipos<br />
C<strong>la</strong>ro que, <strong>la</strong> presencia de un número grande de equipos trae desafíos significativos<br />
en términos de coordinación y comunicación entre equipos y también implica en que,<br />
probablemente, surgirán varios problemas al nivel <strong>del</strong> sistema que exigirán <strong>la</strong>s mismas<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
23
prácticas de inspección diarias y mensuales aplicadas al nivel de equipo local. Experiencias<br />
de esca<strong>la</strong>miento de Scrum <strong>para</strong> equipos mayores generaron un pequeño conjunto de<br />
prácticas útiles <strong>para</strong> coordinar equipos discrepantes y solucionar los desafíos mayores de<br />
p<strong>la</strong>nificación de Sprints, p<strong>la</strong>nificación de releases y monitoreo de <strong>la</strong> integración al nivel <strong>del</strong><br />
sistema y de <strong>la</strong>s actividades de test.<br />
Comunicación Diaria: Scrum of Scrums<br />
En <strong>la</strong> misma manera en que Scrum obliga una comunicación diaria en el Scrum diario, los<br />
equipos mayores y distribuidos normalmente coordinan sus actividades en un Scrum of<br />
Scrums diario. En esta reunión, los líderes de equipo de cada equipo componente usan el<br />
mismo formato de reunión diaria que de un único equipo:<br />
• ¿Qué hizo mi equipo ayer <strong>para</strong> avanzar en los objetivos de Sprint?<br />
• ¿Qué va a hacer mi equipo hoy?<br />
• ¿Qué impedimentos están presentes y que podrían impedir a mi equipo de cumplir su<br />
compromiso de Sprint?<br />
Idealmente, esta reunión debería tener lugar inmediatamente después <strong>del</strong> Scrum diario<br />
<strong>del</strong> equipo individual. Cuando los equipos están dispersos, normalmente se <strong>la</strong> hace por<br />
teléfono, en un momento oportuno <strong>para</strong> maximizar <strong>la</strong> participación de los miembros <strong>del</strong><br />
equipo <strong>del</strong> Scrum of Scrums.<br />
P<strong>la</strong>nificación y Monitoreo <strong>del</strong><br />
Release al Nivel de Sistema<br />
La Figura 2 podría implicar que se trata<br />
de una cuestión bastante simple dividir <strong>la</strong><br />
organización en grupos de funcionalidades,<br />
servicios o subsistemas, habilitar estos<br />
equipos <strong>para</strong> realizar su trabajo, y esperar que<br />
un sistema muy bien integrado vaya a surgir<br />
naturalmente. La experiencia ha demostrado<br />
que esto es poco probable. Porque aun<br />
cuando los equipos están capacitados tanto<br />
<strong>para</strong> satisfacer <strong>la</strong>s necesidades de Sprint<br />
como <strong>para</strong> coordinar <strong>la</strong> integración entre<br />
los equipos / subsistemas, un conjunto más<br />
amplio de problemas aparece. Es el desafío<br />
de crear un sistema de manera holística en<br />
el que implementamos y probamos nuestras<br />
Figura 3: Sistema de Três Subsistemas com Sprints<br />
no Nível do Sistema<br />
integraciones a través de todos los subsistemas, los subsistemas trabajan juntos <strong>para</strong><br />
satisfacer los requisitos más comprensivos <strong>del</strong> cliente y el sistema global satisface sus<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
24
equerimientos de calidad, rendimiento y fiabilidad.<br />
Para resolver estos desafíos, muchos equipos han añadido una función de liderazgo<br />
técnico ejercida al nivel <strong>del</strong> sistema. Arquitectos, jefes de equipo, gerentes de producto y<br />
profesionales de garantía de calidad en general se juntan en un equipo de Scrum adicional<br />
<strong>para</strong> pensar y actuar al nivel <strong>del</strong> sistema. Por otra parte, ellos también pueden aplicar el<br />
proceso de Scrum al nivel <strong>del</strong> sistema <strong>para</strong> establecer objetivos de Sprint y crear ítems<br />
de backlog de integraciones de sistema forzadas, demostraciones al nivel <strong>del</strong> sistema,<br />
checkpoints de calidad, distribuciones experimentales y otros milestones <strong>para</strong> asegurar<br />
que el sistema siga en el buen camino. De esa forma, <strong>la</strong> situación de <strong>la</strong> Figura 3 empieza a<br />
emerger.<br />
Infraestructura de Herramientas <strong>para</strong> Agilidad Corporativa<br />
Incluso con este nivel de estructura y coordinación, los proyectos mayores y los equipos<br />
distribuidos aún pueden carecer de coordinación interna e interequipos, y de <strong>la</strong> visibilidad<br />
de los proyectos necesaria <strong>para</strong> entregar, con seguridad, software en iteraciones rápidas<br />
y totalmente testadas. Aunque el Scrum suministre una estructura ya comprobada <strong>para</strong><br />
los aspectos de gestión de proyectos de desarrollo de software, él no prescribe prácticas<br />
específicas de ingeniería de software y tampoco recomienda herramientas específicas <strong>para</strong><br />
soportar el proceso de Scrum. La filosofía de Scrum, en ese sentido, es de “mantener <strong>la</strong><br />
cosa simple y dejar que los equipos decidan”.<br />
De hecho, en caso de un equipo ideal de menos de diez personas trabajando en el mismo<br />
local, los artefactos básicos de gestión de proyectos utilizados <strong>para</strong> p<strong>la</strong>nificar el Sprint<br />
e informar el status de funcionalidades individuales, tareas y progreso <strong>del</strong> equipo se<br />
pueden normalmente administrar usándose una p<strong>la</strong>nil<strong>la</strong> desarrol<strong>la</strong>da y mantenida por el<br />
ScrumMaster. Los artefactos de ingeniería <strong>para</strong> requisitos, casos de prueba y defectos<br />
pueden ser igualmente simple y escritos en tarjetas, whiteboards, o mantenidos en un wiki<br />
<strong>del</strong> equipo.<br />
Personas y Comunicación<br />
Sin embargo, dimensionar prácticas de Scrum <strong>para</strong> equipos distribuidos y equipos de<br />
equipos impone ciertos desafíos especiales de comunicación. La coordinación entre equipos<br />
de como implementar requisitos compartidos, monitorizar el status de funcionalidades e<br />
identificar problemas impeditivos se vuelve una preocupación prioritaria. En estos casos<br />
“se debe crear e implementar un mecanismo <strong>para</strong> sincronizar su trabajo con frecuencia.<br />
Además, es necesario crear un producto más detal<strong>la</strong>do y una arquitectura técnica <strong>para</strong> que<br />
El esca<strong>la</strong>miento de Scrum trae<br />
desafíos especiales de uso de<br />
herramientas<br />
el trabajo pueda ser perfectamente dividido<br />
entre los equipos”. (Schwaber 2004)<br />
Aunque <strong>la</strong>s herramientas de gestión de<br />
proyectos tradicionales puedan haber<br />
funcionado <strong>para</strong> mostrar fechas idealizadas<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
25
de iniciar/finalizar tareas y efectuar - quizá inútilmente - análisis críticos de trayectorias<br />
de <strong>la</strong>rgos proyectos <strong>del</strong> tipo cascada, estas actividades basadas en p<strong>la</strong>nes pierden su<br />
relevancia cuando se trabaja con iteraciones en <strong>la</strong>s cuales el equipo entero esta centrado<br />
en hacer que <strong>la</strong>s pocas funcionalidades de prioridad más alta sean aceptadas. En lugar<br />
de tener una persona manteniendo un banco de datos de tareas se<strong>para</strong>do y desasociado<br />
de los artefactos diarios que el equipo está efectivamente p<strong>la</strong>nificando e implementando<br />
(por ejemplo, historias de usuarios y pruebas), los programas mayores necesitan de un<br />
ambiente de co<strong>la</strong>boración en tiempo real que soporte <strong>la</strong> señalización natural que se produce<br />
entre los miembros <strong>del</strong> equipo a medida que hacen una funcionalidad avanzar <strong>del</strong> Backlog<br />
<strong>del</strong> Producto a los procesos de desarrollo, pruebas e integración. Para emu<strong>la</strong>r un equipo<br />
trabajando en el mismo local, este ambiente de gestión de proyectos ágiles tiene que<br />
permitir que todos vean y se actualicen rapidamente cuando una funcionalidad está en su<br />
ciclo de vida, cuanto esfuerzo aún será necesario antes de su conclusión y que problemas<br />
específicos están bloqueando su progreso.<br />
Además de necesitar de nuevos modos <strong>para</strong> p<strong>la</strong>nificar y monitorizar nuestras iteraciones,<br />
los recursos de <strong>la</strong>s herramientas aplicados <strong>para</strong> definir, organizar y compartir nuestros<br />
artefactos de sistema también tienen nuevas exigencias. La gestión de los requisitos, de<br />
sus pruebas de aceptación y de sus defectos exige soporte que sea horizontal <strong>para</strong> todas<br />
<strong>la</strong>s actividades <strong>del</strong> ciclo de vida dentro de un Sprint, y no vertical, con silos profundos de<br />
informaciones sobre artefactos deficientemente re<strong>la</strong>cionadas con los compromisos que<br />
los equipos asumieron. En verdad, en <strong>la</strong>s iteraciones rápidas, <strong>la</strong>s re<strong>la</strong>ciones entre estos<br />
artefactos es que realmente dan más preocupación a los equipos. Al final de cuentas, cada<br />
Sprint está produciendo muchos segmentos de código testado funcional, por lo tanto, los<br />
equipos necesitan entender exactamente como estos artefactos de ingeniería se re<strong>la</strong>cionan<br />
unos con los otros y lograr ver su status a todo el momento.<br />
Oportunidades de <strong>la</strong> Infraestructura de Herramientas<br />
Al final, siendo desarrol<strong>la</strong>dores de software, los equipos naturalmente van a querer organizar<br />
mejor sus artefactos y automatizar los aspectos <strong>del</strong> proceso Scrum que se prestan al<br />
soporte de software. Específicamente, los equipos probablemente van a querer agregar<br />
soporte de infraestructura <strong>para</strong> <strong>la</strong>s actividades y los tipos de artefacto <strong>del</strong> ciclo de vida <strong>del</strong><br />
software descritos a<strong>del</strong>ante:<br />
• Gestión de Backlogs – Con el aumento de <strong>la</strong> complejidad <strong>del</strong> sistema, el equipo<br />
deseará soporte mejor <strong>para</strong> <strong>la</strong> captura y mantenimiento de <strong>la</strong>s listas de funcionalidades,<br />
de requisitos funcionales y no funcionales, casos de uso e historias de usuarios, así<br />
como también de <strong>la</strong>s prioridades, estimaciones, status y owners de estos ítems. Como<br />
el Scrum puede ser aplicado a proyectos mayores, estos artefactos pueden alcanzar <strong>la</strong><br />
casa de los miles, y poder contar con un medio <strong>para</strong> organizarlos, soportarlos y verlos a<br />
través de sistemas o subsistemas se vuelve crucial.<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
26
• Informes de Proyectos - El Scrum evita p<strong>la</strong>nes de proyectos tradicionales, <strong>del</strong> tipo<br />
cascada, pero <strong>la</strong> naturaleza táctica de <strong>la</strong> gestión diaria de proyectos de Scrum es<br />
intensa y constante. El equipo necesitará de un modo simple de permitir a cada miembro<br />
informar sus estimaciones de tareas, su status y el esfuerzo restante de forma que los<br />
Gráficos de BurnDown sean automatizados y permanezcan continuamente disponibles.<br />
Además, <strong>la</strong> infraestructura deberá soportar <strong>la</strong> señalización natural que los equipos utilizan<br />
a <strong>la</strong> medida que los ítems de backlog van pasando por su ciclo de vida. Los funcionarios<br />
graduados van a tener que observar los equipos y entender sus iteraciones y p<strong>la</strong>nes de<br />
release individuales <strong>para</strong> poder evaluar el status de sus programas como un todo.<br />
• E<strong>la</strong>boración de Requisitos Just-in-time – Muchos proyectos menores de Scrum<br />
obtienen éxito con mecanismos informales de requisitos, como discusión directa entre<br />
el Product Owner y el Equipo, pero, a <strong>la</strong> medida que aumenta <strong>la</strong> complejidad de los<br />
proyectos y el grado de criticidad crece, puede haber necesidad de mayor profundidad<br />
y riqueza de expresión de requisitos y de control de sus versiones. Por ejemplo, <strong>la</strong><br />
documentación de <strong>la</strong>s Interfaces que afectan diversos equipos se vuelve crucial.<br />
Cambios en <strong>la</strong>s Interfaces o nuevas funcionalidades que extrapo<strong>la</strong>n los límites <strong>del</strong><br />
equipo pueden tener un impacto significativo en el proyecto. Estos requisitos deben ser<br />
e<strong>la</strong>borados en el esquema just-in-time, es decir, durante o poco antes <strong>del</strong> Sprint que<br />
implementará <strong>la</strong> nueva funcionalidad. Para resolver este problema, los equipos podrán<br />
desear un soporte centralizado <strong>para</strong> formas más e<strong>la</strong>boradas de expresión de requisitos,<br />
su compi<strong>la</strong>ción <strong>para</strong> análisis y notificación automatizada de cambios.<br />
• Prueba Preliminar – Dado que todo Sprint entrega potencialmente código utilizable<br />
en <strong>la</strong> baseline <strong>del</strong> producto, el desarrollo de casos de pruebas y <strong>la</strong> automación de<br />
pruebas preliminares permiten a los equipos soportar los requisitos de iteraciones<br />
rápidas de Scrum. El grupo de herramientas que genera casos de test directamente<br />
desde requisitos o story cards va a acelerar el proceso de desarrollo y proporcionar <strong>la</strong><br />
rastreabilidad inherente necesaria <strong>para</strong> demostrar <strong>la</strong> aceptación de <strong>la</strong> funcionalidad. Sepa<br />
que <strong>la</strong> gestión continua de <strong>la</strong>s cientos y miles de pruebas de regresión resultantes irá,<br />
probablemente, convertirse el factor crucial <strong>para</strong> determinar <strong>la</strong> velocidad y el éxito de sus<br />
Sprints.<br />
• P<strong>la</strong>nificación <strong>del</strong> Release – La filosofía de Scrum foca en <strong>la</strong> “arte <strong>del</strong> posible en el p<strong>la</strong>zo<br />
más corto”, en oposición a <strong>la</strong> magia negra de supuestamente predecir exactamente lo<br />
que será entregue en <strong>la</strong>s 6 a 12 Sprints más a<strong>del</strong>ante. Esta filosofía representa un gran<br />
progreso en términos de co<strong>la</strong>boración, pues permite a los equipos de Scrum centrar<br />
profundamente por 30 días en cada ciclo y, de esa manera, producir software funcional<br />
con más seguridad. Sin embargo, conforme los equipos van creciendo y se expandiendo,<br />
<strong>la</strong> aplicación de más análisis y rigor a los Sprints además <strong>del</strong> horizonte inmediato ayuda a<br />
evitar <strong>la</strong>s arquitecturas que exigen refactorizaciones significativas más a<strong>del</strong>ante. Aunque<br />
<strong>la</strong> refactorización sea altamente incentivada en <strong>la</strong> metodología ágil, el<strong>la</strong> se vuelve menos<br />
práctica a <strong>la</strong> medida que el alcance de <strong>la</strong> aplicación y el número de implementaciones ya<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
27
existentes aumentan. Una mejor p<strong>la</strong>nificación <strong>del</strong> release que nos proporcione una pista<br />
de despegue arquitectónico normalmente es apropiado. Por lo tanto, el arte de p<strong>la</strong>nificar<br />
el Sprint puede incluir funciones de p<strong>la</strong>nificación <strong>del</strong> tipo “retirar algunos Sprints “ e “y<br />
si” que ayuden los equipos a hacer intercambios de backlogs y transmitir una visión y un<br />
Roadmap de producto razonables a los patrocinadores.<br />
Además, estos equipos normalmente van a querer organizar todos estos activos en un<br />
repositorio central, donde cualquier miembro <strong>del</strong> equipo podrá accederlos, en el esquema<br />
24x7, en ámbito mundial y que permita visualizar instantáneamente el status de los<br />
proyectos y programas, con notificación de cambios automatizado en caso de alteraciones<br />
cruciales en los proyectos.<br />
Evolucionando <strong>la</strong> Infraestructura en Sprints<br />
En Scrum, <strong>la</strong> implementación de este nivel de infraestructura no es un evento raro o único,<br />
hecho “de antemano” por un equipo de herramientas. Al contrario, los equipos de Scrum<br />
asumen <strong>la</strong> tarea de identificar lo que el<strong>la</strong>s irán a comprar y construir <strong>para</strong> resolver sus<br />
problemas con base en <strong>la</strong>s lecciones que aprendieron en los Sprints anteriores. Además,<br />
estas inversiones son hechas en el contexto de los Sprints en progreso. Por lo tanto, el<br />
equipo trata de <strong>la</strong> creación de <strong>la</strong> infraestructura añadiendo ítems al Backlog de Producto<br />
<strong>para</strong> resolver los ítems de <strong>la</strong> infraestructura, como muestra <strong>la</strong> Figura 4 abajo. Es c<strong>la</strong>ro<br />
que el cliente que está <strong>del</strong>ante de una funcionalidad aún tiene prioridad, pero el equipo<br />
experimentado reconoce que necesita ser capaz de programar continuamente el trabajo de<br />
<strong>la</strong> infraestructura de forma a mantener su velocidad y productividad conforme el alcance de<br />
<strong>la</strong> aplicación y el número de equipos van creciendo.<br />
Figura 4: Análisis de <strong>la</strong> Infraestructura de Esca<strong>la</strong>bilidad en un Sprint<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
28
Conclusión<br />
Scrum es una práctica de desarrollo de software comprobada y eficaz, que puede<br />
rápidamente aumentar <strong>la</strong> productividad, <strong>la</strong> velocidad de entrega y <strong>la</strong> calidad de los equipos<br />
de software.<br />
¿Qué departamento de TI no podrá obtener estos atributos comúnmente experimentados<br />
por miles de instituciones a través de implementaciones exitosas de Scrum?<br />
• Reducción <strong>del</strong> tiempo <strong>del</strong> ciclo de desarrollo<br />
• Mayor valor de procesamiento <strong>para</strong> los usuarios finales<br />
• Mayor calidad<br />
• Reducción de riesgos de desarrollo<br />
• Mayor satisfacción <strong>del</strong> usuario<br />
• Alza de <strong>la</strong> moral de los empleados y <strong>la</strong> empresa<br />
Aunque parezca simple a primera vista, <strong>la</strong> implementación de Scrum normalmente exige<br />
un cambio organizacional significativo <strong>para</strong> eliminar los impedimentos que obstaculizan el<br />
desarrollo y <strong>la</strong> entrega eficaz <strong>del</strong> mismo. Como principal agente de cambios, el <strong>CIO</strong> u otro<br />
sponsor ejecutivo, tiene <strong>la</strong> responsabilidad primordial de eliminar estos impedimentos. Este<br />
el compromiso perenne <strong>del</strong> <strong>CIO</strong>, que puede ser <strong>la</strong> diferencia entre el éxito y el fracaso de <strong>la</strong><br />
implementación de Scrum. Aunque esto no es fácil, el <strong>CIO</strong> que se compromete a mejorar<br />
el rendimiento de los equipos de desarrollo de software utilizando el Scrum habrá dado el<br />
primer paso <strong>para</strong> asegurarse que <strong>la</strong> empresa está en el camino adecuado <strong>para</strong> obtener los<br />
beneficios comerciales de una entrega de software más rápida y de mejor calidad.<br />
Además, Scrum es altamente eficaz en el desarrollo de aplicaciones corporativas de gran<br />
esca<strong>la</strong> y capaz de soportar <strong>la</strong>s necesidades de cientos de desarrol<strong>la</strong>dores trabajando en<br />
aplicaciones compartidas. El dimensionamiento de Scrum impone una serie de desafíos a<br />
<strong>la</strong> infraestructura y al grupo de herramientas que los propios equipos tendrán que resolver -<br />
pero al superar estos desafíos se irá probablemente a obtener una alta ventaja competitiva,<br />
en re<strong>la</strong>ción a los rivales de negocio.<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
29
Bibliografia<br />
Agile Manifesto: www.agilealliance.org<br />
Beck, Kent. Extreme Programming Exp<strong>la</strong>ined: Embrace Change (2ª Edición). Boston:<br />
Addison-Wesley, 2004.<br />
Schwaber. Ken. Agile Project Management with Scrum. Redmond, WA: Microsoft Press,<br />
2004.<br />
Schwaber, Ken, and Mike Beedle. Agile <strong>Software</strong> Development with Scrum. Upper Saddle<br />
River, N.J.: Prentice Hall, 2002.<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
30
Apéndice A - Recursos<br />
Lecturas Seleccionadas<br />
Beck, Kent. Extreme Programming Exp<strong>la</strong>ined: Embrace Change 2nd Edition. Boston:<br />
Addison-Wesley, 2004. Cockburn, Alistair. Agile <strong>Software</strong> Development. Boston: Addison-<br />
Wesley, 2002.<br />
Cohn, Mike. User Stories Applied. Boston, MA: Pearson Education, 2004.<br />
Highsmith, Jim. Agile Project Management: Creating Innovative Products. Boston: Pearson<br />
Education, 2004. Nonaka, Ikujiro and Hirotaka Takeuchi. The Knowledge-Creating Company.<br />
Oxford University Press, 1995. Poppendieck, Mary and Tom Poppendieck. Lean <strong>Software</strong><br />
Development. Addison-Wesley, 2003.<br />
Schwaber. Ken. Agile Project Management with Scrum. Redmond, WA: Microsoft Press,<br />
2004.<br />
Schwaber, Ken, and Mike Beedle. Agile <strong>Software</strong> Development with Scrum. Upper Saddle<br />
River, N.J.: Prentice Hall, 2002. Larman, Craig. Agile and Iterative Development: A Manager’s<br />
Guide, Boston: Addison Wesley 2004<br />
Entrenamiento Ágil<br />
SCRUM Master C<strong>la</strong>ss - www.controlchaos.com/certifiedscrum/<br />
EXtreme Programming - www.xprogramming.com/xpmag/services.htm<br />
Herramientas y Entrenamiento Ágil<br />
<strong>Rally</strong> <strong>Software</strong> Development: www.rallydev.com<br />
Otros<br />
Agile Alliance: www.agilealliance.org<br />
ScrumAlliance: http://www.scrumalliance.org/<br />
Posibles newsgroups <strong>para</strong> interesados en Scrum / Agile:<br />
Desarrollo en Scrum : http://groups.yahoo.com/group/scrumdevelopment/<br />
Gestión Ágil: http://groups.yahoo.com/group/agilemanagement/<br />
Tests Ágiles: http://groups.yahoo.com/group/agile-testing<br />
Desarrollo en Lean: http://groups.yahoo.com/group/leandevelopment/<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
31
Apéndice B – El Manifiesto Ágil<br />
En 2001 se celebró en Snowbird, Utah, EE.UU., un workshop en el que varios creadores y<br />
practicantes de metodologías ágiles se reunieron <strong>para</strong> entender lo que tenían en común. Se<br />
eligió <strong>la</strong> pa<strong>la</strong>bra “ágil” como un término general y se e<strong>la</strong>boró el Manifiesto por el Desarrollo<br />
Ágil de <strong>Software</strong>, cuyo pi<strong>la</strong>r es una afirmación de valores compartidos:<br />
“Estamos descubriendo mejores maneras de desarrol<strong>la</strong>r software haciéndolo y ayudando a<br />
otros a hacerlo. A través de este trabajo, hemos aprendido a valorar:<br />
• Individuos e interacciones sobre procesos y herramientas<br />
• <strong>Software</strong> de Trabajo sobre <strong>la</strong> documentación completa<br />
• Co<strong>la</strong>boración con el cliente sobre negociación de contratos<br />
• Respuesta ante el cambio sobre seguir un p<strong>la</strong>n<br />
Es decir, mientras que hay valor en los elementos de <strong>la</strong> derecha, valoramos más los<br />
elementos a <strong>la</strong> izquierda”.<br />
El Manifiesto ha tenido un impacto y provocó <strong>la</strong> creación de varios proyectos ágiles nuevos.<br />
Como con cualquier intento humano, algunos otros no tuvieron éxito. Pero lo que más<br />
impacto tuvo en los éxitos fue el vínculo que los empresarios y los técnicos tuvieron con<br />
su proyecto. Esta era <strong>la</strong> forma en que ellos querían que el software fuese desarrol<strong>la</strong>do. Los<br />
proyectos exitosos han generado más entusiastas.<br />
Principios detrás <strong>del</strong> Manifiesto Ágil<br />
Los firmantes <strong>del</strong> Manifiesto Ágil acordaron 12 principios que subscriben y refuerzan el<br />
manifiesto. Estos principios se centran en los resultados y los cambios, en <strong>la</strong>s personas y <strong>la</strong><br />
comunicación y feedback:<br />
Deliverables y Cambios<br />
En lugar de prescribir o asesorar a un gran número de artefactos que deben ser entregados<br />
como resultado de una finalización exitosa <strong>del</strong> proyecto, los métodos ágiles se remontan al<br />
principio entregable: software funcional.<br />
• Acoger los requisitos variables, incluso en el final <strong>del</strong> desarrollo. Los procesos ágiles<br />
exploran los cambios <strong>para</strong> dar ventaja competitiva al cliente.<br />
• Los mejores proyectos, arquitecturas y requisitos emergen de equipos que se autoorganizan.<br />
• Sencillez - el arte de maximizar <strong>la</strong> cantidad de trabajo no hecha - es esencial.<br />
• La atención continua con <strong>la</strong> excelencia técnica y el buen design aumenta <strong>la</strong> agilidad.<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
32
Personas y Comunicación<br />
Crear sistemas funcionales de software es, en primer lugar, tratar con <strong>la</strong> gente.<br />
• Cree proyectos en torno a individuos motivados. Dales el entorno y el soporte que<br />
necesitan y confía en ellos <strong>para</strong> realizar el trabajo.<br />
• Los hombres de negocios y los desarrol<strong>la</strong>dores deben trabajar juntos diariamente a lo<br />
<strong>la</strong>rgo <strong>del</strong> proyecto.<br />
• El método más eficiente y eficaz de transmisión de información hacia y dentro de un<br />
equipo de desarrollo es <strong>la</strong> interacción cara a cara.<br />
• Procesos ágiles promueven el desarrollo sostenible. Los patrocinadores, desarrol<strong>la</strong>dores<br />
y usuarios deben ser capaces de mantener un ritmo constante de forma indefinida.<br />
Feedback<br />
Ningún proceso o método puede ser estático, así, feedback y auto-ajuste necesitan ser<br />
integrados.<br />
• A intervalos regu<strong>la</strong>res, el equipo reflexiona sobre cómo ser más eficaz y sintoniza y ajusta<br />
su comportamiento de acuerdo con esta reflexión.<br />
Crédito a los líderes de los métodos ágiles<br />
Un gran número de líderes intelectuales ha participado en el desarrollo de varios métodos<br />
ágiles, siendo imposible reconocerlos todos. Entre ellos citamos: Kent Beck (XP), Mike<br />
Beedle, Ken Schwaber & Jeff Suther<strong>la</strong>nd (Scrum), Alistair Cockburn (Crystal), Ward<br />
Cunningham (FIT), Martin Fowler (XP), Jim Highsmith (Agile Project Management), Marie &<br />
Tom Poppendieck (Lean <strong>Software</strong> Development) y Ron Jeffries (XP).<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
33
Apéndice C – Métricas de Scrum<br />
Tab<strong>la</strong> 1 – Métricas <strong>del</strong> Proceso Scrum (Hartmann, Stallings)<br />
Proyecto: Puntuación (0-5) Sprint 1 Sprint 2<br />
1. Product Owner<br />
Backlog <strong>del</strong> Producto desarrol<strong>la</strong>do poseído y gestionado por el<br />
Product Owner<br />
Proceso <strong>del</strong> Product Owner es flexible; co<strong>la</strong>boración con equipo<br />
es continua<br />
Participación <strong>del</strong> Product Owner y <strong>del</strong> stakeholder en el Análisis<br />
<strong>del</strong> Sprint<br />
Product Owner gestiona proyecto por valor<br />
Puntuación Total de “Product Owner”<br />
2. P<strong>la</strong>nificación<br />
Backlog <strong>del</strong> Producto es descriptivo, priorizado y tiene<br />
estimaciones eficaces<br />
Equipo desarrol<strong>la</strong> y gestiona el Backlog <strong>del</strong> Sprint<br />
Equipo involucra stakeholders y dependencias de forma eficaz<br />
Progreso <strong>del</strong> proyecto puede ser monitoreado por backlog<br />
BurnDown y burnup de valores<br />
Ritmo sostenible<br />
Puntuación Total de “P<strong>la</strong>nificación”<br />
3. Programación<br />
P<strong>la</strong>nificación de Sprint regu<strong>la</strong>r, en el momento oportuno,<br />
totalmente asistido<br />
Análisis de Sprint regu<strong>la</strong>r, en el momento oportuno, totalmente<br />
asistida<br />
Scrum Diario ocurre en el momento oportuno, es totalmente<br />
asistido<br />
Equipo cumple sus compromisos con el Sprint<br />
Puntuación Total de <strong>la</strong> “Programación”<br />
4. Proceso<br />
Equipo se autovigi<strong>la</strong> y refuerza el uso de proceso y reg<strong>la</strong>s<br />
Organización es capaz de cumplir reg<strong>la</strong>s de Scrum<br />
ScrumMaster es eficaz en hacer seguir proceso<br />
Equipo está se autogerindo<br />
Sorpresas no ocurren<br />
Equipo es interdisciplinar<br />
Equipo y Product Owner co<strong>la</strong>boran y trabajan unidos<br />
Equipo trabaja <strong>para</strong> mejorar a sí y a sus procesos<br />
Equipo gestiona dependencias adecuadamente<br />
Puntuación Total de “Proceso”<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
34
Proyecto: Puntuación (0-5) Sprint 1 Sprint 2<br />
5. Equipo<br />
Miembros <strong>del</strong> equipo son dedicados y honran compromisos<br />
Equipo efectivamente actúa sobre indicadores en Sprint<br />
BurnDown<br />
Comunicaciones entre miembros <strong>del</strong> equipo son eficaces<br />
Equipo gestiona conflicto de forma eficaz dentro <strong>del</strong> equipo<br />
Equipo mejora procesos de desarrollo internos<br />
Puntuación Total de <strong>la</strong> “Equipo”<br />
6. Informes<br />
Backlog <strong>del</strong> Producto es mantenido y transmitido de forma<br />
eficaz<br />
Backlog <strong>del</strong> Sprint es mantenido y transmitido de forma eficaz<br />
Informes <strong>del</strong> Proyecto y <strong>del</strong> Sprint son eficaces y<br />
comprendidos<br />
Valor es utilizado <strong>para</strong> gestionar el Backlog <strong>del</strong> Producto<br />
Puntuación Total de “Informes”<br />
7. Prácticas de Ingeniería / Infraestructura<br />
Por lo menos creación diaria<br />
Biblioteca común de código fuente<br />
Métrica <strong>para</strong> calidad de incremento<br />
Métrica de incremento cumplida<br />
Prácticas de desarrollo dirigidas a pruebas<br />
Prácticas de refactorización<br />
Prácticas de análisis de design<br />
Prácticas de análisis de codificación<br />
Padrones de codificación<br />
Equipo de test unitario automatizado<br />
Equipo de test de aceptación automatizado<br />
Puntuación Total de <strong>la</strong> “Ingeniería”<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
35
Tab<strong>la</strong> 2 – Métricas <strong>del</strong> Proyecto Scrum<br />
(<strong>Rally</strong> <strong>Software</strong> Development Corp.)<br />
Proyecto: Sprint 1 Sprint 2<br />
Funcionalidad<br />
Nuevas Funcionalidades P<strong>la</strong>nificadas<br />
Nuevas Funcionalidades Concluidas<br />
Story cards<br />
En iteración<br />
Aceptados<br />
% de Aceptados<br />
Nº no aceptados<br />
Nº empujados <strong>para</strong> <strong>la</strong> próxima<br />
Nº empujados posteriormente<br />
Nº agregados/apagados<br />
Cualidad y Automación de Pruebas<br />
% de SC con prueba disponible / pruebas automatizadas<br />
Open Defect Count (P1 + P2)<br />
Total Open Defect Count<br />
Nº de casos de prueba<br />
Nº de casos de prueba manuales exigidos <strong>para</strong> retroceder<br />
Code coverage %<br />
Arquitectura<br />
Refactors concluidos<br />
Refactors en progreso<br />
Refactor backlog<br />
Customer debt features<br />
Débito de funcionalidades <strong>del</strong> cliente aceptado<br />
P<strong>la</strong>n <strong>del</strong> Release<br />
Seguridad de que el p<strong>la</strong>n <strong>del</strong> release fue comprendido<br />
Seguridad en el cumplimiento <strong>del</strong> p<strong>la</strong>n<br />
Fecha de Release P<strong>la</strong>nificada<br />
Fecha de Release Real<br />
www.rallydev.com<br />
©2013 <strong>Rally</strong> <strong>Software</strong> Development<br />
36