martes, 27 de diciembre de 2016

Agile: Pareto y los Early Adopters


Pareto y los adoptadores tempranos


En los proyectos de innovación en que se usa Scrum o algún marco ágil, se puede trabajar con MVPs, en el ciclo de vida del producto, que se orientan a "Early Adopters" siguiendo la "Lay de Pareto" y teniendo en cuenta la "Ley de difusión de la innovación"[1].

Los adoptadores tempranos

Everett Rogers define una categoría de adopción como una clasificación de individuos dentro de un sistema social sobre la base de Innovación. Para Rogers [1], los adoptadores tempranos son quienes tienen el mayor grado de opinión y liderazgo entre las categorías de los adoptantes de innovaciones y son los que están dispuestos a probar una nueva tecnología, a pesar de que tenga fallos o sea una versión de prueba. Los adoptantes tempranos suelen ser más jóvenes en edad, tienen un estatus social más alto, tienen más lucidez financiera, educación avanzada, son más socialmente avanzados que los adoptantes tardíos.

Ley de pareto en el desarrollo del producto

La ley de Pareto [6], en software y scrum, también conocida como la regla del 80/20, establece que, de forma general aproximadamente el 80% del valor proviene del 20% de features. Basándonos en ella, con Scrum, buscamos centrarnos y adelantarnos en construir el 20 % de funcionalidad más importante y core de nuestro producto, mediante diferentes MVPs que probaremos en primera instancia con los adoptadores tempranos. En otras palabras, con el 20% del esfuerzo se puede proporcionar el 80% del valor y obtener resultados anticipados (“time to market”) sacando rápido algo al mercado probando hipótesis con early adopters y obteniendo feedback temprano.

Ley de difusión de la innovación

La difusión de innovaciones es una teoría que examina cómo, por qué, y a qué ritmo las nuevas ideas y la tecnología se propagan a través de las culturas. En esta teoría se explica cómo los sucesivos grupos de consumidores adoptan la nueva tecnología a medida que pasa el tiempo. Los adoptadores tempranos son los primeros en adoptar una innovación y comprende un grupo de aproximádamente entre el 13,8% de la población total de consumidores adoptadores de la innovación o el 13,5% de la población total. En el desarrollo de software podemos apuntar a estos usuarios adoptadores tempranos para probar rápidamente nuestro producto ya que son usuarios tolerantes y motivados para adoptar nuestras innovaciones.


Referencias:

[1] [Everett Rogers, 1962] Diffusion of Innovations, Everett Rogers, 1962.
[2] Simon Sinek, Cómo los grandes líderes inspiran la acción, TED 2009.
[3] Difusión de innovaciones, wiki.
[4] Ley de la Difusión de la Innovación, Fabiola Martinez, Youtube 2011.
[5] Article on Trans-cultural diffusion or Roland Burrage Dixon (1928): The Building of Cultures.
[6] Bousquet, G.H. (1999). «Vilfredo Pareto (1848–1923): Biographical Notes on the Occasion of the Publication of his Letters to Pantaleoni». En: John Cunningham Wood y Michael McLure (Eds.). Vilfredo Pareto. Critical Assessments of Leading Economist (Londres y Nueva York: Routledge) 1: 197-. ISBN 0-415-18500-9.
[7] Scrum, un proceso de trabajo 2.0.




DevOps: Qué es DevOps


Se ha desarrollado el primer evento de Latam para DevOps, “Dev Ops Journey Latam” y mi equipo ha participado en este gran espacio para compartir conocimientos y experiencias.

¿De qué se trató el evento? ...compartir conocimientos relacionados a DevOps. Pero, para entenderlo hay que saber de qué se habla cuando se dice DevOps:

¿Qué es DevOps?


La integración a escala para que una Software Factory sea ágil y lleve adelante uno de sus principios, el Continuous Delivery, es lo que se denomina DevOps. DevOps es la integración de Ingeniería de Desarrollo de Software con la Ingeniería de Operaciones, que es todo el soporte IT y de plataforma para posibilitar que el proceso de desarrollo sea ágil, haciendo entregas frecuentes de calidad y logrando la colaboración entre el personal de desarrollo y el personal de operaciones a lo largo de todas las etapas del ciclo de vida de producción de software. DevOps es una parte central del agilismo en la entrega de software eficiente.

En palabras de James Betteley:
 “DevOps para mí es sobre la forma en que los equipos trabajan juntos colaborando para extraer un mayor valor de negocio y producir una solución de mayor calidad, trabajando como un equipo capacitado, y sin culpar a otros...” (James Betteley, What Is DevOpScrum?, DZone, 2016)

Una manera de integrar Operaciones con Desarrollo es mediante el uso de herramientas compartidas, misma cultura, comunidades en común, procesos ágiles compartidos, comunicación estandarizada, etcétera. Algo crucial en una organización madura es la automatización máxima en procesos de Continuous Integration, Continuous Delivery gestión del conocimiento y comunicación. En esta vía la gestión de riesgos y de impedimentos es importante herramienta de integración y cohesión para agilizar los procesos y detectar problemas en forma colaborativa.


