Artículos

Primeros Pasos en la Adopción de Scrum como Estrategia Organizacional

¿Está mi organización lista para lograr una transformación Scrum? ¿Cómo puedo lograr una transformación Scrum?

El interés sobre el mundo de la Agilidad está creciendo sin duda alguna. He identificado tres tipos o fases de interés en la industria local.

  1. Curiosidad: “Se está hablando mucho sobre Ágil y Scrum, ¿qué será eso?”
  2. Impacto emocional inicial: “Parece que Ágil solucionaría nuestros problemas más importantes, pero no lo termino de entender muy bien.”
  3. Determinación: “¡Quiero que mi organización lo implemente!”

La mayoría de organizaciones están entre las etapas de Curiosidad e Impacto Inicial Emocional. Durante estas etapas iniciales, todavía no hay mucho interés en querer adoptar realmente Scrum.

Para llegar a la etapa de Determinación, he visto que se requieren al menos uno de los siguientes factores:

  • Requerimiento Explícito de Negocio: Usted es un proveedor de servicios de desarrollo de software y un cliente importante, o potencial, está requiriendo prueba de su adopción de Scrum. Este panorama no es nada raro, y menos raro aún es la recomendación (y hasta exigencia) de inversionistas de capital de riesgo para que las empresas usen Scrum.
  • Por convencimiento propio: Usted ve en Scrum la herramienta que necesitaba para manejar requerimientos cambiantes, cerrar adecuadamente el abismo entre clientes y desarrolladores de manera que el equipo desarrolle lo que el cliente quiere, lograr mayor compromiso de los miembros de equipo o elevar la calidad de código entregado…

Es claro que pasar de “tengo que implementar Scrum” a “quiero implementar Scrum” es vital para facilitar la adopción. Incidentalmente, he observado un gran problema del “tengo que implementar Scrum” en varios proveedores de servicios de desarrollo de software que usan “Scrum” o “Ágil” como argumento de venta y en realidad no han adoptado Agilidad o ni creen en tales cosas, creando una falsa percepción de lo que realmente significa es Ágil o usar Scrum. [Si quiere saber si un proveedor está usando Scrum y a qué nivel, pregunte por las siguientes métricas durante la primera conversación: cuántos equipos Scrum tiene, por cuánto tiempo cada equipo ha mantenida más o menos la mismas personas usando Scrum, cuál es la velocidad de los equipos en Story Points por Sprint, cuál es la capacidad de carga de los equipos, cuál es la exactitud de las estimaciones y de los compromisos...]

Cuando por convencimiento propio se adopta Scrum, un sin fin de preguntas surgen respecto a la forma y velocidad en que la organización debe o puede adoptarlo.

Durante las últimas conversaciones con nuestros clientes de Prontitud, surge a menudo la pregunta: ¿Cómo convenzo al Gerente General (o a mi superior) de que adoptemos Scrum?  Esta pregunta es central en el proceso de transformación hacia Scrum. Si su organización no tiene un campeón en las altas gerencias con poder de decisión y económico que defienda y patrocine la adopción de Scrum, le espera un largo y pedregoso camino cuesta arriba.

