Buscar en Gazafatonario IT

martes, noviembre 11, 2014

Ágil Necesita Ser Tanto Iterativo como Incremental

Noviembre 11 de 2014, por Mike Cohn
Este artículo se publicó originalmente en el boletín mensual de Mike Cohn. Si te gusta lo que estás leyendo, suscríbete para que este contenido te llegue directamente a tu buzón semanas antes de que sea publicado en el blog, aquí.


Scrum, como todos los procesos ágiles, es tanto iterativo como incremental. Puesto que estas palabras se usan frecuentemente sin definición, permítanme definirlas.

Un proceso iterativo es uno que permite progresar a través de refinamiento sucesivo. Un equipo de desarrollo hace un primer corte del sistema sabiendo que está incompleto o frágil en algunas áreas (quizás en muchas). El equipo luego refina iterativamente esas áreas hasta que el producto es satisfactorio. Con cada iteración, el software se mejora mediante la adición de mayor detalle.

Por ejemplo, en una primera iteración, una pantalla de búsqueda podría codificarse para soportar solamente el tipo más simple de búsqueda. La segunda iteración podría agregar criterios adicionales de búsqueda. Finalmente, una tercera iteración puede agregar manejo de errores.

Una buena analogía es la escultura. Primero, el escultor selecciona una piedra de un tamaño apropiado. A continuación, el escultor talla la forma general de la piedra. En este punto, uno quizás pueda distinguir la cabeza y el torso y hasta pueda descifrar que el trabajo finalizado será un cuerpo humano en vez de un pájaro. Luego, el escultor refina su trabajo adicionando detalles. Sin embargo, es poco probable que el escultor dé por completada un área hasta que el trabajo entero esté terminado.

Por su parte, un proceso incremental es uno en el que el software se construye y entrega por piezas. Cada pieza, o incremento, representa un subconjunto completo de funcionalidad. El incremento puede ser pequeño o grande, quizás algo que vaya desde una pantalla de ingreso al sistema hasta un conjunto altamente flexible de pantallas de administración de datos.

Cada incremento se codifica y se prueba completamente y la expectativa común es que el trabajo de una iteración no necesitará volver a revisarse. Un escultor incremental elegirá una parte de su trabajo y se enfocará completamente en esta hasta que esté finalizada. Él/ella puede seleccionar pequeños incrementos (primero la nariz, luego los ojos, después la boca y así sucesivamente) o incrementos grandes (cabeza, torso, piernas y luego los brazos). Sin embargo, independientemente del tamaño del incremento, el escultor incremental intentará finalizar el trabajo de ese incremento tan completamente como le sea posible.

Scrum y ágil usan un enfoque tanto incremental como iterativo. Iterativo en el sentido de que planean que el trabajo de una iteración sea mejorado en las iteraciones subsiguientes. Incremental porque el trabajo terminado se entrega durante todo el proyecto.

Para ilustrar mejor las diferencias entre iterativo e incremental, consideremos la construcción de un sitio Web pero no de manera incremental. Para hacer esto, el equipo construiría un poco de cada parte del sitio –manejo de perfiles, búsqueda, anuncios, etc. Luego el equipo revisaría todas las partes, mejorando cada una de ellas.

Más adelante el equipo revisaría todas las partes nuevamente, haciendo otras mejoras. En este enfoque puramente iterativo, se consigue mejorar un poco el sitio completo.

Ahora, consideremos desarrollar el mismo sitio con un proceso puramente incremental pero no iterativo. Si un sitio de citas fuera construido incrementalmente, el equipo construiría y perfeccionaría la administración de perfiles antes de empezar cualquier otra parte del sitio. El equipo luego construiría y perfeccionaría otra área, digamos las búsquedas, antes de moverse a una tercera área. Cada área funcional se perfeccionaría antes de iniciar el área siguiente.

Ni iterativo ni incremental son grandiosos por sí solos. Pero juntos –como están en Scrum– son fantásticos.

Nota del traductor (¡ese soy yo!):

Traducido del artículo original de Mike Cohn: ‘Agile Needs to Be Both Iterative and Incremental’, que pueden encontrar en este enlace:


Publicado con permiso del autor.

miércoles, noviembre 05, 2014

Mañana empiezo un nuevo proyecto: ¿qué metodología ágil me pongo?

 Ecosistema de Métodos y Prácticas Ágiles (Parcial)