Referencias:

miércoles, 21 de diciembre de 2016

Agile: La adopción del Agilismo y sus resultados


La adopción del Agilismo y sus resultados


Existen diversos estudios y reportes que muestran cómo el agilismo impulsa el desempeño financiero y la mejora organizacional. Algunos resultados de aplicar agilidad en las empresas son los siguientes:

1) BTM Business Agility Index: Los resultados generales del estudio de índice de agilidad empresarial BTM 2010 [1], muestran que las empresas con características de agilidad empresarial (Líderes de agilidad empresarial) exhibieron un rendimiento financiero superior:
  • 13% a 38% de ventaja de rendimiento en eficiencia de capital y valor.
  • 10% a 15% de ventaja de rendimiento en el margen.
  • Hasta un 5% de ventaja en rendimiento en crecimiento de ingresos y ganancias.
  • Hasta un tercio menos de la volatilidad de los precios de las acciones en comparación con las acciones cotizadas públicamente de Organizaciones no ágiles.
  • La ventaja de rendimiento de la agilidad era sostenible en la perspectiva de un año como la de 5 años.

2) CHAOS Report: El informe Chaos [2] deja claro la superioridad de las metodologías ágiles de desarrollo de Software sobre las tradicionales en cascada y confirma la creciente adopción en la última década. Según el informe, la combinación de "personas competentes", "proyectos pequeños" y "metodologías ágiles" es una fórmula de éxito [2].



Referencias:

[1] BTM Research Report: The Characteristics of an Agile Enterprise and How They Drive Superior Financial Performance by Converging Business and Technology Management, BTM Business Agility Index, May 2010.

[2] 2015 CHAOS Report, CHAOS Database 2011 to 2015, Standish Group Store. https://jeronimopalacios.com/2015/09/agile-tiene-cuatro-veces-mas-posibilidades-de-exito-que-waterfall/
(Para elaborar este informe, Standish ha utilizado la base de datos CHAOS con los datos de los años 2011 a 2015, durante el año fiscal estadounidense).


martes, 6 de diciembre de 2016

SCRUM: Gestión Ágil de Riesgos - Implementación


En estos días di una charla en el evento DevOps Journey LATAM 2016 y quería compartir algunos de los conceptos e ideas que traté.
DevOps Journey LATAM, 02 de Diciembre de 2016, Hotel Atton el bosque. Agile Risk Management in devops Context.

¿Por qué ser ágiles?


Pomo dicen las fraces...
“El Software se está comiendo al mundo” (Marc Andreessen) y “La capacidad de aprender con mayor rapidez que los competidores, será la única ventaja competitiva sostenible" (Peter Senge).

¿Por qué usar herramientas?


Buscamos priorizar a “Individuos e interacciones sobre procesos y herramientas”, pero nunca descartamos el uso de herramientas. Solo buscamos hacerlo de una manera ágil siempre que la herramienta ayude a aportar valor y facilite el trabajo.

Para implementar alguna gestión de riesgos con alguna herramienta de Administración Ágil de Proyectos como Jira hay que tener en cuenta que:
  • La herramienta es solo un medio de comunicación que posibilita las conversaciones referente a un issue. No debe ser nunca un fin ni un medio de freno o limitación burocrática. Se debe privilegiar siempre el cara a cara.
  • La herramienta es un medio para lograr una “Organización Inteligente”, una organización con memoria, que aprende  continuamente, tanto ella, como sus miembros [Senge 2012]. Así posibilita la transparencia organizacional y la toma de decisiones basadas en datos.
  • Siempre se debe privilegiar la simplicidad. Centralizar la información ayuda a generar reportes automáticos y no tener dispersión de información ni tareas recurrentes de relevamiento de datos en forma manual. Eso agiliza las tareas de irradiación de información.
  • La herramienta debe ayudar a la “facilitación de procesos” para lograr un “flujo de trabajo eficiente”. Ayuda a la facilitación siendo un soporte al manejo de impedimentos y al análisis de causa raíces para descubrir soluciones transversales.

Modelo de implementación con Jira, Confluence y Google Sheet


Podemos implementar un modelo de Gestión Ágil de Riesgos basado en ticket de Jira (Risk) y Hojas de cálculo de Google Sheets como se muestra en el siguiente modelo:


La gestión de riesgos puede incluir o juntarse con la gestión de impedimentos y bloqueos usando tickets jira tipo Problem y Blocker. Se puede usar un proyecto transversal para impedimentos transversales reportados por diferentes equipos o los equipos que reportan problemas de otros equipos pueden engancharse en los ticket de otros equipos.

SM=Scrum Master; AM: Agile Manager, Release Train Engineer o Delivery Manager.