Cuando me hacen esta pregunta, propongo tres posibles estrategias:

  1. Que me permitan hablar directamente con el superior y hacerles una presentación sobre Scrum. He estado capacitando y viviendo la experiencia Scrum en la vida real, así que mi trabajo “vendiendo” Scrum por su valor real me sienta bien. Se logran sorprendentes resultados cuando la partes de negocios y altas gerencias tienen un claro panorama de Scrum y sus ventajas.
  2. Realizar una Evaluación de Capacidad de Adopción de Scrum/Agilidad. Es más fácil convencer a las altas gerencias a primero hacer una evaluación antes de comprometerse a realizar una transformación organizacional. Esta evaluación me da la oportunidad de encontrar los dolores más grandes que tiene la organización y analizo la eficacia de Scrum para desaparecerlos. Presentar este tipo de análisis es muy convincente. El análisis lo obtengo a partir de conversaciones con los representantes de negocio y desarrollo en donde consigo respuestas a una gran cantidad de preguntas, algunas de las cuales son: ¿Cuánto apoyo hay desde las altas gerencias? ¿Cuánto entrenamiento se hará disponible a nivel institucional? ¿Habrá entrenamiento para el Product Owner? ¿Hay código fuertemente acoplado? …
  3. Establecer un equipo piloto. Cuando las altas gerencias están con cierto convencimiento acerca el uso de Scrum, intento irme por la ruta de hacer un equipo piloto. Busco un proyecto o equipo que tenga criticidad media (desde el punto de vista del negocio) para entonces llevar a ese equipo a usar Scrum y medir los resultados en términos de incremento de valor entregado en cierto período de tiempo.  Una criticidad media es ideal porque es lo suficientemente crítico como para que su eventual éxito usando Scrum sea visible (y por lo tanto sea argumento convincente para escalarlo al resto de la organización), pero no tan crítico de manera que los gerentes digan que es muy peligroso intentar algo nuevo en algo tan crítico. Durante el período piloto, 1) la organización entera está consciente que hay un equipo que está recibiendo capacitación y coaching sobre Scrum con el fin de obtener un incremento de productividad en cierta cantidad de tiempo; 2) el equipo irradia información diariamente a todas las personas en la organización.

La transición a Scrum es un esfuerzo intencional institucional y estratégico con miras a resultados concretos. Es un esfuerzo que no se logra con solo leer unos libros de Scrum y unos blogs, requiere entrenamiento y guía. El conocimiento de los libros y blogs proveen un fundamento invaluable, el entrenamiento y guía provee la experiencia para entender el contexto organizacional para realizar la transición de forma exitosa. La transición requiere de una estrategia.

Post to Twitter

¿Scrum sin Product Onwer? Fracaso seguro

Después del AgileFest, tuve una muy enriquecedora conversación con uno de los asistentes al evento con el que pude expresarle varios puntos sobre el rol del Product Owner, los cuales expresaré en este post.

El inicio de la conversación lo marcaron dos realidades:

  • La adopción de Scrum es un esfuerzo organizacional intencional: Si no hay un “champion“, “sponsor” en los altos mandos, es muy probable que el esfuerzo sea fútil. Si el valor de Scrum no es percibido en el upper-management, se está cuesta arriba. Al ser organizacional, los stakeholders experimentan una forma diferente de hacer las cosas. La adopción es arriba hacia abajo, no al revés.  Ahora bien, “de arriba hacia abajo” es la consecuencia, la causa es que alguien del upper-managament compró la idea. Tiene sus ventajas cuando todo empieza como un “grass-roots movement” o de “guerrilla” en las trincheras de ingeniería pues la inquietud llega arriba en algún momento y allí se puede convencer a alguien para que apoye la iniciativa para que entonces baje con respaldo.
  • Fallar en concretizar el rol del Product Owner causa la mayoría de fracasos en adoptar Scrum. Y cuando digo “fracaso” me refiero que el proyecto no cumplió las expectativas, es decir, el proyecto falló.

Elaboraré un poco sobre el Product Owner, y trataré con mi explicación aclarar porqué no tener un Product Owner te lleva al fracaso (hey por eso hay certificaciones/cursos para llegar a ser un Product Owner, imagínese):
Mike Cohn en su libro Succeeding with Agile: Software Development Using Scrum menciona que el Product Owner tiene dos responsabilidades generales:

  1. Proveer la visión.
  2. Proveer los límites o condiciones, las restricciones.

