01.05.2015 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!