La idea es usar Jira lo más simple posible y que ofrezca soluciones transversales a DevOps. Tips Jira:
  • Para los riesgos se pueden usar dashboards por equipo. Y en un proyecto transversal se pueden recolectar los riesgos transversales o recurrentes de diferentes equipos mediante consultas JQL.
  • También se puede usar un proyecto Jira para tener un tablero de riesgos e impedimentos transversales. A lo cual también se deberían crear issueType en Jira de tipo Risk y/o Impediment.
  • En caso de necesitar reportes o cálculos que no se puedan hacer con Jira se puede usar las Sheets de Google Drive. Todo dependerá de la creatividad y necesidad de cada organización. Siempre buscando la simplicidad y siguiendo a la agilidad.
  • Propuesta de usar los link “blocks“ para indicar dependencias y usar un label 'ExternalDependency' para indicar dependencias externas.
  • Se pueden hacer consultas de dependencias con un filtro. Por ejemplo: issuelinktype in ("blocks") and project="OPDIST" and labels="ExternalDependency" and NOT status="Done" and NOT status="Closed" and NOT status="In Production"
También se puede usar Confluence. Algunos tips:
  • Propuesta de usar riesgos como páginas de Confluence con label de página 'riesgo’. Cada riesgo es una página.
  • Cada página de riesgo debería tener un título con el formato RiskWord-ProjectCode-Index. Por ejemplo ‘Risk-ProjectA-1'. 
  • Se pueden concentrar los riesgos en una página Confluence. Los riesgos se pueden desplegar en una tabla con la macro:  ‘Page Properties Report’ filtrando por label 'riesgo’ (o risk).
  • Se pueden desplegar dependencias de Jira en Confluence con un filtro (como se hace en Jira).


miércoles, 26 de octubre de 2016

Caso de estudio: Latam Digital - Un viaje a la Agilidad

El día 26 de Octubre de 2016 asistí a un meetup, organizado por ChileÁgil. En esta charla Eli Senerman, Director de Plataformas Digitales en Latam Airlines (antes LAN), nos contó cómo ha sido el proceso de transformación digital ágil dentro de la empresa.

Entre otras cosas, Eli nos contó el inicio de la transformación ágil:

“El mejor acceso a talentos lo tiene Latam probablemente…
Pero éramos y somos muy malos en generar entornos donde ese talento pueda florecer… y generar productos digitales de buena manera…
Cuando nos dimos cuenta de eso fuimos a mirar qué podíamos hacer;
Y cualquier empresa que ha hecho bien las soluciones de productos digitales en el mundo, uno mira cómo lo hicieron y es una mezcla de Lean, agilidad… Kanban y Scrum… la agilidad era un básico...
Contratamos una consultora y comenzamos a hacer una transformación digital, una organización que trabaje de una manera ágil… fue hace un año y medio...”

Sobre la importancia de enfocarse en la entrega de valor y no de seguir rigurosamente un plan a largo plazo:

“El resto de la organización lo que debería estar pidiendo de digital es cuál es nuestra capacidad de generar valor con las inversiones que estamos haciendo, no cuál es nuestra capacidad de predecir el futuro en términos de cuánto nos vamos a demorar en ejecutar este producto digital…
Eso no significa que seamos todos unos hippies ágiles. De hecho la agilidad es mucho más rigurosa en tener estimaciones de cuánto nos vamos a demorar en tener nuestro producto digital, pero en períodos más cortos.”

“Cuando mido por cuál es la capacidad de generar valor se preocupan por eso.”

Recalcó que los líderes deben permitir la experimentación y el aprendizaje:

“Los sponsors y stakeholders ven que es mejor aprender que seguir un plan.”
“Generar un entorno donde la gente siente que puede cometer errores, que puede experimentar. Eso es importante.”

Y que los líderes deben permitir el empoderamiento de los equipos:

“Los líderes debemos generar cultura”


Referencias:
Meetup de ChileÁgil: “Latam Digital: Un viaje a la Agilidad”, Universidad UNAB, Santiago, Chile, 26 de Octubre de 2016.
http://www.meetup.com/ChileAgil/events/234727617/

Agile: Modern Agile


Modern Agile

Agile moderno es una comunidad de personas interesadas en descubrir mejores maneras de conseguir resultados impresionantes y de esa manera impulsar una nueva ola de agilismo.
Desde una perspectiva ágil, no es otra cosa que un marco de principios bajo la agilidad, que aprovecha la sabiduría de muchas industrias, orientado por principios y un marco libre. 
fig. 1: En la figura se puede ver la afinidad entre valores y principios por colores.