Ecosistema de Métodos y Prácticas Ágiles (Parcial)
El ecosistema ágil está formado por un conjunto de organismos “vivos” llamados “métodos y prácticas ágiles” (biocenosis) y el medio físico donde se relacionan, llamados Organizaciones (biotopo). Estas últimas están conformadas por personas y estas personas usan distintas clases de biocenosis, es decir, de métodos y prácticas ágiles, según sus necesidades.
Como todo ecosistema, el ágil tiene barreras que a veces impiden su normal evolución. Barreras físicas, como la falta de entornos adecuados dentro de las Organizaciones para albergar equipos que respiren “agilidad”. Barreras culturales y hasta emocionales, arraigos y miedos que se dan entre las personas, quienes experimentan temores muchas veces infundados debido a la falta de información o de acompañamiento efectivo por parte de expertos, de conocedores de ese ecosistema ágil en formación.
Pero, ¿cuáles son esos métodos y prácticas ágiles? ¿Para qué sirve cada uno de ellos? En esta sesión exploraremos, a manera de introducción, las metodologías más usadas, como Scrum, eXtreme Programming (XP), Kanban, Lean; y algunas de las técnicas necesarias en un primer esfuerzo por implementar la Cultura Ágil en una Organización: User Story Mapping, Product Vision Board, User Persona, User Stories, TDD, BDD, para mencionar solo algunas.
Y lo más importante, ¿para qué sirve cada uno de estos especímenes ágiles? ¿Alguno de ellos es adecuado para el proyecto que inicio mañana? ¿Varios de estos? ¿Son complementarios? ¿Qué problemas puedo encontrar si elijo mal? Y en el fondo, ¿cuáles son las razones por las que debo permitir el nacimiento y expansión de un nuevo ecosistema aun si el actual me está rindiendo beneficios? Y hablando de utilidades, ¿cuáles puedo obtener al implementar la “agilidad” en mi Organización?

Finalmente, sabemos que los ecosistemas están gobernados principalmente por eventos estocásticos (azar), por las reacciones que estos eventos ocasionan en sus componentes y por las respuestas de los organismos a las condiciones que los rodean. ¿Cómo controlar estos eventos y sobrevivir en el intento? Una mirada Darwiniana nos ayudará a entender cómo, mediante la inspección y la adaptación, nos iremos adecuando a los cambios que ocurren en todo proceso de evolución y entenderemos que la cultura ágil es el siguiente paso en la evolución de la inteligencia.
Nota:
Esta fue la presentación que hice durante el marco de las VII Jornadas Latinoamericanas de Metodologías Ágiles - Ágiles 2014, en Medellín, Colombia. Del 23 al 25 de octubre de 2014.
Nivel: Principiante

Título: Mañana empiezo un nuevo proyecto: ¿qué metodología ágil me pongo?

Resumen:

Uno de los impedimentos más grandes a la hora de implementar Ágil se origina en el desconocimiento que tienen las personas sobre lo que harán a continuación. ¿Por cuál de los métodos empiezo? ¿Uno solo es suficiente? La respuesta corta a esta última pregunta es “no”. Entonces, ¿qué debo saber para dar el salto de aquí hasta ágil? ¿De qué me “agarro” para no caer en el abismo? Estos son los asuntos que abordaré en esta sesión introductoria.
Con definiciones simples y ejemplificadas, basado en hechos históricos de los cuales he sido protagonista, le contaré a la audiencia de qué se trata toda esta jerigonza ágil, a manera de Gazafatonario.

La presentación completa la pueden descargar aquí:




domingo, octubre 26, 2014

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

Ser ágil significa reemplazar la predictibilidad falsa por la eficiencia
ser ágil significa reemplazar la predictibilidad falsa por la eficiencia
Con una actualización debido al cambio de audiencia, presenté en #Agiles2014 mi disertación sobre Ágil y CMMI. Como en la versión 1.0, durante la SEPG LA 2014 en Manizales, mi asunto principal era 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. Los líderes de los procesos actuales 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 como 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 habló en el resto de #Agiles2014.

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.

Para descargar la presentación

Puedes descargar las memorias de esta conferencia de: http://goo.gl/rhNMcf


martes, octubre 21, 2014

Por qué usar métodos + prácticas ágiles

Anualmente, la consultora VersionOne.com publica un estudio sobre el uso de metodologías y prácticas ágiles. Este año, el estudio llegó a su octava edición. El estudio dice, por ejemplo, que Scrum es el método más ampliamente usado en el ecosistema ágil y así ha sido en los últimos 8 años, mismos en los cuales se ha incrementado su uso desde un 40% hasta el 55% de este año. Además, otros sabores de Scrum, combinados con métodos o prácticas como XP y Kanban también son bastante usados. Es un hecho, Scrum está aquí para quedarse.

