viernes, 14 de noviembre de 2014

¿Qué significa eso de "cambio cultural"?

Los valores de Scrum
El cambio cultural en la transformación hacía la Agilidad son los cambios de mentalidad que se deben de producir en la forma de pensar y de hacer de aquellos, que habiendo trabajado en grupos de trabajo, en que cada miembro solamente se responsabiliza de su parcela de trabajo, no hayan experimentado el verdadero trabajo en equipo. El cambio consiste adquirir los valores de Scrum, valores que tienen relación con los pilares Lean de trabajo en equipo y mejora continua. Son valores que crean equipos ganadores, valores de los que depende el equipo y a la vez se crean en el día a día de:
  • Foco: Poniendo el foco en unas pocas cosas a la vez, conseguimos entregar antes, trabajamos mejor juntos y obtenemos resultados de mayor calidad.
  • Coraje: Formando equipo, sintiendo el apoyo de este, aceptamos nuevos retos confiando en que podremos alcanzar el resultado deseado.
  • Franqueza: Expresamos con sinceridad cómo lo estamos haciendo, y manifestamos nuestras preocupaciones y dificultades con las que topamos.
  • Compromiso: Tenemos la sensación de controlar nuestro destino y nos comprometemos con el resultado esperado.
  • Respeto: Al trabajar juntos, compartiendo éxitos y fracasos, promovemos el respeto mutuo.
Valores -> Scrum, gracias Alejandro
Estos valores construyen sobre el propósito, la motivación intrínseca más potente que se produce en las personas que trabajan con Scrum. Ese sentimiento de estar participando y aportando valor con nuestro trabajo a lo que nos rodea, la compañía, el negocio, los usuarios... es el mayor impulsor de creatividad y calidad.

Estos valores los podéis encontrar en documento Core-Scrum de Scrum Alliance.

Si queréis indagar un poco más alrededor del tema os invito a que echéis un vistazo a los principios activos del artículo de Juan Palacio: "Excipientes y principios activos de la Scrum".

martes, 11 de noviembre de 2014

¿Cómo implantar Agilidad en una empresa?

Agilidad - Scrum
El tema de la transición de gestión de proyectos en metodología tradicional (predictiva) a Agilidad (evolutiva) es tema de amplio debate e interés en los cursos. No se trata de un simple cambio de metodología, de nuevas reglas y prácticas, sino de que va acompañado de un cambio cultural muy profundo que ha de producirse en la mentalidad de cada uno de nosotros.

El cliente ha de ser consciente de que parte de lo quiere, una visión incompleta de lo que necesita, sabe lo que quiere pero no lo que necesita, y por tanto no ha de pensar en términos tradicionales de cerrar en alcance-plazo-coste. El enfoque ágil es construir a cachos, con entregas frecuentes, de manera que entre cacho y cacho pueda redefinir según le marque su mercado. Construirá mientras los cachos le den valor a su negocio o mientras el presupuesto lo permita.

Ha de cambiar esa forma de pensar que trata de buscar un proveedor como si de una "novia" se tratase, para luego "casarse" con ella y darle el proyecto. Hay que aprender a buscar un partner, alguien que camine a nuestro lado y nos haga crecer en una relación win-win. La confianza y el compromiso se irán construyendo con cada sprint, y si no engarzáramos con ese partner, hay que ser ágil y buscar otro partner. Todo ello sin prejuicio para ambas partes, simplemente cliente y proveedor no han engarzado.

El proveedor ha de ser partícipe de la misma perspectiva; no ofrecer un proyectoalcance-plazo-coste cerrados, sino dar la bienvenida a los cambios y dar respuesta rápida en la puesta en el mercado de lo que le da valor al cliente.


