Buscar en Gazafatonario IT

miércoles, mayo 13, 2015

Ágil es algo que eres

Foto de http://pixshark.com
Para implementar una verdadera Cultura Ágil se requiere un nivel más alto de confianza de lo que es necesario en los enfoques tradicionales.  Responsabilidad y transparencia son dos de los beneficios clave de tener una Cultura Ágil. Más sobre Cultura Ágil en “Cultura Ágil: ese oscuro objeto del deseo
Para alcanzarla, para establecer una verdadera Cultura Ágil, debemos revisar las ideas que tenemos de los enfoques tradicionalistas e iniciar un camino que quizás sea o se vea poco confortable para muchos en la organización, puesto que ese camino hacia la cultura ágil expone las debilidades existentes no solo en la estructura sino en el comportamiento organizacional, es como si el ojo del Gran Hermano se posara sobre todos los miembros de la organización y les permitiera observarse a sí mismos, como en un espejo virtual, y al resto del entorno: clientes, proveedores, socios de negocio y mercado potencial, a observarlos desde el exterior.
Por ejemplo, respuesta ante el cambio sobre seguir un plan, uno de los valores del Manifiesto Ágil, es apenas una de las divergencias filosóficas cardinales entre los enfoques enraizados desde siempre en el desarrollo de software y esta visión emergente que significa ser ágil. Sobre este valor en particular, pueden leer mi artículo relacionado aquí. Más sobre el Manifiesto ágil en este enlace.
La Cultura Ágil es un continuum:
  • Empieza con la persona, se irradia primero hacia los equipos y luego a toda la organización, y termina en la persona.
Cuando hablamos de los productos, además de los atributos de excelencia que deben tener, es relevante interiorizar que:
  • El responsable de la calidad de un producto es Todo el Equipo Ágil. Además, una vez que el equipo entregue el producto, que este deje la sala de desarrollo, es porque está preparado para salir a producción.
  • Un error, una falla, no se ve como un evento crítico sino como una oportunidad de aprender acerca de los componentes del producto (el código, por ejemplo), del proceso y de cada uno de los miembros del equipo.
En su libro, “Being Agile”, Mario Moreira nos dice que “crear o adoptar una cultura ágil no se hace por accidente” y yo agrego: tampoco se hace por decreto. Moreira enumera algunas actividades que te ayudarán a moverte a una cultura ágil:
  • Reconocer que moverse a Ágil es un cambio cultural
  • Compartir los Valores y Principios Ágiles (continuamente)
  • Establecer y compartir objetivos y motivaciones
  • Obtener retroalimentación continua de los empleados. (Podemos extrapolar esto a conseguir retroalimentación de los socios de negocio, de los clientes, de los proveedores, es decir de todo el ecosistema organizacional)
  • Adaptar el sistema de recompensas para alinearlo con la nueva cultura
  • Identificar técnicas para ayudar a mitigar la resistencia de manera agradable
  • Evaluar a la administración y ver si los empleados tienen una personalidad que les permita alinearse con la nueva cultura
  • Comenzar a vivir los valores y principios que te ayuden a alcanzar la cultura que estás buscando
  • Proporcionar mecanismos de comunicación que se alineen con la cultura que quieres
  • Identificar y aplicar los procesos, métodos, prácticas y herramientas ágiles que estén alineados con tus objetivos
  • Aplicar un enfoque de inspeccionar y adaptar para medir el progreso