Clic en la imagen para ampliar
Fuente: VersionOne.com. 8th Annual State of Agile Survey

Pero quiero referirme es a las principales razones por las cuales se usa Ágil. El estudio dice en esta sección que los 3 motivos primordiales que dieron los participantes de la encuesta son:
  • Acelera la salida del producto al mercado: 23%
  • Maneja más fácilmente los cambios en las prioridades: 16% y
  • Mejora la alineación del negocio y de la IT: 15%

Clic en la imagen para ampliar
Fuente: VersionOne.com. 8th Annual State of Agile Survey

El 75% de los encuestados considera que es muy importante o de la más alta importancia el que los métodos ágiles aceleren la salida del producto al mercado. Este es el principal beneficio de usar prácticas y metodologías ágiles. Las salidas “tempranas” se logran construyendo el producto de manera orgánica, en iteraciones cortas de 4 semanas o menos, con preferencia al tiempo más corto posible. Y si bien es cierto que es posible no salir a producción al final de cada iteración, siempre debemos planear para que haya entregas a Operación cada muy pocas iteraciones.

Los equipos ágiles no congelan las prioridades ni las firman con sangre. Es el usuario (por ejemplo, el Dueño de Producto en Scrum), quien establece qué quiere ver primero y qué quiere ver más adelante. En consistencia con el aspecto anterior, es el usuario quien tiene la última palabra en el orden de prioridad conque el mercado llega al mercado o a los usuarios finales. Se trata además, de software con valor, recordemos que en Ágil todo es acerca de entrega de valor al negocio.

En ese mismo orden de ideas, la alineación de la IT con los objetivos del negocio siempre ha sido uno de los pilares de los métodos ágiles, de hecho, tiene sus cimientos en aquel valor del Manifiesto Ágil de Colaboración con el cliente sobre la negociación contractual. Recordemos también que los desarrolladores y el negocio trabajamos juntos cotidianamente durante todo el proyecto, o así reza uno de los principios del Manifiesto. El 65% de los encuestados respondió que esta razón es muy importante o de la más alta importancia para ellos a la hora de hace uso de las metodologías ágiles.

El estudio completo lo encuentran en versionone.com.


domingo, agosto 31, 2014

Agile Open Eje Cafetero: la innovación con esencia de café


Foto: algunos de los asistentes, al cierre del Agile Open.

Existe un universo más allá de las grandes ciudades en Colombia, una órbita donde un grupo fantástico de estudiantes, jovencitos con ganas desde ya de cambiar la forma de hacer las cosas, apoyados por un grupo de empresarios también muy jóvenes, con ideas frescas que rayan en lo innovador, están decididos no solo a plantar el jardín sino a ser los mejores jardineros del ecosistema ágil mundial. Eso fue lo que encontramos los invitados, facilitadores y asistentes al Primer Agile Open Eje Cafetero, organizado por las Comunidades de Ágiles Colombia Eje Cafetero y Ágiles Colombia.

Lo que sucedió en el Abierto fue un encuentro de micro-culturas, una danza de conocimiento, experiencias y anécdotas compartidas, que se entretejieron en un escenario de networking entre quienes concurrieron solícitos a la convocatoria. Hubo conferencias, talleres, tutoriales, encuentros fortuitos en los pasillos del centro de convenciones, conversatorios y juegos ágiles, entre otros sabores y formatos de reunión. Los temas clásicos estuvieron a la orden del día:

Foto: Raúl, Natasha, Claudia, Yamit, Cristian, Luis, Julián, Jorge, Pablo, Andrés, Carlos, Robinson. Solo algunos de los facilitadores del Agile Open. También estuvieron Ana, Juliana y otros.

En total, fueron más de 40 sesiones ricas en información, rutinas, discusiones, conclusiones e ideas innovadoras que se llevaron los más de 200 asistentes a la cita. Quienes participamos de la reunión, sabemos que la innovación envuelve más que grandes ideas. Sabemos que hay que tener fe, trabajar duro y enfocarse en la meta que queremos alcanzar. Con esto sobre nuestras cabezas, estamos seguros que la mayor o menor visión de innovadores que tenemos en la Comunidad persistirá aún más allá de los muros de contención que representan el sinnúmero de obstáculos en el camino hacia el éxito.