Al definir un subconjunto de valores y principios o principios alineados al agilismo, lo que se obtiene es un marco de agilismo que refleja nuestras prioridades. Los principios de Modern Agile son:
  • Haz que las personas sean geniales: este se desprende de priorizar a los "individuos e interacciones" y a la búsqueda de la "excelencia". El desafío aquí es cómo lograr que la gente en nuestro ecosistema sea impresionante o extraordinaria.
  • Experimenta y aprende rápido: este en algún sentido deriva de buscar "respuesta ante el cambio". Si prestamos atención a los principios ágiles como buscar "aprovechar el cambio" para proporcionar ventaja competitiva al cliente y "buscar la entrega temprana y continua de software con valor" en procesos de reflexión recurrente que nos permite aprender rápidamente llegamos a esa idea de la agilidad y Scrum de "trabajo empírico". Aprendemos rápidamente mediante la experimentación con frecuencia.
  • Entrega valor continuamente: deriva de priorizar el "software funcionando" y la "entrega continua de valor". Aquí el desafío es dividir grandes cantidades de valor en piezas más pequeñas que se pueden entregar de forma segura en forma temprana.
  • Haz de la seguridad un prerequisito: aquí es donde se prioriza un principio más novedoso que considera a la seguridad tanto una necesidad humana básica y una clave para desbloquear un alto rendimiento. Si bien se puede desprender del agilismo de priorizar a las personas e interacciones y al principio de motivación, por los cuales se busca lograr ambientes de trabajo "psicológicamente seguros" que promuevan personas altamente motivadas. Desde esta perspectiva nos esforzamos para que nuestros equipos sean resilientes y nuestras colaboraciones, productos y servicios sean resistentes y seguros. Se buscan personas libres y motivadas que no le tengan miedo a la culpa. Estimo que también se puede incluir a la seguridad informática.
Al parecer, con Modern Agile, se busca una marco de agilidad ultraligero y tomando algunos aspectos del "Manifiesto por el desarrollo ágil del software", haciendo énfasis en el aspecto humano (por eso agrega lo de la seguridad aunque es redundante) y simplifica la mejora continua y la adaptación en "experimenta y mejora". No se inventa nada nuevo, es solo un emblema de valores basado parcialmente en el manifiesto ágil. Aunque puede ser de utilidad para educar la agilidad en un ámbito donde es necesario hacer hincapié en formar entornos de seguridad psicológica para potenciar a las personas y la colaboración. Como apreciación personal, espero no se transforme en una moda sobrevalorada.



Referencias:

http://modernagile.org/
InfoQ: An Introduction to Modern Agile.
Agile 2016: Modern Agile.



Scrum: Valores de Scrum alineados al Agilismo



Scrum es un marco ágil porque fue creado para practicar los valores ágiles. Por ello sus cinco valores se alinean o desprenden de los valores y principios del manifiesto ágil.


Scrum promueve el coraje como característica que permite la adaptación al cambio y la mejora contínua. Para mejorar, innovar y generar transformaciones digitales son necesarias personas sin miedo al error, sin miedo al castigo, libres de proponer soluciones y cambios, abiertos a experimentar y aprender. Personas con coraje para asumir compromisos desafiantes, empoderarse de los procesos y del producto y responder ante sus propias decisiones. Con coraje para ser jugadores de equipo independientes y no descansar en los demás o en la autoridad.

La apertura para ser flexibles ante el cambio, aceptarlo y actuar ante él. Apertura para trabajar cara a cara, con transparencia y discusiones abiertas, sin miedo al feedback ni al conflicto. Sin miedo a reflexionar en retrospectivas recurrentes para impulsar la mejora contínua. La apertura necesaria para aprender y lograr organizaciones inteligentes.

El compromiso para ser responsables de sus acciones al tener mayor control sobre las acciones propias. El compromiso permite el empoderamiento motivador del éxito. El compromiso proviene de asumir que se priorizan a las personas e interacciones por sobre los procesos y herramientas y, en consecuencia, nos comprometemos humanamente con las personas. El compromiso con el cliente, ya que preferimos colaborar con él y nos respetar estrictamente un contrato escrito en piedra.

El respeto es el pegamento del trabajo colaborativo donde se privilegia a las personas. Se fomenta el respeto mutuo para compartir éxitos y fracasos, para equilibrar el esfuerzo, para asumir compromisos en equipo, para tener apertura y poder discutir cara a cara sin agresiones, para colaborar y cooperar sin competir.

El foco deriva, hasta cierta medida, del principio de simplicidad. Se busca trabajar en las actividades justas y necesarias que nos facilitan un buen rendimiento en entregar valor tempranamente. Se hace foco en el 20% de la funcionalidad que entrega el 80% del valor de negocio. Nos enfocamos en la entrega de valor y no en seguir rigurosamente un plan a largo plazo. Hacemos foco en objetivos a corto plazo (sprints), para avanzar paso a paso hacia el objetivo general y cumplir con nuestra visión de producto.


Referencia:



jueves, 13 de octubre de 2016

Scrum: La adopción de Scrum y sus resultados

La adopción de Scrum y sus resultados