La estructura se vuelve más plana, un jefe de proyecto no tiene cabida, la persona si, en función de sus habilidades cambiarán sus responsabilidades a Propietario del Producto o a Scrum Master, incluso a mentor u experto técnico, ya que para un equipo comprometido y autogestionado el rol del jefe de proyecto puede anular al equipo ágil. También los miembros del equipo han de cambiar su forma de pensar, han de sentir que van en el mismo barco, que están comprometidos con el objetivo y éxito de todo el equipo, no solo con el individual. No ha lugar a especialistas en su reino, se requiere actitud de colaboración y compartición de conocimiento, tanto técnico como funcional. Hemos de estar abiertos a ser un equipo multifuncional, especialistas en lo nuestro pero interesados en lo que nos rodea.


Visto lo anterior se puede comprender que no es trivial transformar una empresa a ágil. La Agilidad se basa en 
cambiar de mentalidad, implementar gestión de personas (motivación, compromiso, fidelización...), rodar, fallar, coger experiencia, revisar, adaptarse, aprender y mejorar continuamente, por tanto se trata de empezar para ir evolucionando y madurando hacia la Agilidad.

Ese punto de partida es donde entra Scrum
. Scrum se concibió como una marco de trabajo para llevar a las empresas hacia la Agilidad. Todo los elementos de Scrum, sus roles, sus artefactos y sus reglas están pensados para iniciar a las empresas en la Agilidad y crear el ambiente propicio para que se den los cambios de mentalidad necesarios. Las propias reglas de Scrum, como no poder intervenir en el equipo durante un sprint, ya se encargarán de "romper" los hábitos culturales.

Por tanto es tan simple como suena, tomar la decisión de implantar Scrum y aplicarlo al 100% (al 100%, no al 99%...), sus reglas son pocas y fáciles de entender, de hecho pensándolo un poco son de sentido común.

¿Qué ocurrirá? Que de repente habrá entregas cada dos semanas y eso hará que el estrés propio de un proyecto se traiga al principio del proyecto. De igual manera todos los riesgos se trasladarán al principio del proyecto, de pronto habrá una fecha a la vista en que posiblemente habrá que subir algo a producción, si no es en el primer sprint será en el segundo o tercero. Todos, interesados, negocio y equipo entrarán en una fase de aprendizaje en que todos los impedimentos se harán visibles y se deberán de resolver a corto. Eso es algo buenísimo, porque equivocarse al principio permite aprender, mejorar y crecer, aunque al principio siempre va a haber mucha resistencia al cambio.

Los beneficios de Scrum no se hacen patentes enseguida, usualmente sus bondades se ven a partir del tercer sprint. Los beneficios son muchísimos, entregas cada dos semanas, con lo que todos los ciclos se reducen a dos semanas, cada segundo viernes el equipo se va a casa para el fin de semana con sensación de trabajo bien hecho y acabado, lo que redunda en equipos motivados, igual que los clientes y negocio que sienten que el producto avanza y que tienen el control sobre rumbo del producto. Una vez maduros, los equipos habrán incrementado su productividad en hasta un 400%, y eso ¡sin sobreesfuerzos!

El mensaje que quiero dar es, que aunque Scrum sea muy fácil de entender y hagamos todos los preparativos estratégicos, puede ser muy difícil de poner en marcha, eso dependerá de la cultura de la compañía.
¡La cultura se merienda a la estrategia!

Se puede poner en marcha de hoy para mañana, habrá un bajón en la productividad pero como mucho durante 2 sprints. Lo importante antes de iniciar Scrum es dotarse de un Scrum Master experimentado, asegurarse de formar a los equipos, al Propietario del Producto y al cliente, y muy importante, abrir canales de comunicación entre equipo y cliente/usuarios, y no me refiero a nada tecnológico, sino hacer que se conozcan, si no es en presencial hablándoles a unos de los otros. Es importante que usuarios y equipo sepan quien hay al otro lado, que sientan empatía los unos por los otros, eso abre canales y hará que tomen mejores decisiones.

Una vez la empresa haya rodado y esté madura en Scrum, será el momento de introducir nuevas prácticas ágiles que hagan que las cosas funcionen aún mejor y hagan que Scrum se adapte a la empresa. En Scrum Manager conocemos estos dos estadios como Scrum técnico y Scrum avanzado, estos están representados en el cuadro de Niveles de Scrum que se encabeza con la frase "Has aprendido a avanzar en Scrum cuando sabes romper las reglas".