Mientras facilitaba algunas sesiones con Jorge, observaba como los asistentes a los distintos conversatorios y talleres se deshacían de sus inhibiciones, autoimpuestas por demás. ¡Este fue otro logro de la reunión! Bien sabemos que bajo el hechizo de la inhibición, nos sentimos limitados y estancados, y liberarnos de estas limitaciones creadas por la mente, mediante la eliminación de supuestos y restricciones, es una tarea que a veces no podemos hacer solos. Nuestra meta como facilitadores fue motivar a todas las personas que nos siguieron a través de los distintos auditorios, a “pensar fuera de la caja”. Tratamos de animarlos a abrirse a nuevas ideas y soluciones sin establecer limitación de creencias antepuestas. Después de todo, la innovación es más acerca de la psicología que de la inteligencia y el conocimiento.

También pude percibir que muchos otros asistentes sintieron Curiosidad. Otra vez la innovación estaba presente. Muchos innovadores tratamos de ser simplemente personas curiosas e inquisitivas y nos gusta resolver problemas, practicamos la observación de las cosas de manera diferente. Así fue como, atendiendo a sesiones de su predilección, los asistentes al Abierto se comieron un elefante en vez de aprender a elaborar un Story Mapping, bañaron un ayé ayé y a un cocodrilo en vez de formarse en estimación ágil de proyectos, hicieron teatro y jugaron en vez de aprender Scrum, escribieron en un árbol en vez de hacerlo en tabletas o portátiles de última tecnología. ¡El ambiente era de fábula! Quizás sea por eso que la próxima vez que cualquiera de quienes estuvimos allí, veamos la solución a un problema, seguramente nos preguntaremos: “¿cuáles son algunas formas alternativas para hacer esto?”. Haremos muchas preguntas y desafiaremos las normas o los métodos existentes. ¡Qué felicidad!

En mi recorrido por los distintos espacios de entrenamiento, tuve la ligera pero absoluta esperanza de que algunos muchos trataban de encontrar, o de aprender a encontrar, patrones y con estos creaban combinaciones. Otro síntoma de innovación. Hace mucho tiempo aprendí que las ideas vienen de otras ideas. ¿Sabías que Edison no fue quien inventó la bombilla? Él fue el primero en construir un filamento de carbono viable dentro de una ampolla de vidrio, que hace que las bombillas duren más. ¡Genial! Durante los variados cónclaves en la ciudad milagro de Colombia, aumentamos nuestra exposición a nuevas ideas, buscamos patrones y vimos cómo se pueden combinar ideas para mejorar las soluciones existentes.

Foto: Gregorio, Mauricio, Pablo, Natalia, Alejandro, Diana y algunos de los voluntarios que hicieron posible el Open Space.

Al cierre todos sentíamos que habíamos cambiado algo de nuestras vidas, quienes lideramos el evento sentimos que tocamos aunque fuese de manera infinitesimal el espíritu de muchas personas. Pero quienes se llevaron todos los elogios fueron este equipo de muchachos que organizaron con lujo de detalles esta fiesta del discernimiento y la interacción: Gregorio, Mauricio, Pablo, Natalia, Alejandro, Diana y todos sus amigos, se merecen mis (nuestras) felicitaciones.

Estamos seguros que la audiencia salió esa tarde de sábado con ideas disruptivas, sintiéndose inspirados y motivados a ir más allá de lo que es posible, pero ustedes muchachos de Agiles Eje Cafetero, la tarea que emprendieron es memorable y emocionante… Adelante con ello y ¡cuenten con nosotros!

Adenda

Tiene razón Tobias, ¡que delicia es sentirse de nuevo como en el patio de la escuela!

Más fotos del evento, por Luis y algunos de los miembros del equipo organizador, las encuentran en la página de Facebook de Ágiles Colombia, haciendo clic aquí y en la página de Agiles Eje Cafetero.

Lo que viene

Sigue el Agile Open Bucaramanga en septiembre y más tarde, del 23 al 25 de octubre, en Medellín, Las VII Jornadas Latinoamericanas de Metodologías Ágiles, con una súper nómina de lujo y la presencia de los principales exponentes del enfoque ágil en Iberoamérica. ¡Los esperamos a todos!


viernes, agosto 08, 2014

La Esencia de la Ingeniería de Software: aplicando el núcleo de Semat