La evolución informática ha hecho que las empresas se digitalicen progresivamente y, en esa vía, han tenido la necesidad de optimizar sus procesos al máximo posible para asegurarse de ser competitivas en el mercado. Es por ello, entre otras cosas, que las metodologías ágiles, como Scrum, han estado adquiriendo una importancia especial dentro de los cambios organizacionales.

¿Quiénes usan Scrum?


Las industrias de software son las principales en usar scrum. En diferentes industrias las áreas no-IT como operaciones, producción, e investigación y desarrollo son la principales utilizándolo para proyectos [1].

¿Cómo fue la adopción de Scrum?


Scrum está siendo usado por muchas empresas. En diferentes encuestas casi más de la mitad de los encuestados informó que Scrum se utiliza más de la mitad del tiempo [1][2]. La mayoría de los encuestados utilizan prácticas de Scrum, con un 25% utilizando Scrum para todos desarrollo de software y más de un 50% usan artefactos de Scrum [1].

¿En qué ha ayudado en la industria?


Scrum ha ayudado en:
  • Mejorar la calidad de vida laboral de la mayoría de los equipos [1].
  • Incrementar la satisfacción de los clientes [1][6].
  • Permitir el empoderamiento del trabajo por parte de los equipos [1][6].
  • Colaborar con hacer de las organizaciones más fluidas removiendo problemas [1][6].
  • Identificar oportunidades de mejoras en los procesos [1][6].
  • Acelerar la entrega del producto [2].
  • Mejorar la capacidad para gestionar el cambio de prioridades [2].
  • Mejorar la productividad [2][6].
  • Reducir los costos [6].
  • Minimizar los riesgos de una entrega completa [6].
  • Reducir en gran medida el sobre esfuerzo [6]
  • Mejorar de la calidad del producto y evitar el reproceso [6]

¿Fue exitoso usar metodologías ágiles y Scrum?


El informe Chaos [8] deja claro la superioridad de las metodologías ágiles de desarrollo de Software (Scrum, Kanban, XP, etc.) sobre las tradicionales en cascada (PMBOK, Prince2, etc.) y confirma la creciente adopción en la última década. Según el informe, la combinación de "personas competentes", "proyectos pequeños" y "metodologías ágiles" es una fórmula de éxito [8]. Hay estudios universitarios que indican cómo gracias a la incorporación de los métodos ágiles, sistemáticamente, se logran proyectos exitosos en proyectos reales para empresas. 


En este contexto, Scrum es parte del logro bajo el marco de la agilidad [4][5]. Según encuestas, Scrum se utilizó con éxito más de la mitad del tiempo, de acuerdo con 74% de los encuestados [1].


¿Cuáles son los casos de éxito?


Existen muchísimas compañías que desarrollan software de una forma ágil y exitosa a las que podemos prestarle atención. Como por ejemplo: Google, Spotify, Adobe, Nexus, etc.


Referencias:

[1] The 2015 State of Scrum Report How the world is successfully applying the most popular Agile approach to projects, Scrum Alliance, julio 2015.


[2] State of Agile Survey, 9th anual, VersionOne, 2015.


[3] The CHAOS Manifesto 2012: The Year of the Executive Sponsor.


[4] 84,6% de proyectos ágiles exitosos. Estudio de Caso y Proyecciones, Agustín Villena, Buenos Aires, Argentina - 20 a 25 de octubre de 2008.


[5] Éxitos y fracasos en proyectos Scrum: Spotify Vs. Healthcare, Markos Goikolea, 17 Jul 2014.
http://comunidad.iebschool.com/iebs/agile-scrum/exitos-y-fracasos-en-proyectos-scrum-spotify-vs-healthcare/

[6] Caso de estudio sobre apropiación de Scrum en empresas que han adoptado CMMI, Proyecto de grado para optar al título de magíster en ingeniería, Silvia Isabel Lozano Argel, Universidad EAFIT, Escuela de Ingeniería, 2013.

[7] Facultad de informática universidad politécnica de madrid, tesis de máster, máster en tecnologías de la información, estudio de la aplicación de Metodologías ágiles para la evolución de productos software, Pilar Rodríguez González, Juan Garbajosa Sopeña, septiembre, 2008. 

[8] 2015 CHAOS Report, CHAOS Database 2011 to 2015, Standish Group Store. https://jeronimopalacios.com/2015/09/agile-tiene-cuatro-veces-mas-posibilidades-de-exito-que-waterfall/
(Para elaborar este informe, Standish ha utilizado la base de datos CHAOS con los datos de los anos 2011 a 2015, durante el ano fiscal estadounidense).




martes, 4 de octubre de 2016

Libro: Scrum en las organizaciones

Comparto por este medio el libro que escribí sobre “Scrum en las Organizaciones”. Con este libro comparto una guía para trabajar bajo el marco de trabajo Scrum y para gestionar proyectos de Ingeniería de Software en forma ágil.