Cierro con un texto del libro Lean from the Trenches de Henrik Kniberg que resume la vivencia de empresas y equipos una vez han transicionado a Agilidad.
Henrik Kniberg - Lean from the Trenches

jueves, 6 de noviembre de 2014

¿Qué hacer con los móviles en la reunión de planificación de sprint?

Planning poker en baraja y como app
En el último de los cursos que di, hice, como siempre, el ejercicio de la estimación de póker. Saqué la baraja de planning poker y repartí los ejercicios. Los alumnos siempre se lo pasan muy bien, es un ejercicio ameno que suscita mucho debate, pero esta vez vi a uno de los alumnos que tenía la baraja intacta y ponía boca abajo su móvil cada vez que estimaban una tarea... Estaba utilizando la aplicación planning poker para Android de 10 pines.

Una forma de ganar tiempo y conseguir que te dejen tranquilo es dar trabajo, sea con un compañero o con un cliente. De forma análoga, para "silenciar" los móviles en la reunión de planificación de sprint, una buena opción es "ocupar" el móvil, en este caso utilizarlo como herramienta para la estimación.

Estoy valorando proponer en mis cursos futuros utilizar el móvil en vez o a la vez de la baraja, creo que amenizaría aún más el ejercicio.

sábado, 1 de noviembre de 2014

¿Qué hacer con los móviles en la reunión de diaria?

Móviles aparcados
Una Scrum Master me comentó en un curso presencial que estaba desesperada con la gente que en plena reunión diaria estaba por el móvil. Tiene ganas de prohibirlos, pero claro, no puede tratar al equipo como si fueran niños...

Es un tema complicado, el equipo son profesionales responsables y puede haber llamadas urgentes que requieren ser respondidas, o llamadas o mensajes de trabajo que sean importantes... por tanto no se pueden prohibir directamente. Hay hacer algo pero dejarles una vía abierta hacia el móvil.

La idea que le propuse fue hacer que los miembros del equipo dejasen el móvil en una pila, y el primero que cogiese el móvil durante la reunión debía de invitar al resto a copas al finalizar la jornada de trabajo. Quedan exentas llamadas de trabajo urgentes o mensajes realmente importantes. :-)
Más de una vez hemos vivido esta situación en una reunión diaria...

miércoles, 29 de octubre de 2014

¿Para gestionar un equipo que trabaja bajo TDD se puede añadir una columna de "refactorización" en el tablero Kanban?

Ciclo TDD
Como sabréis Test-Driven Development (TDD), una técnica de XP, se basa en la programación orientada a objetos en que se escriben las pruebas unitarias primero y se codifica después, siendo guiada la codificación por estas pruebas. El ciclo de codificación acaba cuando el código pasa todas las pruebas. Finalmente se refactoriza el código escrito para lograr un código limpio y homogéneo que funcione.

Usualmente se incluye la refactorización dentro de la programación, el que efectúa las pruebas unitarias al fin y al cabo es el programador, por tanto cuando este acaba con la codificación puede dedicarse a la refactorización para terminar la tarea. Incluir una columna de refactorización en nuestro tablero implica que se va a refactorizar cada tarea recién programada en otra etapa y esto a primera vista parece una "muda", un desperdicio.

Kanban lo que hace es gestionar flujos de trabajo, sea el que sea, por tanto una columna de refactorización puede perfectamente ser necesaria. Imaginémonos una empresa como Microsoft, que aún trabaje de forma distribuida con factorías en la India, y que cada tarea que reciba la refactoriza en la central para asegurarse que el código sigue los patrones establecidos y es homogéneo con el resto del software.


La cuestión clave a preguntarse es ¿la refactorización nos aporta valor?

sábado, 25 de octubre de 2014

¿Scrum al tratar equipos multifuncionales no requiere de especialistas?