La Esencia de la Ingeniería de Software: aplicando el núcleo de Semat
Portada de La Esencia de la Ingeniería de Software: aplicando el núcleo de Semat. Nueva Librería.
PREFACIO A LA EDICIÓN EN ESPAÑOL
La reunión del Comité Científico de la OTAN en Garmish en 1968 dio inicio a la Ingeniería de Software como disciplina, pero no suministró bases teóricas firmes para esta naciente disciplina. Después de 45 años de esa reunión, si bien se hicieron varios intentos por generar esas bases teóricas, aún la Academia y la Industria del software no se ponen de acuerdo para darle, por fin, el carácter ingenieril que requiere esta novel ciencia. Durante estos años, los métodos surgieron por doquier, las prácticas se propagaron y las teorías se multiplicaron para explicar fenómenos aislados de la Ingeniería de Software, pero no hubo unificación alrededor de esos esfuerzos.
El surgimiento de SEMAT comenzó a brindar alguna unificación sobre estos temas. Como un acuerdo entre la Academia y los actores principales de la Industria del software (los practicantes y los clientes), los conceptos fundamentales de la Ingeniería de Software vienen cobrando creciente interés en el mundo, a tal punto que existen ya comités especializados en el tema y varios Capítulos regionales que trabajan en pro de estos esfuerzos. Latinoamérica no es la excepción y se viene vinculando a este esfuerzo transnacional para diseminar las ideas de SEMAT en toda la región. Además, el núcleo de SEMAT se viene abriendo paso como estándar en el Grupo de Gestión de Objetos (OMG por sus siglas en inglés), que tiene ya en su haber importantes estándares como UML, XML, BPMN, MDA y Corba. El Dr. Ivar Jacobson viene liderando este esfuerzo y uno de los lineamientos principales para el Capítulo Latinoamericano tiene que ver con la traducción del material relativo a SEMAT al español, con el fin de lograr la mayor accesibilidad posible a las ideas de esta iniciativa. Este libro surge como una estrategia adicional para alcanzar ese objetivo, el cual se reafirma en la necesidad sentida que venimos experimentando los traductores de este libro, como partícipes de la ideología SEMAT, al compartir estas ideas en nuestra región en diferentes eventos de nivel Latinoamericano. En efecto, la necesidad de material en español se justifica plenamente para llegar a la mayor cantidad de público de habla hispana que nos permita esclarecer las bondades que implica la utilización de las ideas de SEMAT, en particular el núcleo, que es la Esencia de la Ingeniería de Software.
Conscientes de que esta obra es tan sólo la semilla de lo que vendrá en el futuro, presentamos esta traducción al español con la certeza de que alcanzará hasta el último rincón de nuestra región y permitirá promover una discusión abierta y consciente sobre el uso y alcances de la Esencia de la Ingeniería de Software: el núcleo de SEMAT. A sólo algunos meses de la publicación del libro en inglés, tenemos la fortuna en Latinoamérica de contar con la traducción al español, accediendo sin demoras a lo más reciente que se viene discutiendo en el seno de SEMAT.
Carlos Mario Zapata – Luis Antonio Salazar

miércoles, julio 16, 2014

Certificar un proveedor como Ágil o de la 'Agile Certified Provider Alliance'

Generalmente ganamos la confianza de aquéllos en quienes ponemos la nuestra.” [Tito Livio]
Certificar un proveedor como Ágil o de la Agile Certified Provider Alliance
Hace algunos días, nuestro amigo y colega Jorge Abad decía en un mensaje a la Comunidad de Ágiles Latinoamérica:
Me hacen esta pregunta desde una empresa del estado que realiza grandes contrataciones de proveedores: ¿Existe una lista de chequeo estándar para validar si una empresa es ágil y usa las prácticas de ingeniería adecuadas para ágil?
Al margen de que sea o no una empresa del estado, la pregunta tiene su truco. En cualquier caso, esta fue mi respuesta a Jorge:

Watts Humphrey, el padre de CMMI, decía que certificarse CMMI 5 significaba que tu siguiente proyecto iba a ser exitoso. Él no decía nada de los demás proyectos. Es natural, la organización recién certificada “respiraba” CMMI, calidad, procesos, productividad y motivación, algunos de los elementos clave para el éxito de los proyectos.

¿Pero y los demás proyectos, los que siguen a continuación de ese?

Igual sucede con Ágil. Aun si el cliente visita al proveedor potencial, este último le puede demostrar a aquel (¡a no ser que sea una visita sorpresa!), que es Ágil.