Este libro ofrece una guía para el conocimiento e implementación de una manera de trabajar y de gestionar proyectos de Ingeniería de Software, permitiendo encontrar prácticas emergentes en dominios complejos. En él se explica el sistema Scrum de un modo integrador desde diferentes perspectivas y fuentes de conocimiento, proporcionando un marco integral que incluye a los principios filosóficos, estructura, procesos y aspectos complementarios. 

Con este libro se busca ayudar a los equipos a avanzar de intentar emplear Scrum a ejecutarlo correctamente para lograr alcanzar los resultados que aún no se han logrado.

También busca ser una guía y ayuda para quienes se desenvuelven como Scrum Master de equipos de desarrollo de software.


Referencias:

lunes, 3 de octubre de 2016

SCRUM: Gestión Ágil de Riesgos - Modelo

Este post fue origen de datos para que pudiera dar una charla de gestión de riesgos y quería compartirlo con ustedes...
 DevOps Journey LATAM, 02/12/2016, Hotel Atton el bosque. Agile Risk Management in devops Context.

Gestión Ágil de Riesgos


Si bien la gestión de riesgos no es parte de scrum y un facilitador no se encarga de la gestión al modo tradicional como la gestión de riesgos, sí debería velar por mitigar los problemas que surjan en el proyecto y apoyar, en consecuencia, a la gestión de riesgos. En este sentido, no solo se encargaría de ayudar a desbloquear issues y reducir impedimentos para que el sistema de trabajo fluya en el procesamiento de PBIs (Product Backlog Items), sino que también puede preocuparse de prever issues para anticiparse a los problemas y controlar así, de antemano y en la medida de lo posible, los riesgos asociados a bloqueos del flujo de trabajo que atentan contra los objetivos del proyecto.
fig.1: Diagrama riesgos vs problemas.

Lo difícil es lograr una gestión de riesgos ágil en vez de una gestión pesada, dificultosa y que demande mucho esfuerzo de gestión. En esta vía, es preferible mantener un simple registro de riesgos con información concisa. Los datos principales a registrar de un riesgo, además de su nombre, pueden ser: descripción, probabilidad (probability), impacto (severity), criticidad (criticality), acciones de mitigación, dueño y estado.
fig.2: estado de riesgos.

Algo simple que se puede lograr trabajando con criticidad es usar tres valores en la probabilidad de ocurrencia y en el impacto (1, 2 y 3). El impacto representa la severidad de la ocurrencia de un problema asociado al riesgo o el tiempo perdido (size of loss). Por otro lado, la criticidad representa la prioridad del riesgo o el grado en que ese riesgo afecta negativamente al proyecto (exposure). El mismo será resultado del producto entre la probabilidad y el impacto. En consecuencia, la criticidad podría ser: 1, 2, 3, 4, 6, 9.

Las herramientas gráficas que se pueden usar para dar visibilidad de los riesgos son: a) la “matriz de riesgos”; b) el “histórico de criticidad”; c) o el gráfico de curva de riesgo quemado (Risk Burn-down Chart).

La gestión de riesgos no es independiente de la gestión de impedimento o de problemas o “issues”. Muchos de los problemas surgidos en el proyecto están asociados a riesgos identificados. Por tal motivo, la gestión de riesgos es útil, porque podemos mitigar los problemas de antemano. Por dicha razón, puede ser valioso llevar un registro de los issues y su relación con los riesgos. Siempre sin perder de vista no caer en el énfasis de la documentación ni en el afán de reportar. Se debe buscar la simplicidad y el foco en el flujo de trabajo sin impedimentos.

Las herramientas gráficas útiles para dicha gestión son: “Tablero de Obstáculos” (obstacle board) o el calendario de issues (Issues calendars).

Referencia:

Risk Management in Agile, Satheesh Thekku Veethil, Scrum Alliance Org., 3 May 2013

Managing Risk on Agile Projects with the Risk Burndown Chart by Mike Cohn. Mountain goat software, April 8, 2010.

sábado, 27 de agosto de 2016

SCRUM: PO y Valor, nivel 2

¿Cómo medimos el valor trabajando bajo un marco ágil como scrum? y ¿cuán precisos somos midiendo valor? 

En la práctica estas preguntas se resuelven dependiendo del grado de madurez del equipo Scrum y de su PO. Tal vez, el primer nivel considera medir en forma relativa, subjetivo a la perspectiva del PO, sin una transparencia precisa (no se dan argumentos basados en datos ni se conoce el valor que aportan los entregables), priorizando sin técnicas precisas, etc.; y un segundo nivel puede ser como el que paso a contar seguidamente. 

Scrum y el valor