Especialista contándoles de su especialidad
a sus compañeros de equipo
De entrada decir que no se debe de confundir equipo con persona, un especialista es una persona con conocimientos y habilidades en un determinado campo, y un equipo multifuncional es un equipo integrado por personas cuya suma de conocimientos y habilidades cubre todas las necesidades que requiere el desarrollo del producto: el equipo es quién ha de saber construir el producto, no las personas.

Más allá de esta distinción, Scrum requiere actitud además de aptitud, miembros especialistas y a la vez interesados en lo que les rodea. Entre los miembros del equipo puede haber especialistas, incluso puede ser que el proyecto requiera de especialistas muy concretos y de forma puntual. En un equipo ágil todo miembro puede en algún momento hacer cualquier tipo de tarea, sea su especialidad o no. Gracias a la autogestión es muy probable que una tarea determinada la haga quien tenga más habilidad o facilidad para ella, en este caso el especialista encuentra fácilmente su tarea, pero en situaciones de sobrecarga, el especialista debe de estar abierto a formar a un compañero para que le eche una mano, y de la misma manera, si no hay tareas de su especialidad, dedicarse a otras tareas que puedan no ser de su gusto, pero absolutamente necesarias para el sprint. Recordemos que el objetivo del sprint es un objetivo común del equipo.

De esta manera la transmisión de conocimiento se da a todos los niveles, no solo funcional sino también técnica y por tanto de especialidades. Recordar también que la multifuncionalidad del equipo permite responder a fluctuaciones en el flujo y resolver bloqueos y dependencias de una estructura horizontal como la que se crea con los departamentos (definición, desarrollo, sistemas, QA).

Una nota para los que contratéis a técnicos: la actitud es difícilmente reconducible,
 una persona inadecuada puede romper un equipola solución es crear un ambiente propicio para el cambio y si este no se produjera hay que plantearse reemplazar a la persona. En cambio la aptitud es mucho más fácil de tratar, se soluciona con simple formación, con un curso especializado.

martes, 14 de octubre de 2014

¿De dónde viene la iniciativa de implantación de Scrum en las empresas?

A lo largo de los diferentes cursos de este año he ido preguntado, a aquellos alumnos que en su presentación mencionaban que en su empresa utilizaban Scrum, como había entrado Scrum en su empresa.

He identificado 4 vías:

Distribución de las vías de entrada de Scrum
  1. Visión desde gerencia (proactive leadership): en algunos casos la implantación de Scrum forma parte de la estrategia empresarial, son los menos, pero es significativo que ya haya empresas en que la Agilidad forme parte de su naturaleza.
  2. Control de una situación complicada (burning platform): en estos casos Scrum se implantó en empresas para intentar dar solución a situaciones de descontrol en la ejecución y gestión de proyectos, suelen haberse desviado en horas y haber entrado en una espiral de modificaciones constante para intentar enderezar la situación.
  3. Condición del cliente: en estos casos, y cada vez más, la implementación de Scrum viene ¡como método a aplicar al proyecto solicitada por el propio cliente! Este caso está en alza, se están impartiendo cursos de Agilidad en grandes consultoras para dar cobertura a proyectos en que el cliente demanda Agilidad. Nuestros clientes necesitan ser competitivos y sobrevivir en un mercado extremadamente complejo, y son conscientes de que el producto que les hará florecer se define a medida que aprendan del mercado.
  4. Prácticas desde el equipo: en muchos casos es el propio equipo el que introduce prácticas ágiles en la empresa. Es un camino arduo, ya que el proceso para convencer a la gerencia de la empresa y al cliente es lento, aunque en los casos que me han contado, siempre ha sido exitoso.
Sin duda la vía más significante es la en que el cliente solicita Agilidad, a un nivel abstracto hasta se puede hacer un paralelismo con la manufactura lean, el cliente está estirando "pull"... por tanto es el mercado el que está demandando métodos ágiles. Pienso que la crisis tiene que ver, es época de vacas flacas en la que hay que maximizar el presupuesto disponible, buscar alternativas e innovar.