La primera es generalmente clara, pero lo segunda se aborda muy poco.
Sin embargo la segunda responsabilidad es vital pues describe las realidades dentro de las cuales la visión debe concretizarse.
Los límites o condiciones vienen normalmente en la forma de restricciones:

  • Lo necesito para Setiembre.
  • Necesitamos reducir el costo por unidad a la mitad.
  • Debe correr al doble de la velocidad.
  • Debe usar solo la mitad de memoria que lo que usa ahora.
  • Y por supuesto, una intrínseca, hasta obvia: No debe tener pulgas [bugs, defectos, seguiré llamándolos pulgas] según lo especificado.

Esas restricciones las da el Product Owner, pero a su vez son restricciones que fueron puestas sobre él por los stakeholders de una u otra forma.

El Product Owner jamás debe permitir que los usuarios finales reciban un “producto pulguiento”. Esa restricción de ser claramente transmitida al equipo desde el día uno. Si en la primera iteración el equipo entrega incrementos [User Stories "completos" según el equipo] pulgosos, el Product Owner no los puede aceptar. Él es responsable por eso. Si hay un problema de habilidades [QA, buenas prácticas, diseño, etc..] en el equipo, eso debe escalarse inmediatamente. Usando Scrum, se detecta ese problema muy temprano si no se ha detectado en el momento de conformar el equipo.

Realmente el Product Owner pasa muy ocupado: Recibiendo requerimientos y coordinando con todos los stakeholders, actualizando el Product Backlog, confirmando que las restricciones se están cumpliendo.

Un buen Product Owner es aquel que complementa sus habilidades con Product Management. Como consejo:en algunos casos es más fácil decirle al upper-management que necesitamos un “Product Manager” en lugar de decir ocupamos un “Product Owner“.

Espero ser claro en este punto: El equipo de desarrollo no puede transgredir los limites establecidos por el Product Owner, a menos claro, que esos límites sean absurdos, cínicos, imposibles. El equipo no anda por la libre haciendo lo quiere. El equipo debe complacer completamente las expectativas del Product Owner según las restricciones que él establezca.

Y atención: El Product Owner define el “qué” y las restricciones, el equipo define el “cómo”. En el ámbito del “cómo” (de nuevo, según las restricciones) el Product Owner no tiene autoridad. El ScrumMaster ayuda al equipo a encontrar un “cómo” que mejore continuamente y lo lleve a ser hiper-productivo.

Product Management

¿Conviene tener un departamento o equipo de Product Management? La respuesta a eso depende si la institución debe crear varios productos de cierto tamaño los cuales deben obedecer a una estrategia institucional que se revise cada cierto tiempo.
Ser un Product Manager es una de las profesiones más difíciles pero importantes. Por eso es difícil encontrar alguien que quiera aceptar un puesto así. Debe construir un producto tomando como entradas:

  1. La estrategia de negocio: “Durante este año iremos en esta dirección”.
  2. Las opiniones y requerimientos de los stakeholders, que a veces son varios: Muchos managers queriendo meter la cuchara.
  3. La retroalimentación continua de los usuarios finales.
  4. Las tendencias de mercado. Coordinar constantemente el departamento de ventas y el de mercadeo.
  5. Requerimientos para cumplir con las leyes estatales y regulaciones institucionales internas.
  6. Criterio técnico del equipo de desarrollo.

El éxito de un equipo de Scrum estriba dos factores:

  • Product Managenement: Una buena definición del Producto y evolución del mismo.
  • Project Management: Un ciclo de desarrollo de software iterativo incremental basado en la retroalimentación constante y la auto-regulación de un equipo multifuncional.

Post to Twitter

Las ideas detrás del Manifiesto Ágil

 

Elmer y yo recorremos cada uno de los puntos principales del Manifiesto Ágil y aportamos nuestras perspectivas y experiencias al respecto.

El Manifiesto Ágil fue el escrito público que unificó en un solo lugar las ideas fundamentales y principios detrás del éxito que varios profesionales del desarrollo del software por fin tenían.

Lo más llamativo del Manifiesto es que rompía con los preceptos tradicionales de la administración de proyectos.