Primero que nada recordemos que, Scrum es una herramienta que puede ayudar a enfocarse a la entrega temprana de valor [1], a re-enfocarse en la rentabilidad de la inversión relacionada al desarrollo de features orientadas al valor aportado [4] y a disminuir el riesgo financiero asociado al valor de pérdida por un mal producto que tarda en salir al mercado y falla [7]. Aunque no es una herramienta que brinde el cómo hacer esto ni cuán precisa debe ser la medida de valor que se tenga en cuenta. Respecto a lo primero, scrum da un “qué” relacionado al valor, el objetivo de scrum es conseguir un MVP en manos de los futuros clientes o usuarios cuán rápido sea posible y obtener sus comentarios [2] o  feedback. Esto se hace para descubrir lo valioso para el cliente o usuario, validar el producto y encaminar el desarrollo en esa dirección, de ser factible el producto. Para ello se propone enfocarse en las features de valor. Ahora, el cómo se valoran las features o cómo se hace el trabajo de priorización de features de valor no es solución brindada por Scrum ni por el Manifiesto Ágil [3] -pues scrum solo da el contexto como marco de trabajo-.

ROI y técnicas de priorización de valor

Para priorizar trabajo por valor se usan técnicas, recomendaciones y prácticas complementarias cuya selección será subjetiva al equipo, organización que las implemente o seniority y skill del PO. Por ejemplo se pueden  recomendar, para buscar el MVP y focalizarse en el valor, algunas técnicas como: ley de Pareto 20/80 para priorizar [7],  priorización por KPI, estimación relativa de valor, técnicas de "cost of delay", priorización urgencia e importancia, medición técnica de satisfacción del usuario, ROI [5] y ROI Scorecard, NPV [5], IRR [5], EVM [8], etc.; y de estas, la más renombrada es el ROI, ya que el PO debe buscar lograr y maximizar un retorno de la inversión. La fórmula de ROI genérica es la siguiente:

Tipos de valor 

En cuanto a cuán precisa debe ser la medida de valor que se tenga en cuenta, también es ajeno al marco Scrum y al Manifiesto. Por un lado, hay que tener en cuenta (a) ¿el valor para quién? ¿para el usuario final o para el cliente negocio?... y por otro lado (b) ¿qué es específicamente el valor? (valor hipotético vs valor real)

¿El valor para quién?

En relación a los primero (a), en Scrum se recomienda definir esto al comienzo y luego nos enfocamos según los objetivos planteados que involucran al beneficiario del valor. Aquí puede ser el usuario final (“valor percibido por el usuario”) o la compañía cliente (“valor del negocio” [1]). Relacionado a esto último es que con scrum nos proponemos responder rápidamente la pregunta: ¿Ganaremos dinero con esto? [7] Aunque siempre se termina validando contra el usuario final en cuanto a “software funcionando”[3] (o producto funcionando) como valioso para el usuario.  Otra pregunta que el PO debe tener siempre en su mente es: "¿Qué es lo más valioso que podemos entregar bajo un costo y tiempo fijo?" (aquí el el costo y tiempo fijo es el equipo y el sprint)

¿Qué es específicamente el valor?

Con respecto a lo segundo (b), hay que partir de que el valor mismo siempre es subjetivo y no existe realmente un valor real concreto y empírico, aunque mientras más nos acerquemos a la realidad del mercado económico, será mejor. Siempre en un justo balance, ya que lo que sí recomienda el Manifiesto es “la adaptación” en vez de seguir un plan minucioso, o sea a no tener toda la información precisa y detallada -la económica por ejemplo- de antemano, desde el comienzo, sino más bien tolerar ciertos grados de incertidumbre -valores hipotético o cercanos al real- en pos de entregar software funcionando que el usuario percibe como valioso. O sea, pretender saber qué valor real en dólares tiene asociado cada entregable es poco válido dentro del agilismo y de scrum; y hasta cierto, punto es utópico. Como versa la frase: "No hay tal cosa como valor absoluto en este mundo. Sólo se puede estimar qué cosa es valiosa para ti" [4] (Charles Dudley Warner, 1829-1900). 

Tips para POs

Particularmente recomiendo, a equipos maduros y principalmente a POs más que juniors, las siguientes prácticas: 
  1. El establecimiento de objetivos comunes entre todos los stakeholders (internas y externas) alineados al negocio [4] (Alineamiento con metas y KPI definidos). 
  2. ROI mediante desarrollo de las features más importantes [4], según MVP y KPI definidos. 
  3. La identificación de las features innecesarias o de bajo perfil para remoción del backlog durante la “priorización continua” [4], usando ley de Pareto 20/80 [7] u otra técnica de priorización. 
  4. Motivar al equipo haciéndoles saber cuánto valor relativo de negocio están entregando por features o historia de usuario [4], se puede usar el Value Point como medida; o midiendo el impacto mediante el KPI propuesto. 
  5. La reducción del riesgo mediante uso de MVP, MMP y release plan [6][7]. 
  6. Medir la satisfacción del cliente para buscar su incremento [4] (NPS, CSAT, etc.). 
  7. Respaldar con datos al “Business Case” u "Opportunity Assessment" y al release plan o Roadmap. 
  8. Medición o estimaciones de KPI principales, como revenue, save cost y penetration. De lo cual se desprende el análisis de qué features aportan a la reducción de los costes, aumento de revenue y/o penetración en mercado. Justificar el “Business Case” u "Opportunity Assessment" y el valor aportado en las reviews. 