Debo insistir en que la vía hacia una transformación ágil, más que adopción, es un salto en la evolución, en el sentido de los saltos que ha dado la naturaleza durante millones de años, solo que aquí no tenemos tanto tiempo, pero un cambio de este nivel puede llevar un quinquenio, quizás una década, sobre todo para organizaciones que llevan 30 o 40 años usando enfoques y técnicas tradicionales.
Es decir, no se trata simplemente de cambiar un proceso por otro e institucionalizarlo, no se trata estrictamente de pasar de “manual” a “automatizado”, o de ir de integración bajo demanda a integración continua. Estas apenas son señales de que “lo estás haciendo ágil” y, en últimas, ágil no es solo algo que haces, ágil también es algo que eres.
-----------------------------------------------------------------------------
*La imagen interior es de [http://kidskidskids.tumblr.com/]

lunes, mayo 04, 2015

Libro: ‘La práctica de inteligencia de negocios: guías para lograr proyectos exitosos’

“El escritor escribe su libro para explicarse a sí mismo lo que no se puede explicar.”
[Gabriel García Márquez, escritor colombiano]

Siempre me da mucho placer realizar este tipo de anuncios. Conozco a Mauricio hace casi dos décadas y hemos tenido la oportunidad de trabajar juntos en distintos proyectos, incluyendo algunos de Inteligencia de Negocios, y de compartir más allá de la práctica profesional. Sé de su pasión por la lectura, por los hechos de la Historia y conozco también del esfuerzo monumental que es escribir y más si se trata de un libro como este. Por eso sé que para Mauro escribir este volumen se convirtió en una osadía, pero finalmente está aquí, el fruto de muchísimas horas de desvelo y estudio.

En el libro, Mauro nos embarca en una lectura amena que inicia con los conceptos generales de la práctica de la Inteligencia de Negocios, pasando por el propósito y los elementos de la práctica, los métodos y las herramientas usadas, lo que él llama ‘la hoja de ruta de un proyecto de Inteligencia de Negocios’ y dedica capítulos enteros a temas vitales como las pruebas y la calidad del producto, el despliegue, gestión de cambios y actividades posteriores a la implantación, hasta llegar a la infraestructura requerida en los proyectos de inteligencia de negocios.

De todo esto, el capítulo VI es mi favorito, porque habla de las personas y de la relación cliente – proveedor, asunto natural cuando se trata de una organización orientada a los servicios de tecnología de la información. Mauro habla de los roles principales a tener en cuenta cuando se trata de tener éxito en los proyectos y en particular dedica una sección a los roles típicos en las organizaciones con iniciativas de Inteligencia de Negocios.

Y a través de todo el texto, Mauro también aborda el tema de cómo se implementan todos estos elementos con métodos y prácticas ágiles como Scrum. De tal suerte que este es un compendio sensato de lo que cualquier interesado, persona u organización, debe tener en cuenta al momento de llevar a cabo proyectos de Inteligencia de Negocios.

Contraportada de 'La práctica de inteligencia de negocios' de Mauricio Cotes
Una de mis partes favoritas en todo el libro tiene que ver con el uso de las metodologías. El pensamiento de Mauro no se circunscribe a un método en particular, permitiendo la elección al lector. Eso es excelente, porque no entra y no promueve  o siembra elementos dogmáticos en el texto, es una apertura sistémica.

De hecho, su ‘conclusión en relación con el uso de las metodologías’ es algo que no solo es aplicable a proyectos de Inteligencia de Negocios. Mauro nos dice:
 “Finalmente, es ideal que el proveedor tenga la posibilidad de configurar la metodología de manera tradicional o ágil dependiendo de las condiciones, premisas y la negociación hecha con el cliente. El cuerpo metodológico seleccionado debe ser configurable, debe estar documentado, los practicantes deben aprehenderlo y ser conscientes del propósito de cada uno de los elementos que lo constituyen.
Los practicantes de los roles encargados de la contratación y negociación deben tener en cuenta las premisas mencionadas y ofrecer la modalidad apropiada de trabajo según el caso.”
En definitiva, en ‘La práctica de inteligencia de negocios’, Mauro saca a relucir sus veinte años de experiencia en el tema. Es un libro escrito desde la pragmática del autor, con el suficiente soporte teórico, pero sobre todo, con la idiosincrasia nuestra, la del trópico, con la visión de nuestra economía y de nuestra forma de hacer proyectos, lo que lo convierte en un documento valioso para cualquier estudiante y profesional y para cualquier organización que piense en serio acerca de la práctica de la inteligencia de negocios.

Es un trabajo minucioso, que te ha costado encorvarte durante muchísimas y largas horas, pero finalmente tú y todos nosotros tenemos la mejor recompensa: un sumario de todo tu fogueo en el asunto. ¡Enhorabuena, Mauro, felicidades por este gran logro!

¿Quieres conseguir el libro?

Escríbanle un mensaje electrónico a Mauro a la dirección: rmcotes@hotmail.com. Él les dará más detalles de cómo obtenerlo.

jueves, abril 23, 2015

Sobre medir y controlar o de cómo Tom DeMarco admitió su equivocación

“El Control conduce al cumplimiento; la autonomía conduce al compromiso”
Daniel H. Pink (Autor de “A Whole New Mind: Why Right-Brainers Will Rule the Future”)

Imágen tomada del artículo de Computer.org
En 1982, Tom DeMarco escribió su renombrado libro “Controlling Software Projects: Management, Measurement, and Estimation” (Prentice Hall/Yourdon Press, 1982). La primera frase del libro, su primerísima idea, quedó ensamblada en los anales de la industria de software durante las siguientes décadas y nos ha llegado intacta hasta esta era. Se trata de su: “No puedes controlar lo que no puedes medir”.

Este pensamiento influyó de manera certera en los modelos de calidad, procesos de producción, enfoques de mejora* y herramientas de construcción de software, quizás como ninguna otra idea de aquellos tiempos. Pero incluso Tom DeMarco cambió de opinión. En 2009 publicó este artículo en la IEEE Computer Society: “Software Engineering: An Idea Whose Time Has Come and Gone?”  (Ingeniería de Software: ¿una idea cuyo momento ha pasado?)” que pueden encontrar haciendo clic aquí.

En el artículo, DeMarco reflexiona sobre si este consejo era correcto en ese momento, sobre si todavía era relevante (al momento de escribir ese artículo en 2009) y que si todavía creía que las métricas eran un deber ser para cualquier esfuerzo exitoso de desarrollo de software. Sus propias respuestas fueron unos tajantes no, no y no.

Es bien conocida la historia de que los enfoques rígidos más tradicionalistas adhirieron completamente a este precepto y crearon áreas de proceso y de conocimiento dedicadas en su totalidad al establecimiento, gestión y control de métricas en los proyectos (de software). A partir de allí, se empezó a medir el éxito o fracaso de los proyectos, en principio, con tres de esas medidas: el tiempo, el presupuesto y la calidad, siendo esta última un poco más abstracta y más subjetiva si se quiere. Después, con muchas otras que no vale la pena mencionar aquí.
Esa institucionalización de métricas derivó a su vez en algo que con el tiempo se convirtió en uno de los mayores desincentivos para quienes trasegamos por los laberintos azarosos de la construcción de productos de software: el trabajo intensivo, esas largas jornadas de trabajo de doce, dieciséis y más horas diarias durante largos períodos de tiempo previos a la entrega del producto. Mi amigo y colega Jorge Abad dice en su blog Lecciones-Aprendidas.info que eso trajo como consecuencia la destrucción de hogares, de familias enteras y yo le creo.

Esta forma de trabajo extrema, cuya consecuencia principal, además de la citada por Jorge, era la de un bajón en productividad, acompañado de una entrega de producto con mala o malísima calidad, con el tiempo degeneró en algo mucho más grave que es de todos conocido: desmotivó a las nuevas generaciones a estudiar carreras relacionadas con la TI: Ingeniería Informática, de Sistemas, de Software y afines. El mismo Tom DeMarco (¡otra vez!) enunció en su otro libro, “Peopleware : Productive Projects and Teams” (2ª edición, 1999), que “no trabajamos horas extras en demasía para terminar el trabajo a tiempo sino para protegernos de culpa cuando inevitablemente no conseguimos hacer el trabajo a tiempo.” En efecto, lo hacíamos simplemente para cumplir, no para ser más productivos, ni para mejorar la calidad del producto. Y a eso nos llevó la fuerza ejercida por el modelo de Comando y Control y de la medición de cosas que no reflejaban la realidad del proyecto, al menos no la realidad de las personas que ejecutaban el proyecto.

La reflexión de DeMarco en el artículo que ya he citado termina también de manera asombrosa para quienes seguimos sus cánones durante casi tres décadas: “Consistencia y predictibilidad aun son deseables, pero nunca han sido las cosas más importantes. En los últimos 40 años, por ejemplo, nos hemos torturado con nuestra incapacidad de terminar proyectos de software a tiempo y en el presupuesto. Pero esta nunca ha sido la meta suprema. La meta más importante es transformación, creando software que cambie el mundo o que transforme una compañía o cómo esta hace negocios.”

Bien sabemos ya que lo más importante en los proyectos de software es la entrega continua y frecuente de Valor al negocio, desde el inicio del proyecto. Y que nunca más apostaremos o usaremos artes adivinatorias para establecer la fecha de entrega, ni qué parte del producto entregaremos en ese momento, ni cuánto será su costo. En cambio, empezaremos con planes y alcance iniciales y nos enfocaremos en la revisión continua de esas restricciones a medida que vamos avanzando. Finalmente, nuestra meta será siempre entregar el mejor producto posible, teniendo presente que ningún método con el enfoque de receta de cocina (léase métodos tradicionalistas) hará mejor lo que es mejor. Esta es la filosofía ágil.

Coletilla

Aquella aciaga prescripción de DeMarco sobre lo que se puede medir y controlar derivó en procesos rígidos, tradicionalistas, que dieron poder solo a algunas personas en la organización; pero lo realmente hermoso, lo humanamente divino, es que los métodos y las prácticas ágiles dan poder a todo el mundo… o a nadie.



--------------------------------------------------
* Por ejemplo, H. James Harrington, reconocido autor de libros sobre mejora de procesos, calidad, desempeño y gestión del conocimiento, y fundador del laureado Instituto Harrington, extendió el pensamiento de DeMarco, diciendo: “Medir es el primer paso hacia el control y eventualmente hacia la mejora. Si no puedes medir algo, no puedes entenderlo. Si no puedes entenderlo, no puedes controlarlo. Si no puedes controlarlo, no puedes mejorarlo.”

viernes, abril 17, 2015

#RSGECU2015: Ágil es algo que eres, CMMI es algo que usas

#RSGECU2015: Ágil es algo que eres, CMMI es algo que usas
Este viernes 17 de abril, presenté en el Regional Scrum Gathering 2015, en Quito, mi disertación sobre Ágil y enfoques tradicionales. Mi asunto principal es que los métodos ágiles no tienen por qué entrar en conflicto con otros modelos o enfoques de construcción de software, no es la idea de ser ágil o, al menos, no está en el flujo de un proceso de transformación a ágil echar tierra a las prácticas existentes en una organización, como erróneamente pregonan muchos. Los líderes de los procesos actuales pueden y deben trabajar en conjunto con los nuevos líderes para que estos últimos obtengan los beneficios de ambos universos y aprovechar esa sinergia para mejorar dramáticamente el rendimiento del negocio.

Para apoyar este concepto, expliqué que los modelos tipo CMMI, PMI e ISO nos dan una idea de cuales procesos son necesarios para mantener una organización madura y disciplinada, capaz de predecir y mejorar el desempeño de la organización misma y de los proyectos. Entre tanto, las técnicas ágiles proporcionan guías para un manejo eficiente de los proyectos de una manera que permite alta flexibilidad y adaptabilidad. Al mezclar los dos enfoques, la filosofía ágil asegura que los procesos se implementen eficientemente a la vez que aceptan los cambios; y los modelos tradicionales aseguran que se consideren todos los procesos relevantes.

Pero de inmediato fui al centro de mi exposición: una de las grandes diferencias, radicales por demás, entre los métodos tradicionales y los ágiles es que estos últimos son generativos, no prescriptivos. Los procesos necesitan evolucionar según las necesidades, no prescritos con anticipación. Un enfoque prescriptivo genera procesos complejos y complicados, mientras que un enfoque generativo comienza con un conjunto de procesos simples y adiciona otros a medida que se requieren.

La filosofía ágil reconoce que los procesos de software más efectivos no pueden definirse por adelantado; es un proceso continuo. Los métodos tradicionales se enfocan en definir y reforzar procesos y gastan muy poco tiempo en identificar y entregar lo que los usuarios necesitan. Aunque su propósito es mejorar la consistencia y la calidad, esto muchas veces se consigue a expensas de la productividad y la entrega. El enfoque tradicional de procesos tipo CMMI también usa herramientas monolíticas y pesadas que causan construcciones frágiles y traspasos inefectivos entre desarrollo, pruebas, despliegue y operaciones.

Lo que siguió fue enfatizar en lo que significa ser ágil: específicamente, la interiorización y la práctica de los Valores y Principios del Manifiesto Ágil, nada alejado de lo que se está hablando en el  #RSGECU2015.

Hacia el final quise poner mi propio manifiesto, el ‘Ágil es algo que eres…’, se trata de la persona, no de las cosas ni de los procesos. Ya lo he dicho en otras oportunidades, ser ágil significa reemplazar la predictibilidad falsa por la eficiencia.

¿Quieres saber más?

Pueden descargar la nueva versión de la presentación haciendo clic aquí o en esta dirección: http://goo.gl/leJ5N8.


No olviden escribirme con sus inquietudes o sugerencias a lucho.salazar@gmail.com o en el foro del blog.

lunes, abril 13, 2015

Los trinomios cuadrados perfectos no son ágiles… o del principio de la simplicidad

“La perfección no se logra cuando no hay nada más que añadir, sino cuando no hay nada  más que quitar” [Antoine de Saint Exupéry]
En el último conversatorio sobre Scrum que facilitamos en la Comunidad de Ágiles Colombia en Medellín, hablamos de lo que significa ser ágil y llegamos necesariamente a los valores y principios del Manifiesto ágil.  Uno de los principios llamó especialmente la atención: “La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.

Luego me encontré un artículo* de alguien que decía que había vivido gran parte de o toda su vida sin usar el trinomio cuadrado perfecto y muchas otras cosas complejas que le enseñaron en la escuela. A pesas de mi fascinación por el Álgebra, tuve que ceder un espacio en mi mente para estar de acuerdo con este pensamiento.

La tarea que me quedó fue entonces definir qué significaba #simplicidad y qué era eso de ‘maximizar’ el trabajo no realizado. Aquí algunas pistas:

Simplicidad es:

  • Tener un equipo totalmente horizontal, sin títulos ni especialidades adheridas a la frente de  cada miembro, sin protocolos que seguir para comunicarse unos con otros, incluyendo al usuario, donde cada uno sea responsable de sincronizarse con los demás y que nadie le rinda cuentas a nadie. Son equipos altamente productivos.
  • Usar un framework que te permita adaptarte a los continuos cambios del entorno, que te permita inspeccionar tu situación y la de tu equipo y con el que puedas modificar tu comportamiento basado en la experiencia que vas adquiriendo. Un framework que no sea una fuente de artes adivinatorias, sino más bien que evolucione contigo.
  • Priorizar las características del producto y construir solo aquellas que entreguen valor al usuario y al negocio. Según algunos estudios más del 65% del software que se construye se deja de usar muy pronto o nunca llega a instalarse, así que ¿por qué no construir solo lo que el usuario verdaderamente necesita y que genere un alto valor para la organización? Construye solo necesario para obtener rápida retroalimentación.
  • No realizar estimaciones a mediano/largo plazo ni prometer una fecha fija de entrega. No componer planes súper elaborados sino planificar continuamente: planificar las entregas/salidas a producción, planificar las iteraciones o sprints, planificar cada día de trabajo. A la larga, los planes no son nada, pero la planificación lo es todo.
  • Usar herramientas simples, como tableros de tareas simples que estén a la vista de todos, tarjetas simples con lo que quiere el usuario (las historias de usuario: como <<usuario>> quiero <<hacer algo>> para <<obtener algún valor>>): no hagas nada a menos que su valor esté plenamente establecido. Elaborar la documentación suficiente para cubrir las necesidades de la organización.
    "Pero no más simples"
  • No usar trinomios cuadrados perfectos todo el tiempo. Einstein lo dijo, las cosas deberían hacerse lo más simple posible… para construir algo, una funcionalidad por ejemplo, usa la técnica de reusar-comprar-hacer. Consulta primero si ya la tienes o la tiene alguien cercano a ti. ¿No? Búscala entonces en el mercado. ¿No la encontraste? Fabrícala, pero hazlo de manera simple, sin artificios exagerados, no vuelvas el software más complejo de lo que es por naturaleza.
  • Aprender continuamente. Si conoces muchas cosas, encontrarás respuestas cada vez más simples a problemas cada vez más complejos, como los que surgen en la construcción de productos de software. Así que nunca pares de aprender. Y conviértete en maestro, pero recuerda, no se trata solo de decir las cosas, porque tu aprendiz las olvida; tampoco se trata solo de enseñar, porque quizás solo logres que él/ella las recuerde; involúcralo y verás que también aprende.

¿Qué más se les ocurre que es #simplicidad? Háganmelo saber por este medio o por cualquiera de los medios habituales de comunicación.


*El artículo al que me refiero lo encuentran haciendo clic aquí.


miércoles, abril 08, 2015

Presentación sobre Transformación Sostenible



Este martes 7 de abril, nos reunimos participantes de las Comunidades del Próximo Capítulo del PMI Antioquia y de Ágiles Colombia a hablar sobre Transformación Organizacional Sostenible. Al margen de la sesión, creo que es una excelente idea que se realicen este tipo de encuentros entre Comunidades ya que el objetivo que buscamos todos es el mismo: hacer las cosas bien y encontrar formas de mejorar continuamente.

Facilité la sesión alrededor del trabajo que realizáramos el magnífico equipo de coaches del que hice parte durante el Scrum Coaching Retreat Latin America  (#SCRLA15) en marzo de 2015, en Buenos Aires, Argentina. Se trata de un marco para Sostenibilidad de las Transformaciones Organizacionales que publicamos al final del encuentro. Un trabajo en progreso.

Los dejo con el material de la presentación: Transformación Sostenible

Más información sobre el trabajo del equipo y de los demás equipos en el Scrum Coaching Retreat Latin America 2015, puede encontrarse en:


Sobre Adopción y Transformación pueden leer mi artículo en:


Sobre el cambio a ágil, temores infundados y penas frívolas, pueden leer mi artículo en:


miércoles, abril 01, 2015

Sobre Adopción y Transformación

“Todos los modelos son útiles, pero algunos fallan más rápidos que otros.” [Jurgen Appelo]
Me llamó la atención uno de los números del recién salido ‘State of Agile Survey’ de la consultora VersionOne [1]. Se trata de las barreras que encuentran las compañías a la hora de realizar la adopción Ágil. Revisando los tres últimos informes (2012, 2013 y este último correspondiente a 2014), encuentro que los principales obstáculos para adoptar Ágil son:
  1. (Falta de) Habilidad para cambiar la cultura organizacional
  2. Resistencia general al cambio
  3. Intento de introducir elementos ágiles en un framework no ágil
  4. (Falta de) Disponibilidad de personal con las habilidades necesarias
  5. (Falta de) Apoyo de la dirección
Figura 1. Fuente: VersionOne 7th State of Agile Survey 2012. Haga clic en la figura para ampliar.

Mientras que las tres últimas causas que menciono se mantienen en porcentaje más o menos estable, aunque me interesa hablar más delante de la cuarta (falta de personal idóneo), quiero concentrarme en la dramática reducción que hubo en los números de las dos primeras.

Mientras que en 2012 y 2013, el peso de la inhabilidad para cambiar la cultura organizacional fue se mantuvo más o menos constante, 52% y 53%, en 2014 este número descendió a un 44%. Es decir, menos de la mitad de los encuestados dijo que ese es el parapeto más fuerte por derribar a la hora de adoptar métodos y prácticas ágiles en las organizaciones.

Figura 2. Fuente: VersionOne 8th State of Agile Survey 2013. Haga clic en la figura para ampliar.

Algo similar ocurrió con la Resistencia general al cambio, natural por demás en la gran mayoría de las organizaciones y personas. De un 41% y 42% en 2013 y 2013 respectivamente, bajó hasta un 34% este último año. Es una encuesta al fin y al cabo, basada en la percepción y, como esperamos todos, en la experiencia de quienes respondieron las preguntas, entre ellos yo mismo.

Aunque el estudio no presenta ni analiza las causas de esos cambios porcentuales, quisiera especular un poco al respecto. Se trata precisamente de lo que hemos aprendido y experimentado durante los últimos tres años. Hasta principios de esta década, había “una confusión entre adopción y transformación. Tristemente, los agentes de cambio hablaban acerca de adoptar Ágil y no acerca de transformar la cultura de una compañía para que esta soportara la mentalidad ágil” [2] y todo lo que ello significaba. Sahota lo llamó “miopía de los agentes de cambio”. En definitiva, muchas de las fallas en la adopción Ágil radicaban entonces o eran el resultado de no entender la cultura organizacional.
 
Figura 3. Fuente: VersionOne 9th State of Agile Survey 2014. Haga clic en la figura para ampliar.

Pero creo que hemos aprendido que para ser ágiles necesitamos conformar equipos con personas que sean capaces de estar juntas a través del tiempo, que se conviertan en equipos de alto desempeño y que construyan escenarios de confianza con sus usuarios/clientes. Si no lo tienes claro, lo que debes hacer es crear equipos ágiles alrededor de los objetos persistentes en tu organización, es decir, los proyectos. Usa Scrum o Kanban o XP (aunque según el estudio que he citado, eXtreme Programming se usa cada vez menos –menos del 1% de los encuestados dijeron que usaban XP en 2014) o cualquier otro método ágil que permita llevar tu organización a puerto seguro a nivel de equipos.

Tus equipos ágiles deben enfocarse en validar continuamente sus hipótesis y en generar valor lo antes posible. En mi artículo “Cultura ágil: ese oscuro objeto del deseo” decía que esta es la base para formar equipos de alto rendimiento que enfrentan alta incertidumbre, como la presente en los proyectos de software. En estos equipos cambiamos la planificación basada en especialidades por un enfoque en la propagación de conocimientos, de experiencia. Además, en los equipos ágiles invocamos continuamente energías innovadoras para encontrar formas mejores de aumentar la productividad y el entusiasmo de los participantes.

Eso es lo que creo que está pasando. Como dice VersionOne en el estudio, “Ágil está ganando momento” y lo que no dice es que quienes lo estamos haciendo, quienes somos ágiles también. Ágil es algo que eres, ágil es algo que soy.

Una nota final sobre la falta de personal con las habilidades necesarias en Ágil

Aunque ligeramente, fue mayor el porcentaje de encuestados que respondieron a esta barrera en relación con los dos años anteriores, en los que el número fue del 33%. Esta vez, 35%. En este sentido es vital entonces no solo aumentar el entrenamiento sino también mejorarlo. Y valga aquí la pena decir que no es suficiente con obtener certificaciones, sea cual fuere la casa o escuela certificadora. Ya sabemos que en Ágil, sobre todo en Scrum, es extremadamente fácil obtener un certificado de Scrum Master o de Scrum Developer, pero, al igual que el propio marco de trabajo, es considerablemente difícil hacerlo valer en proyectos reales.


El certificado conseguido después de un  Scrum nos asegura que sabemos construir ciudades con piezas del set #6177 de Lego y que hicimos 240 puntos en el Ball Point Game y que quizás nuestro próximo proyecto con Scrum será exitoso, pero nada más. La experiencia es fundamental para una verdadera transformación. Lo menciono porque me sigo encontrando con personas, colegas, amigos y hasta familiares que insisten de manera agotadora en este asunto de la certificación y no en ir directamente al fondo de las cosas: al hacer ágil y al ser ágil.


Ciclo Sensei - Senpai - Kohai


Es necesario que haya más ciclos “sensei – senpai – kohai”[3], para aprovechar el conocimiento y, sobre todo, la experiencia de otros. Es necesario hacer Comunidad, algo que seguimos insistiendo con amigos como Jorge, Wilmar, Leonardo, Carlos, Robinson y Lucho y tantos otros en Ágiles Colombia y Ágiles Latinoamérica, con quienes nos reunimos constantemente. El autoaprendizaje también ayuda. Más allá de todo esto, tener el coraje de decir que necesitamos ayuda, que no podemos hacerlo solos.




Referencias

[1] VersionOne. 9th State of Agile Survey. 2015.

[2] Sahota. Michael. “An Agile Adoption and Transformation Survival Guide: Working with Organizational Culture”. 2012

[3] Ciclo Sensei – Senpai – Kohai, algo que aprendimos en el último #SCRLA15 del amigo Hiroshi y que usáramos en nuestro trabajo sobre Sostenibilidad de la Transformación Organizacional, algo de lo cual les hablaré más adelante. El ciclo se refiere a los estudiantes nuevos (Kohai) aprendiendo de estudiantes más avanzados (Senpai) y estos a su vez aprendiendo y practicando con maestros experimentados (Sensei).

jueves, marzo 05, 2015

De historias de usuario, culturas y del arte de narrar historias

“Yo no sé muchas cosas, en verdad,

Digo tan solo lo que he visto.
Y he visto que la cuna del hombre
la mecen con cuentos,
que los gritos de angustia del hombre
los ahogan con cuentos,
que el llanto del hombre
lo taponan con cuentos.
Y que el miedo del hombre
ha inventado todos los cuentos…
Yo sé muy pocas cosas, es verdad,
pero me han dormido con todos los cuentos
y sé todos los cuentos ...”
[León Felipe, Aguaviva.]

La vida es una alegoría, los seres humanos no solo estamos configurados como cuerpos biológicos abastecidos de estímulos y pulsiones, pues nacemos en un entorno social y por tanto nos relacionamos, desde lo más esencial –lo familiar, hasta lo más universal, con nuestros semejantes. Pero además poseemos una visión personal para interpretar nuestra cotidianidad, tenemos ideales y pensamientos, emociones y aversiones que nos hacen actuar  de formas particulares al interpretar nuestra realidad.

En todo esto, la narración de historias juega un papel muy importante  en la construcción de conocimiento. La narrativa es una forma de caracterizar los fenómenos de la experiencia humana. Dice Ivar Jacobson en su libro Casos de Uso 2.0 que “la narración de historias permite a las culturas sobrevivir y progresar; es el camino más simple y más efectivo para pasar el conocimiento de una persona a otra. Es la mejor manera de comunicar lo que un sistema debe hacer y hacer que todo el mundo trabaje en el sistema sobre los mismos objetivos.” [1]

Las historias (de usuario) establecen una manera de organizar y comunicar experiencias. Las personas usan instintivamente la narración de historias para organizar un cúmulo de ideas que consideran disperso; además, gracias a ellas pueden organizar lo que saben acerca de su trabajo y de cómo lo hacen. Al narrar historias, las personas nos invitan de una forma u otra  a investigar sus pensamientos, sus sentimientos y sus intenciones. Finalmente, como oyentes y más tarde como lectores de las historias de usuario, adherimos a los acontecimientos, como una exploración de la experiencia de los usuarios, entendiéndolas mejor y de la forma más completa posible, pero sobre todo, comprendiendo su valor real.

Quienes transitamos a diario por el vasto universo del diseño y construcción de productos de software sabemos que es importante enfocarnos en el valor que estos prestarán a sus dueños, los usuarios, y a otros interesados. El mismo Jacobson dice que “solo se genera valor si el sistema se usa realmente; así, es mejor enfocarse en cómo se usará el sistema que en las largas listas de funciones o características que ofrecerá.” [2] Y agrega más adelante: “es fácil capturar y validar la completitud de las historias y estas, a su vez, facilitan filtrar las formas potenciales de usar el sistema que ofrezcan poco o ningún valor real a los usuarios. Este foco constante en el valor permite asegurar que cada entrega del sistema sea tan pequeña como sea posible, a la vez que tenga valor real para los usuarios del sistema y para los interesados que financian el desarrollo.” [3]

Cuenta las historias, no las escribas

En su libro “Fifty Quick Ideas to Improve your User Stories”, Gojko Adzic & David Evans [4], compilan una serie de conceptos sobre cómo mejorar nuestras historias de usuario o, mejor aun, sobre cómo mejorar el desempeño del equipo ágil usando la técnica de las historias de usuario. Me interesó mucho la primera de esas ideas, muy acorde a mi interés actual sobre las historias y la supervivencia de las culturas. Esta idea es precisamente la del título de esta sección: cuenta historias, no las escribas.

Uno de los errores más comunes de las personas que empiezan a usar prácticas ágiles es creer que las historias de usuario son requisitos livianos. Las historias de usuario no son requisitos, son más bien una carta de intención de lo que queremos que haga el sistema, son recordatorios para conversaciones que tendremos más adelante, el Equipo de Desarrollo y el Dueño de Producto, pero definitivamente no son requisitos. Este malentendido conduce a situaciones en que las historias sean recolectadas en herramientas de gestión de actividades, con muchos detalles escritos o proporcionados por representantes del negocio.

Nada más alejado de una buena práctica. Las historias de usuario implican un modelo totalmente diferente, Gojko y David lo llaman “requisitos por colaboración”, un modelo donde la transferencia de conocimiento vía documentos “pesados” se reemplaza por involucramiento y colaboración, al mejor estilo del Manifiesto Ágil. Ya sabemos que la conversación cara a cara es la forma más efectiva de comunicar información y que una buena discusión entre los interesados y el equipo ágil lleva a mejores preguntas/respuestas, opciones e ideas del producto. Cuando los requisitos se escriben, aun si los llamamos historias de usuario, estas discusiones nunca suceden y las mejores ideas se pierden para siempre. Tengo algo de experiencia en esto, pasé dos décadas escribiendo requisitos de software, todo tipo de requisitos, todo tipo de productos de software.

La recomendación es simple, avanzan Adzic y Evans en su libro: intenta contar historias o que te cuenten historias, en vez de escribirlas. Usa tarjetas físicas o un sistema de tiquetes electrónicos, pero solo como recordatorios de esa conversación que tendrás más adelante. No gastes mucho tiempo tratando de descifrar los detalles de las historias con anticipación. Compromete a los interesados del negocio e involucra a los miembros del equipo en una discusión, busca distintas perspectivas de la historia y explora opciones. Esta es la forma de acceder a los beneficios reales de trabajar con historias de usuario.

Beneficios clave de contar historias

Las discusiones permiten a los representantes del negocio, no solo explicar lo que quieren, sino también asegurarse de que los miembros del equipo entiendan esto correctamente. Uno de los mayores problemas en los modelos tradicionales son los malos entendidos entre los distintos roles en el equipo y entre los interesados, entre quienes existen niveles heterogéneos de conocimiento acerca de las necesidades de cada uno, complemento además del ya típico fenómeno del “teléfono roto” [5]. Es un hecho, explicar una historia cara a cara evita caer en vacíos de conocimiento sobre la historia.

El segundo beneficio, apuntan Adzic & Evans, es el análisis más rápido. Cuando el equipo completo se involucra en una discusión, los vacíos funcionales, las inconsistencias y los requisitos no claros se descubren más rápidamente que cuando una sola persona (léase Analista del Negocio o similar), escribe los detalles.

Pero el beneficio más importante de la comunicación cara a cara, comparada con el paso de información vía documentos, es que la primera produce mejores soluciones, mejores productos. Para ser capaz de construir buenas soluciones, las personas necesitan conocer los planes y las oportunidades del negocio, entender el dominio del problema, tener un conocimiento profundo de las restricciones técnicas estar al tanto de las nuevas tecnologías que potencialmente les puedan servir. Involucrar a un grupo de personas en el análisis desde diferentes perspectivas ayuda al equipo a beneficiarse del conocimiento compartido.

Como lograrlo

La excusa más común para llenarnos de documentación es la insistencia del negocio en la aprobación formal, las regulaciones legales o gubernamentales o las dependencias con terceros. Si es necesario “firmar” las historias hazlo a medida que las discutes. Es más, si el alcance final debe ser aprobado por varios interesados en el negocio, involúcralos en las reuniones de Refinamiento, días antes de la reunión de planificación del Sprint donde se van a construir las historias. En cualquier caso, el Dueño de Producto juega un papel muy importante en la consecución de tales aprobaciones. Es una de sus responsabilidades directas.

Como siempre, ensaya distintos acercamientos y en cada retrospectiva analiza como le fue a tu equipo. Como dice el refrán, la experiencia no se improvisa. Hasta allí el tema, recomiendo amplísimamente los libros que usé como referencia

Referencias

[1] [2] [3] Ivar Jacobson et all. Use Case 2.0. Ivar Jacobson International. 2011. Traducción de Luis Antonio Salazar y Carlos Mario Zapata.

[4] Gojko Adzic & David Evans, Fifty Quick Ideas to Improve your User Stories, © 2013 – 2014 Nueri Consulting LLP

[5] Conocido también en algunas culturas o regiones como el fenómeno o el juego del “teléfono descompuesto”

Para saber más de historias de usuario puedes leer mi serie de artículos en este mismo Gazafatonario:

http://goo.gl/iJvj7
http://goo.gl/NZv4vj
http://goo.gl/e1DSVh
http://goo.gl/eGHQQU