Escúchennos a Elmer y a mí comentar al respecto.

Post to Twitter

¿Cuál es el valor de asistir a nuestro Taller de Certificación Scrum?

Esta es una muy válida pregunta.

La validez de esta pregunta radica en el énfasis de la palabra “valor”. Precisamente cualquier interés que se tenga en Scrum debe estar basado en el valor que Scrum por sí mismo provea, así que primero me dirigiré tratar valor que provee Scrum como marco de trabajo para el desarrollo de software, luego abarcaré el valor de asistir a un Taller de Certificación de Scrum.

Padecimientos en el mundo del software

El desarrollo software tradicional alrededor del mundo tiene dos enfermedades:

  1. Interrupción del flujo del “valor”. Me refiero al flujo que empieza desde que el cliente define el valor que quiere obtener y que termina cuando obtiene el producto que debiera reflejar ese “valor”.  Me refiero a la incapacidad de sintetizar las necesidades del cliente (customer value) y transmitirlas fielmente a equipo de desarrollo para ser implementadas. Esto se traduce en, en el mejor de los casos, completar un producto que cumple con el documento de requerimientos, pero no con las expectativas del cliente.
  2. Desperdicio. Le reto a que dedique un momento para calcular cuánto tiempo (mejor aún, tradúzcalo a dólares) que es desperdiciado en:
    • Reuniones irrelevantes para la mayoría de los asistentes.
    • No llegar a tiempo a reuniones que sí son relevantes para todos los asistentes.
    • Yendo y viniendo entre el Departamento de Desarrollo y el Departamento de QA.
    • Discutir e implementar cosas que no son prioritarias.
    • Planear con detalle microscópico tareas que al final no terminan haciéndose tal y como se planearon.
    • Tener un equipo que tiene el rendimiento de un grupo disjunto individuos.
    • Encontrar problema muy tarde en el progreso del proyecto, tan tarde que corregirlo es muy costoso.
    • Etc… puedo seguir enumerando muchas más, pero no quiero aburrir.

Dándole valor al valor

La columna vertebral de Scrum es el Product Backlog. Este artefacto es una lista de requerimientos priorizada por “valor” desde el punto vista del cliente. El formato que tiene y el tratamiento que recibe durante todo el proceso de desarrollo de Software Scrum hace que constantemente esté validado contra las expectativas del cliente.

Scrum es iterativo basado en retroalimentación. Esto permite manejar de forma realista y exitosa la naturaleza incierta inherente a todo proyecto de software. Esa incertidumbre que es tan bien manejada por Scrum viene de dos frentes:

  1. Desde el negocio. La mayoría de las veces, el cliente solo tiene una idea de lo que quiere. Lo único que tiene claro es que le duele algo y quiere algo que alivie ese dolor. Aún en el rarísimo caso que el cliente ya tenga una lista de requerimientos priorizada, la realidad es que conforme pase el tiempo se enterará de nuevas restricciones de mercado, o mejor aún se le ocurrirán mejores ideas. Y si tiene oportunidad de ver creciendo el producto implementado, va a querer cambiarlo para mejorarlo. Observe que asocio “cambio” con “mejoría”, por lo que adoptar una política de castigar el “cambio” no ayuda a entregar lo que el cliente realmente quiere.
  2. Desde la plataforma tecnológica. Un producto de software es la suma de miles de decisiones de naturaleza tecnológica que son imposibles de conocer de antemano. Esto es cierto aún si el mismo equipo ha desarrollado proyectos anteriores usando la misma plataforma tecnológica.

Scrum logra el manejo de estas incertidumbres mediante el mantenimiento constante del Product Backlog, el manejo de Sprints cortos y la dedicación exclusiva de un Product Owner como ente enteramente responsable de mantener el Product Backlog, y por lo tanto, de entregar lo que el cliente quiere. La herramienta más poderosa que tiene el Product Owner para lograr este cometido son los Sprint Reviews.