Hay que recordar que lo relacionado a valor es responsabilidad del PO y la calidad relacionada al mismo dependerá, en gran medida, de su seniority como PO. La excelencia es un principio en la agilidad, por lo que un buen PO debe procurar excelencia como analista del negocio y del valor del producto/servicio que el equipo entrega o brinda. Un trabajo de precisión ágil y excelencia requieren un PO de seniority alto que busca la excelencia. 

Referencias: 

[1] Scrum Alliance: Scrum Values. URL: https://www.scrumalliance.org/why-scrum/core-scrum-values-roles

[2] Book: Summary: Scrum - Jeff Sutherland: The Art of Doing Twice the Work in Half the time, by BusinessNews Publishing.

[3] Manifiesto por el Desarrollo Ágil de Software. URL: http://www.agilemanifesto.org/iso/es/

[4] Scrum Alliance: What Is Required for Business Value? Sumanth Reddy Bathula. URL: https://www.scrumalliance.org/community/articles/2016/april/what-is-required-for-business-value-(1)

[5] Scrum Alliance: Business Value Metrics. URL: https://www.scrumalliance.org/community/articles/2016/april/business-value-metrics

[6] Artículo: Desarrollo Ágil - Desarrollo mediante MVP. URL: http://programminglabpoint.blogspot.cl/2016/05/desarrollo-agil-mvp.html

[7] Book: Scrum The Art of Doing Twice The Work In Half the Time by Jeff Sutherland, 2014.

[8] Agile estimating and planning. Mike Cohn.

[9] Characteristic of a good product owner, Toqir Khalid, 2016. URL: https://blog.red-badger.com/blog/2016/04/20/characteristic-of-a-good-product-owner


Agilismo: Presentaciones ágiles


¿Cómo dictar una presentación ágil?



Podemos hacer que nuestras presentaciones orales, demostraciones de productos o resultados, sprint review, show cases, exposiciones educativas, informes de noticias, capacitaciones, etc., sean ágiles. Para lograrlo tenemos que tener en cuenta los valores ágiles en su desarrollo.

Pueden haber muchas maneras de hacer una presentación en el marco de la agilidad. Aquí se muestra una forma basada principalmente en tres valores ágiles y un principio.
A continuación ofrezco 6 aspectos a tener en cuenta dentro de este marco de agilidad:
  1. Tiempo: la atención ronda entre 5 y 18 minutos. Es recomendable no superar los 20 minutos de una presentación (principalmente si las personas están de pié) y en actividades largas fraccionar en tramos de 20 min. [1] [2]. No superar los siete segundos de silencio [6]. Y por último, respetar un time-box.
  2. Útil: Dar valor al público espectador con lo que se presenta [2] [7]. Debes poder presentar tu premisa en una o dos oraciones y hacerla interesante [2].
  3. Emoción:  Motivar con emociones, sensaciones o dinámica ágil por medio del lenguaje textual y corporal [6] [7]. Conoce a las personas a las que les hablarás [2] [3]. El ponente también puede ponerse en un rol de amigo o de igual [6].
  4. Interacción: Hacer preguntas y hacer pensar interactuando con los demás. Romper la barrera con el público y capturarlo [2] [6]. Puedes solicitar feedback para poder mejorar.
  5. Simple: Buscar ser claro, conciso y concreto presentando poca información y siendo visual y minimalista, “Keep it simple” [2] [4].
  6. Cambio: Orientarse a inspirar y/o generar un cambio en el oyente. Para ello ser desafiante, innovador, buscar impactar o generar nuevas ideas o reflexiones. Tu conclusión debe ser algo que deje a tu público con una sensación positiva sobre tu idea y cómo les afectará si la deciden implementar, que los motive al cambio [2] [3]. El ponente también debe estar abierto al cambio y a salir de su zona de confort [6].


Referencias:


[1] ¿Cuánto debe durar una presentación? por Roger Prat, febrero 25, 2013


[2] TED Speaker Guide by TED.com.
[3] Manifesto for Agile Software Development by Agilemanifesto.org
[4] Principles behind the Agile Manifesto by Agilemanifesto.org
[5] Cómo dictar una charla TED
[6] Presentaciones efectivas: Técnicas para la exposición oral de trabajos y proyectos académicos. Por Iñaki Bustínduy. Editorial UOC, 11-03-2014.
[7] Neuro Presentaciones efectivas, Miguel Figueroa, Youtube, Published on Dec 3, 2015
URL: https://www.youtube.com/watch?v=GD1QosoeRtY