¿Pero y los demás proyectos? [Acá entre nos, no existe ninguna posibilidad de que una lista de chequeo sirva para probar que un proveedor es ágil. Existen listas como esta de Henrik Kniberg (http://goo.gl/QnQUN), una herramienta para evaluar una implementación de Scrum, tratar de encontrar algo más allá es una utopía.]

Quienes hemos navegado por los vericuetos, a veces inescrutables, de las certificaciones de todo tipo, que nos proclaman como los poseedores del vasto poder del conocimiento y la experiencia, sabemos que eso no es suficiente y que, en muchos casos, eso no garantiza el éxito. Sobre todo, en nuestras economías tercermundistas, con nuestra idiosincrasia, con nuestra forma de ver el universo.

¿Qué vale entonces?

¡La confianza!

Aun una entidad del gobierno, debe dar el salto y modificar su “modus vivendi” (Sí, lo sé, no es fácil –pero igual, aun una entidad del gobierno debe saber que “ser ágil no es solo cosa de sus proveedores”, la organización también debe transformarse), para que pueda ser capaz de hacer pilotos, evaluar los resultados y luego sí, ajustar con el probable proveedor o desecharlo de una vez por todas y para siempre, condenarlo a 100 años de soledad, esa fatídica maldición de los que no tienen una segunda oportunidad sobre la tierra.

Incluso quizás unos cuantos sprints no serán suficientes. Más aun, ¿cómo comprobar al final de varios proyectos si tu proveedor es ágil? ¿Acaso es posible probar que parte del equipo no es ágil (el equipo de desarrollo –del Proveedor) y parte sí (acaso el Dueño de Producto y quizás el Scrum Master –del Cliente)?

Estaba reflexionando con toda esta perorata y mi conclusión es que no es posible, al menos no tiene mucho sentido que este cliente del estado, o cualquier otra empresa privada o de gobierno, evalúe si un proveedor es ágil.

Quizás el proveedor sí es ágil, pero cuando se junte con el cliente deje de serlo.
Quizás no lo es, pero cuando se junte con el cliente aprenda a serlo.
Quizás sí lo es y cuando se junte con el cliente, siga siéndolo.

En fin, las posibilidades son variadas.

¡Estamos de vuelta en la Confianza! Martín Alaimo, dice en su libro “Equipos #MásProductivos”, citando a su vez a Gorerg Simmel, que “La confianza es una hipótesis sobre la conducta futura del otro” y más adelante él mismo dice: “La confianza que inspiro en otros sobre mí, la construyo y la sostengo a través de mis acciones.”

Algunos miembros de la Comunidad le respondieron a Abad que era una cuestión de “feeling”. Yo, por ejemplo, tuve varias novias (2 al menos) antes de quedarme con quien es mi esposa, no era la más bonita pero sí la que más confianza me generó. Y eso, mi estimado Jorge, no se consigue con una lista de chequeo ni con una visita a casa de los padres de la novia. ¿Quién sabe? Quizás mañana me divorcie.

martes, julio 01, 2014

Respuesta al cambio sobre seguir un plan: ¡no planearás!

“El plan no es nada, la planificación lo es todo”. Eisenhower
Imagen cortesía de Vichaya Kiatying-Angs / FreeDigitalPhotos.net
Basado en hechos históricos

Natalia es gerente de proyectos de una importante compañía proveedora de servicios de tecnología. Es la encargada de la operación en uno de los clientes más grandes de la empresa: un conglomerado de telefonía móvil. Hacia el final de esta mañana la llamó el director de mercadeo de esa organización bastante alarmado:

         - Natalia, hablas con Juan Pérez de Móviles del Sur* - ¿tienes un momento?
         - Hola Juan, ¿en qué te puedo ayudar?

Lo que siguió fue toda una perorata que inquietó a Natalia. El cliente le contó cómo durante la mañana se enteró de la Promoción Rumbo al Mundial Brasil 2014 que su más encarnizado competidor sacaría a la luz la noche de ese día. Pérez sabía que de no responder efectiva y rápidamente no solo dejaría de ganar cientos o miles de clientes, sino que perdería muchos otros, lo que podría golpear severamente sus márgenes de ganancia durante el primer semestre del año. Para suerte de Natalia, el señor Pérez había hecho su tarea, ya sabía que debía actualizar las herramientas de software de mercadeo y ventas para soportar una promoción agresiva que debería estar al aire en la TV y en las redes sociales dos horas antes que la de su competidor.

Mientras Pérez hablaba, Natalia revisaba rápidamente el proceso de control de cambio de la compañía y concluyó que podría entregarle una propuesta de trabajo que incluyera el impacto de la actualización del software en costo y presupuesto a su cliente pero solo hasta el día siguiente. Era inaudito, mientras Juan Pérez estaba buscando una respuesta ágil y eficiente que concluyera con un resultado de valor en las próximas 8 horas, Natalia se enfrentaba a la disyuntiva de seguir un proceso clásico de estimación a priori y modificación del plan de trabajo, previo análisis de impacto y de costos, que redundaría en una pérdida tanto para su compañía como para la de su cliente, o simplemente responderle firme y positivamente que cumpliría la meta establecida para las siguientes horas.

El Manifiesto por el Desarrollo Ágil de Software (aka: la solución del proveedor)

Por suerte para Natalia, ella también había hecho su tarea. En los últimos tiempos había empezado un proceso de transformación en sus equipos que incluía una forma de ver el mundo de manera distinta a como lo venían haciendo en la compañía. Se trataba de todo un ecosistema basado en una cadena de valores y principios que rompían con los esquemas tradicionales de hacer software. Todo empezaba con el así llamado Manifiesto por el Desarrollo Ágil de Software o, simplemente, Manifiesto Ágil, el cual le daría la clave para ganar ese día:

Estamos descubriendo formas mejores de desarrollar software tanto por nuestra propia experiencia como ayudando a terceros. A través de este trabajo hemos aprendido a valorar:
Individuos e interacciones sobre procesos y herramientas
Software funcionando sobre documentación extensiva
Colaboración con el cliente sobre negociación contractual
Respuesta ante el cambio sobre seguir un plan
Esto es, aunque valoramos los elementos de la derecha, valoramos más los de la izquierda.
El Manifiesto Ágil por el Desarrollo de Software. Fuente: http://www.agilemanifesto.org/iso/es.

Este pedazo de esfuerzo mental, fruto de la colaboración de 17 personajes reconocidos en la industria del software en 2001, serviría a Natalia como pilar fundamental para encontrar una solución de valor para su cliente. Los Valores y Principios Ágiles enfatizan en la importancia de colaboración e interacción en el desarrollo de software y, de otro lado, el trabajo creativo involucra comúnmente alguna forma de colaboración y puede entenderse como una interacción entre un individuo y un contexto sociocultural.

Los proyectos tradicionales están plagados de equipos conducidos-por-gerentes, organizados en una estructura jerárquica con múltiples capas de autoridad. Esta gerencia es del estilo de “comando y control” y los roles se basan en tareas funcionales que, en el caso del software, son los programadores, los diseñadores, los analistas, etc. El trabajo se delega a los miembros del equipo por sus jefes. Las prácticas en estos equipos incluyen copiosa documentación, especificaciones previas y planeación detallada. Las líneas de comunicación son indirectas entre las distintas capas de la jerarquía organizacional y el empoderamiento es algo invisible para la mayoría de los participantes, lo mismo que el estado general del proyecto.
Imagen cortesía de Salvatore Vuono / FreeDigitalPhotos.net
El primero de los valores “Individuos y sus interacciones”, le indicaba a Natalia que necesitaba un equipo cooperativo, multi-funcional y auto-suficiente, experto, altamente productivo y creativo que se comunicara con su cliente y trabajara con él el resto de la tarde, no solo en la extracción de conocimiento típica de los proyectos actuales, sino en todo el ciclo de producción que le permitiera a Móviles del Sur poner en funcionamiento una solución automatizada que soportara su ambicioso programa de retención y captura de clientes con motivo del evento mundialista de los próximos meses. Recordó así uno de los Principios que acompañaban a esos valores ágiles:

Principio Ágil # 1: Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de software con valor.

Natalia sabía que la filosofía ágil tiene la habilidad de amplificar la productividad de los equipos de software hasta una escala de gran magnitud, a través del empoderamiento de las personas, fomentando un entorno orientado-al-equipo y enfocándose en la transparencia del proyecto y en los resultados. Estos proyectos pasaron de ser dirigidos-por-el-plan a estar enfocados en el producto, uno priorizado por y de valor para el cliente. Estos equipos se identifican a sí mismos como una unidad social dentro de la organización de la cual hacen parte y a quienes se les confía la ejecución del trabajo y se les proporciona el entorno y el apoyo que necesitan, para mantenerlos motivados, como invoca otro de los principios del Manifiesto Ágil, y para aumentar su apego emocional a la empresa.

Si bien se trata de un conjunto de Valores, el último de estos, pero no por eso menos importante, no devalúa la planificación, en la práctica solo se adhiere al plan. La planificación es valiosa en sí misma; y dado que el plan nos asiste en la tarea de reconocer cuándo las cosas han cambiado, también nos ayuda a entender las implicaciones del cambio, cómo tenemos que ajustarnos y cuál es el costo probable. Lo importante es que, a medida que hacemos planes, entendamos que el plan puede cambiar. La planificación es una actividad continua que incluye:
  • Reuniones de planificación de iteración
  • Reuniones diarias
  • Reuniones de revisión
  • Retrospectivas
  • Evaluación de riesgos

Planificación clásica versus planificación ágil y un mito que se niega a desaparecer
Imagen cortesía de hin255 / FreeDigitalPhotos.net
Cada una de esas ceremonias sirve para no solo para planear sino también para inspeccionar el estado del proyecto y crear mecanismos de adaptación en caso de ser necesario. El grueso de los practicantes de la industria y quienes la miran desde los tejados, cree que los equipos ágiles son desorganizados, informales, que no documentan y sobre todo que no planean. Todo eso se debe en parte a la mala lectura que le dan al mismísimo Manifiesto Ágil. Pero no es así. Contrario a lo que ocurre en los modelos tradicionales de planificación, donde se planea al comienzo, se elaboran planes de 2, 3 o más niveles, y se hace seguimiento a ese plan durante el resto del proyecto, un seguimiento que raya en el acoso, los equipos ágiles planean todos los días.

En parte eso se debe a que los equipos ágiles saben que los cambios hacen parte inherente, son constituyente primario del ADN, del ciclo de vida del software. Los cambios pueden ocurrir en cualquier momento, desde las etapas iniciales del proyecto, aun cuando apenas se están conociendo las necesidades del usuario, hasta las fases tardías del proyecto, quizás cuando estamos a punto de salir a producción. Si son bien manejados, los cambios brindan muchos beneficios a los usuarios, el primero de ellos, ventaja competitiva. Los cambios son una herramienta invaluable para crear productos inmejorables. Era precisamente lo que necesitaba Juan Pérez ese día. Otro de los principios ágiles llevó a Natalia a esa conclusión:

Principio Ágil # 2: Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.

En cambio, los enfoques tradicionales de gerencia de proyectos presentan los cambios como un monstruo con el que hay luchar a sangre y fuego. Los procedimientos rigurosos de control de cambio, típicos de estos enfoques, causan la pérdida de oportunidad que los clientes tienen para ganar más mercado y para crear mejores productos. En general, a medida que el tiempo avanza, la habilidad de hacer cambios disminuye y cuesta más. Esto es lo que enfrentan los procesos ágiles, aunque sin dejar de planear. Los métodos ágiles promueven planes más livianos y de alto nivel a largo plazo, mientras que atienden la elaboración de agendas bien detalladas a corto plazo, las de la iteración actual, que solo tarda unos pocos días o muy pocas semanas. En Scrum, por ejemplo, las iteraciones tardan máximo 4 semanas y con frecuencia mucho menos que eso.

Al principio de los proyectos ágiles se planean las entregas o salidas a producción tempranas, beneficio primario que nos traen los procesos ágiles. Estas salidas a producción pueden ser cada tres meses, pero hoy contamos con la tecnología y plataformas lo suficientemente maduras como para hacer continuous delivery o entregas continuas. Amazon, por ejemplo, la vendedora al detal más grande del mundo, sale a producción cada 11,6 segundos, algo absolutamente asombroso si tenemos en cuenta la cantidad de clientes recurrentes simultáneos que tiene su sitio Web cada segundo. Natalia sabía todo eso, entonces no dudó que podía tener un producto funcionando para antes de las 8 de la noche de ese día, meta principal de su cliente.

Resultado final

Mientras hacia un recorrido por los acontecimientos de la hora, Natalia convocó a un equipo idóneo, uno que sabía capaz de elaborar un producto que generara resonancia no solo en su cliente sino en sus usuarios, uno que haga que la gente experimente distintas reacciones de gozo al usarlo, sin hablar de los ingresos en que redundaría su uso. No se trataba solo de actualizar un pedazo de software existente, sino de producir algo no ordinario que tuviera la capacidad de atraer a una audiencia cada vez mayor. Otro de los principios ágiles fue el último consejo que le dio al equipo antes de despedirlo hacia lo que seguramente sería un éxito total:

Principio Ágil # 10: La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.

¿Quieres saber más?

Sobre otros mitos y leyendas relacionadas con los métodos ágiles puedes leer:
Mitos, Monstruos, Leyendas Urbanas y otros Desvaríos de Ágil y Scrum: http://goo.gl/PIfZpx

Sobre planificación ágil, estos 2 artículos:
Planificación del Sprint: el primer paso para producir el máximo efecto: http://goo.gl/9TO7FF
Compendio Sobre el Scrum Diario: http://goo.gl/GG7id1

Sobre cultura ágil y transformación a ágil, estos 2 artículos:
Cultura ágil: ese oscuro objeto del deseo: http://goo.gl/IuJIlY
Sí, usted está listo para implementar un proyecto ágil: http://goo.gl/19Hcnz