En resumidas palabras, Scrum dedica su existencia a que el concepto de valor sea fidedignamente transmitido al equipo de desarrollo.

Desperdicio es el enemigo

El ScrumMaster es quien lidera la lucha contra el desperdicio. En su rol de facilitador del equipo y líder servil, es también un vigilante constante del timeboxing de las reuniones y en contra de divagaciones durante las mismas.  Constantemente revisa que haya fluidez de tareas en el Taskboard y asegurándose que el equipo trabaja según la prioridad establecida para los User Stories del Sprint.

No hay que olvidar el claro rol del ScrumMaster: Desaparecer impedimentos, recordar constantemente la visión, dar constate visibilidad al estado del proyecto.

En Scrum se busca detalle microscópico en el Sprint en el que se va a trabajar,  pero visión panorámica para el resto del Backlog, evitándose el sobre-planeamiento común en la administración tradicional de proyectos.

En lugar de tener un grupo de personas trabajando en un proyecto, Scrum promueve pasar de grupo a un equipo. Reflexione sobre diferencia: tendrá un equipo cuando el rendimiento combinado de las personas sea mucho mayor que la suma por separado del rendimiento de cada persona. La forma en que se facilita desde el Planning Meeting hasta el Daily StandUp ayudan sincronizar al equipo, a empoderarlo para ser auto organizado en lugar que micro-manejado.

Pero todo eso lo puedo leer en blogs y libros

De eso no hay la menor duda. ¿Cuán complejo es el fundamento teórico del fútbol, es más, del ajedrez? Nada complejo, tienen reglas sencillas. Aún así, no es lo mismo ver a unos niños de escuela jugando futbol que un partido de futbol mundialista, aunque en el fondo están usando el mismo conjunto de reglas para jugar. Por más que sepa todas las reglas de ajedrez, le es fácil reconocer que requiere de las enseñanzas alguien con mayor destreza para  desarrollar pensamiento analítico y estratégico.

¿Cuáles son los retos a los que se enfrentará al implementar Scrum en su empresa? ¿Cuáles son los principios detrás de Scrum que son los que al final vale la pena siempre recordar cuando se deba tomar una decisión? Una vez teniendo una panorama completo de Scrum, en cuáles aspectos debe profundizar, dadas sus circunstancias? ¿Cuáles advertencias (basadas en mucha experiencia en equipos de Scrum) sobre adopción de Scrum me pueden ser útiles?

Scrum delinea conceptos que al oírlos explicados suenan con tan sentido común. Sin embargo recuerde que el sentido común deja de ser “común” cuando se está inmerso en el diario manejo de problemas y vacas sagradas de los ambientes de trabajo. Además, no es lo mismo reconocer un concepto a interiorizarlo.

Finalmente, aquí dejo un brevísimo video que recoge las impresiones de dos profesionales cuando les pregunté sobre cuál era el valor de haber asistido al Taller de Certificación de Scrum impartido por Michael Vizdos en Costa Rica:

Este video fue agregado usando YouTuber, plugin desarrollado por Roy Tanck. Se requiere Adobe Flash Player para visualizarlo.

Post to Twitter

Cómo ser un Gerente de Proyectos Altamente Efectivo

Antes de proceder a analizar como podemos llegar a ser Gerentes de Proyectos altamente efectivos, debemos recordar un par de aspectos: 1- son las personas las que son críticas para lograr el objetivo del proyecto y 2- es el gerente de proyectos el que proporciona el liderazgo al equipo del proyecto para lograr el objetivo.

Continuar Leyendo »

Post to Twitter

Subscríbase a las Noticias de Prontitud

Subscríbase a nuestro RSS, o ingrese su email abajo para que reciba actualizaciones, noticias y otras cosas geniales.

Próximos Eventos

  • Prontitud
  • Prontitud
  • Prontitud
  • Prontitud