miércoles, 29 de agosto de 2012

El Poder de la Escucha Profunda


El domingo 28 de agosto se realizó el Agile Open Lima VI en la Universidad Peruana Unión. Tuve la oportunidad de co-facilitar un par de sesiones y facilitar otra más en solitario. Decidí llamarla "El poder de la escucha profunda para la colaboración e innovación en equipo." Esta es la descripción que coloqué en el site de UserVoice del evento:

Muchas veces se supone que 'saber escuchar' es una capacidad con la algunos pocos han sido bendecidos y la mayoría de nosotros no. Es más, no somos conscientes de nuestra propia capacidad de escucha y del efecto que ésta tiene en nuestro quehacer personal y profesional. Menos aún nos enseñan en el colegio, o en la educación superior, cómo afinar nuestras habilidades de escucha.

Sin embargo, está plenamente demostrado que una capacidad de 'escucha profunda' o activa es una de las bases imprescindibles para construir equipos de alto rendimiento, colaborativos e innovadores.

En este taller exploraremos, a través de juegos y dinámicas, cómo mejorar nuestras habilidades de escucha y concentración para elevar nuestra capacidad de trabajo en equipo.

Para estructurar la sesión, me basé sobretodo en parte del excelente taller que llevé el año 2010 con Lee Devin sobre Artful Making. También empleé algunos ejercicios que facilita Alan Cyment como parte de sus los cursos Certified Scrum Master que dicta y en esta actividad grupal de David Koontz.

La estructura fue más o menos la siguiente:
  1. Ejercicio básico de construcción colectiva/improvisación: Construcción de una historia corta para que los participantes experimenten con su capacidad de escucha actual.
  2. Ejercicio de escucha inefectiva: Para que los asistentes constanten qué se siente cuando no nos escuchan.
  3. Explicación y ejercicios con la técnica F-W-R (Focus-Wander-Return): Para aprender esta técnica básica de concentración que nos permite mejorar sustancialmente nuestras habilidad de escucha activa.
  4. Nuevamente se repite el primer ejercicio para que los participantes comprueben si existió una mejora tras lo aprendido en el punto 3.
  5. Conversatorio abierto sobre lo aprendido en el taller y los beneficios que pueden obtener aplicando estas técnicas en los respectivos entornos profesionales de cada uno. La conversación se llevó a cabo usando The 5 Second Rule
Aquí comparto algunas fotos:



Me dio gusto recibir el buen feedback de los asistentes y comprobar que en la retrospectiva al final del evento la gente dio también una evaluación positiva.

Si les interesa que facilite este taller gratuitamente en sus organizaciones, pueden contactarme al mail del blog o por cualquier otro canal.

jueves, 21 de junio de 2012

El extraño Mundo de Agile


Imagina que toda tu vida has habitado mundo oscuro y sombrío poblado por bichos feos, monstruos, brujas, esqueletos y fantasmas. Y que todas las actividades que realizas se consideran exitosas si logran el tan ansiado fin de asustar a las personas.

Y ahora imagina que por casualidad descubres un mundo diferente, lleno de de luces, colores, sonrisas y felicidad por todos lados. Al ver esta realidad totalmente distinta no puedes evitar sentirte atraído y enganchado a todas estas nuevas sensaciones, así que decides llevar estas cosas maravillosas a tu lugar de origen y convencer a todo el mundo de hacer las cosas tal y como las has visto en aquel mágico paraje.

Pues bien, esto es precisamente lo que ocurre en la película El extraño Mundo de Jack (The Nightmare before Christmas) donde el protagonista, Jack Skellington, cansado de celebrar Halloween año tras año, descubre la Navidad, queda fascinando por ella, y decide tomar control de la misma junto con sus amigos.

Ahora, Jack no es un personaje malvado ni un mal tipo. Todo lo contrario, tiene la mejor intención del mundo. El problema es que ni él, y mucho menos sus amigos, comprenden realmente el significado de la Navidad. Sólo se concentran en replicar lo que aparentemente ven que funciona sin reparar en los sentimientos, actitudes y motivaciones detrás.

Es así que terminamos con juguetes que asustan a los niños, esqueletos de renos vueltos a la vida, trineos en forma de ataúd un esqueleto volador haciéndola de Santa Claus, a quien Jack llama Santa Atroz (Sandy Claws) pues es el nombre que cree escuchar durante su visita a la tierra de la Navidad.

¿A qué va todo esto? Pues a que últimamente he estado observando que mucha gente se comporta precisamente como Jack cuando descubre los Métodos Ágiles, ya sea mediante un curso, libro, artículo o evento de la comunidad. Quedan deslumbrados por la simpleza y efectividad de prácticas tales como el uso de un Panel de Tareas o la realización de Reuniones Diarias de 15 minutos, así que deciden llevar estas técnicas a su contexto diario copiando tal cual lo que observaron, pero sin entender los principios y valores detrás, conviertiéndose en practicantes de Cargo Cult Software EngineeringEs así que el entusiasmo dura algunos pocos días, tras lo cual se vuelve a lo mismo de siempre. 

En otros casos, las prácticas se modifican de manera poco juiciosa ("¡Hagamos la reunión semanal en lugar de diaria!", "¡En lugar de panel altamente visible para el todo el equipo, tengamos uno pequeño que sólo el Project Manager ve!") para volverlas más acorde al status quo imperante, con lo que éstas pierden fuerza, impacto y éxito.

¿Que tan extendido está este fenómeno? Al parecer es lo que ocurre en la mayoría de organizaciones que implementan Métodos Ágiles, según este reciente estudio de Forrester. ¿Es algo inevitable a largo plazo? Quizás sí lo sea. Tal vez sea un ejemplo más de la evolución del conocimiento, entendido como el patrón dialéctico de tesis, antítesis y síntesis, tal como explica aquí Juan Palacio. Quizás también sea la consecuencia de la creciente popularidad que vienen alcanzando métodos como Scrum, demostrando una vez más la Ley de la Mermelada de Frambuesa.

¿Han observado esta situación en sus organizaciones? ¿Les parece el camino a seguir?

viernes, 30 de septiembre de 2011

La Invasión de los Gerentes de Proyecto


Hace unos días me junté con un viejo amigo, a quien no veía hacía un buen tiempo; llamémoslo Luchín. Mi amigo trabaja hace ya unos 4 años como desarrollador senior en una empresa local proveedora de soluciones de software. Muy acongojado, Luchín me contó: "Ahora sí que se fue todo al diablo. Llegó la invasión de los gerentes de proyecto a la empresa". Mi primera reacción fue de decepción, pues durante 3 años trabajé en esa empresa y me esforcé por forjar una cultura que cultive precisamente lo contrario a lo que esa frase vaticinaba.

Esta situación coincidió con un thread muy activo a inicios de este mes en la lista de la comunidad Agile Perú, el cual fue abierto con una cita extraída de un tweet del mundo real"Ya no quiero ser ingeniero, quiero ser gerente de proyectos!" El thread creció muy rápidamente hasta llegar a tener más de 60 replies en menos de dos días. Es evidentemente un tema sensible, un tanto polémico y que está "de moda".

¿Pero, de qué estoy hablando exactamente? Vamos al grano. Tomaré como definición general de gerente de proyectos a alguien que:
  • Ya no desarrolla software
  • Les dice qué hacer a los desarrolladores
  • Es pagado considerablemente mejor que a los desarolladores
  • Es visto con mejores ojos y tiene más status que los desarrolladores ante todo el personal
  • No es explotado ni forzado a trabajar horas insanas
  • Tiene el privilegio de repartir tarjetas de presentación y firmar e-mails que dicen "Gerente"

¿Y cuál es problema con todo esto?

Bueno, desde mi humilde punto de vista, veo lo mismo que Tobias Mayer describió muy claramente hace ya 2 años en esta serie de iluminadores artículos:

Extraigo algunas secciones imperdibles:

The tragedy of many revolutions is that once successful the leaders tend towards the same behavior that caused the need for the revolution in the first place. The oppressed become the oppressors, i.e. they take on essentially the same behaviors because they don’t know how else to behave.
George Orwell characterized this tendency in the novel Animal Farm, an allegory for the Russian Revolution and subsequent events.  By the end of the book, the revolutionary leader, Napoleon (a pig, by some charming coincidence) is walking on two legs, dressing in human clothing and selling his best friends out for horse meat.

There can be no really pervasive system of oppression . . . without the consent of the oppressed.” —Florynce Kennedy
Too often the oppressed don’t want change; they simply want to be on the other side of the oppression.  That is the ugly reality we live in.  We have all seen individuals rise to middle-management and change behavior accordingly, fitting in to the system and emulating their superiors.  Many of us have seen teams fall apart through infighting — indeed a key part of the Scrum Master training course is focused on dealing with such situations. Reward systems in most software corporations are based on individual superiority, and to be superior, others must be considered inferior.
Commenting on the syndrome of in-fighting between oppressed natives in colonized countries, Paulo Friere notes “At a certain point in their existential experience the oppressed feel an irresistible attraction towards the oppressors and their way of life.  Sharing this way of life becomes an overpowering aspiration.  In their alienation, the oppressed want at any cost to resemble the oppressors, to imitate them, to follow them.”

En resumen, esto significaría que muchos desarrolladores al hartarse de la opresión a la que son sometidos por sus respectivos jefes o gerentes de proyecto, no ven otra salida que convertirse en opresores ellos mismos y a perpetuar (probablemente de forma inconsciente) el mismo modelo de opresión antes nuevos desarrolladores.

Esta opresión se expresa comúnmente a través del lenguaje de los opresores, con frases del tipo: "No sé que haces pero lo quiero para mañana".

Lo paradójico de todo esto, al menos en mi caso, fue que hace poco tuve que firmar un mail con el título de Gerente de Proyectos. No precisamente por una preferencía mía, sino del cliente con el que estaba trabajando, quien a su vez deseaba proyectar cierta imagen ante su respectivo cliente.

Y ustedes, ¿qué quieren ser cuando "crezcan"?

miércoles, 19 de enero de 2011

Propuestas presidenciales SMART


La primera idea para escribir sobre este tema la tuve durante la campaña para las elecciones municipales de hace unos meses. Pero se puede trasladar tal cual a la presente campaña presidencial.

Existe una sencilla manera de describir los objetivos a los que puede aspirar una persona o una empresa. En inglés, esta técnica recibe el acrónimo SMART (que se puede traducir como astuto, listo o incluso "vivo"). Así, la idea es establecer objetivos SMART (o SMART Goals) en nuestras vidas.

Es una técnica bastante conocida y de hecho ya la había encontrado en libros como Behind Closed Doors y Pragmatic Thinking & Learning. Incluso, es bastante útil cuando se emplea en el contexto de una retrospectiva. Leyendo los posts que mi buen amigo Abner realizó hace poco, fue que me volví a encontrar con este concepto.

La idea es que cuando definamos objetivos, cada uno de ellos debería poseer las siguientes cualidades:
  • S - Ser eSpecífico 
  • M - Ser Medible
  • A - Ser Alcanzable
  • R - Ser Relevante
  • T - Estar limitado por el Tiempo
Por ejemplo, decir que mi objetivo es "aprender a bailar" no es SMART. Decir, en cambio, que mi objetivo es "poder bailar salsa, cumbia y merengue en las fiestas sin repetir los mismos pasos en cada baile y sintiéndome cómodo y contento al hacerlo en un tiempo límite de 3 meses" sí es SMART.

Es más, gente como Joanna Rothman recomienda que, cuando planifiquemos, nos fijemos objetivos SMART pequeños y progresivos, de modo que podamos medir el avance más fácilmente. Siguiendo con el ejemplo anterior, quizás sería mejor establecer como primer objetivo "aprender 3 pasos básicos de salsa en máximo 2 semanas". Una vez conseguido este objetivo, podríamos fijar el siguiente.

¿A qué viene todo esto? Bueno, a que cuando escucho a algún candidato político hablar sobre sus propuestas, busco evaluarlas según el criterio SMART. Y para ser franco, durante la última campaña municipal, no encontré mucho de SMART en el discurso de ninguno de los candidatos.

Veremos si esta vez, al menos uno me sorprende cuando tome la palabra en alguna entrevista, mitin o debate.

miércoles, 8 de septiembre de 2010

Ágiles 2010: 3ras Jornadas Latinoamericanas sobre Metodologías Ágiles

Ágiles 2010 es una excelente oportunidad para encontrase con
profesionales de IT de la región, interesados en compartir sus
experiencias, debatir y capacitarse en temas relacionados con el
desarrollo de software a través del uso de metodologías ágiles.

Esta tercera edición, con sede en la ciudad de Lima, Perú, contará
con la presencia de especialistas locales e internacionales, quienes
compartirán su conocimiento durante los cuatro días que durará el
evento.

El programa incluye distintos tipos de actividades: presentaciones,
sesiones interactivas, talleres y espacios abiertos de debate.

Entre los invitados internacionales se encuentran los keynote
speakers Lee Devin y Joshua Kerievsky, que también estarán brindando
cursos durante el evento.


¡Inscríbete y se parte de Ágiles 2010!

miércoles, 10 de febrero de 2010

La retrospectiva de Scrooge

Supongo que todos están familiarizados con la novela A Christmas Carol de Charles Dickens (o alguna de sus adaptaciones), en la cual un viejo gruñon, Ebenezer Scrooge, es visitado durante la Nochebuena por tres fantasmas quienes le hacen reflexionar, reencontrase con su niño interior e imbuirse de espíritu navideño. Hace poco Jim Carrey protagonizó una versión en 3D para la pantalla grande.

Bueno, en las últimas fiestas me topé con una de las tantas versiones en televisión, esta vez representada por Patrick Stewart. Sí, el mismísimo Profesor Xavier de X-Men y Capitán Jean-Luc Picard de Stark Trek. Y sí, sé que ya hace tiempo que pasó la Navidad.

El punto es que al observar la narración de la película en cuestión empecé a encontrar asombrosas similitudes entre lo que ocurría con nuestro héroe (¿o anti-héroe?) y lo que usualmente sucede durante las retrospectivas de los proyectos de software. Veamos a qué me refiero, y para esto nos basaremos en el framework flexible de restrospectivas de Esther Derby y Diana Larsen.

El primer fantasma en visitar a Scrooge es el de las navidades pasadas, quien le recuerda a Scrooge sucesos de su pasado, especialmente de su infancia, adolescencia y juventud. Esto coincide con la etapa de Recolección de Datos (Gather Data), pues lo que se busca es que Scrooge contemple, a modo de observador externo, los hechos relevantes que tengan influencia sobre su comportamiento en la actualidad.

El segundo fantasma es el de las navidades presentes. Este le muestra cómo festejan aquéllos del círculo de personas cercanas a Scrooge. Tanto pobres como ricos personifican el espíritu navideño y celebran con lo poco o mucho que poseen. A partir de aquí se comienzan a formar reflexiones profundas dentro del protagonista (Generate Insights), al combinar elementos pasados y presentes,de maneras no obvias para alguien que se había acostumbrado a vivir de cierta manera y sin pensar mucho al respecto.

Finalmente, el tercer fantasma, el de las navidades futuras, le muestra a Scrooge el triste y lamentable porvenir que le espera, acaso decida seguir por el mismo rumbo carente de compasión y benevolencia con el prójimo. Es aquí que termina la etapa de reflexión y Scrooge comienza a tomar decisiones sobre cómo debe comportarse y qué elementos de su personalidad debe cambiar para mejorar (Decide What to Do).

Si tienen la oportunidad de ver esta película, prueben mirándola a través de estos nuevos ojos y se darán cuenta por qué se afirma comúnmente que las retrospectivas (entre otras prácticas ágiles) no son más que sentido común aplicado al contexto de los equipos de trabajo y el desarrollo de nuevos productos de software.

miércoles, 16 de diciembre de 2009

Discos, transparencia y cuellos de botella

FOTO1 TIENDA DISCOS DEL PASO

Hace unas semanas fui a comprar unos CD’s a Plaza San Miguel (sí, soy uno de esos especímenes raros que todavía compra discos originales). Hacía tiempo que no iba por allá, así que estaba un poco desorientado, pues varias tiendas se habían mudado de sitio. Dando unas cuantas vueltas por el lugar, encontré Sonodiscos, una tienda que a simple vista se nota que no es parte de una cadena, sino que, más bien, aparenta tener tradición y ser parte de un negocio familiar.

El punto es que, cuando empecé a revisar los discos que tenían a la vista, me vi bastante desorientado. La razón es simple: ninguno de los discos tenía el precio adherido al empaque! Lo que exhibían era un código algo críptico y para nada indicativo.

El producto de esto es que, para un humilde melómano como el que escribe, se me hacía imposible evaluar el costo-beneficio de las posibles compras que deseaba realizar, pues cada vez que necesitaba saber un precio debía consultar con alguno de los empleados del lugar.

La situación llegó a un punto tal, que me comencé a sentir bastante incómodo por la falta de información, o más bien por la falta de rapidez en conseguirla y por el cuello de botella que se generaba con el personal de la tienda al intentar conseguirla.

Ahora, ¿cuál es mi punto con esta historia? Pues básicamente dos: el primero es que, muchas veces en los proyectos de software, pecamos de falta de transparencia. Usualmente, la razón de esto es el miedo. Miedo porque, si somos transparentes, el resto de personas nos juzgará o, peor aún, nos castigará por nuestros errores. Me atrevo a soltar la hipótesis de que, en el caso de Sonodiscos, el dueño podría tener miedo de la competencia y de que ésta acuda a su tienda a espiar los precios.

El segundo punto es que, al ocultar información, creamos cuellos de botella artificiales, innecesarios y que entorpecen la colaboración y la consecución de objetivos. En mi caso, tenía poco tiempo para visitar la tienda y mi objetivo era comprar la mayor cantidad de discos de artistas que no conociera mucho en el menor tiempo posible y bajo un presupuesto predefinido.

Lamentablemente, no conseguí mi objetivo a cabalidad. Lo siento Sonodiscos, pero la próxima vez iré directamente a Phantom. Aunque los precios a veces son ligeramente más caros, me ofrecen una mejor relación costo-beneficio para alcanzar mis objetivos.

martes, 13 de octubre de 2009

Entrevista con Diana Larsen

El evento Agiles 2009 que se llevó a cabo en Florianópolis, Brasil llegó a su fin la semana pasada. Fue una vivencia gratísima compartir conocimiento y experiencias con tanta gente interesada en la Agilidad, principalmente de Brasil y Argentina, así como también conocer a personas como Diana Larsen, autora del libro “Agile Retrospectives: Making good teams great!” y presidente del directorio de la Agile Alliance.

En esta entrevista, Diana nos habla sobre qué son las retrospectivas, de dónde vienen y cómo se estructuran.

Además toca algunos temas sociológicos, relacionados a las retrospectivas pero un poco más amplios y, finalmente, discute un poco sobre el futuro de la Agile Alliance y de Agile en general.






Powered by Podbean.com

miércoles, 9 de septiembre de 2009

En los negocios, ¿el tiempo es lo más importante?

No veo mucha televisión. Es más, ni siquiera tengo cable (!!??). Pero sucede que hace poco estuve mal de salud y tuve que pasar unos días en casa frente a la caja boba. Es así que descubrí este comercial de Interbank que me dejó un tanto intranquilo:



La dinámica de la publicidad gira entorno a la siguiente idea-fuerza: "En los negocios el tiempo es lo más importante." Si bien es obvio que el comercial está realizado en tono de burla o comedia, deja traslucir la que varios empresarios o ejecutivos piensan que es la mejor manera de gestionar a su personal, área o empresa.

Es decir, concentrarse en mantener a los empleados ocupados el 100% del tiempo, asumiendo que los objetivos planteados por los niveles superiores de la jerarquía son los correctos (sin una adecuada validación) y tratando de alcanzarlos lo más rápido posible, evitando crear espacios para el diálogo, la contrapropuesta y la generación de intercambios de opiniones que aporten valor. O visto de otro modo, desaprovechar la capacidad que cada persona tiene para crear, generar soluciones e ideas; en resumen, para innovar.

Veo varios problemas con esta forma de gestión. En primer lugar opino que lo más importante en los negocios no es el tiempo (a secas), sino generar valor en los clientes. Es decir ofrecerles productos o servicios de calidad que satisfagan sus necesidades. En segundo lugar está la suboptimización. El hecho de tener al personal ocupado todo el tiempo pierde de vista el objetivo real de lo que estamos haciendo y cómo podemos mejorarlo, alienta la separación entre las áreas funcionales de la empresa, la formación de colas de información (con las correspondientes demoras) y una presión excesiva sobre las tareas a realizar, lo que promueve una cultura de "tomar atajos" y acarrea una pérdida de calidad en las actividades que hacemos.

Una vez claro lo anterior, recién podemos empezar a discutir el factor tiempo. Obviamente, si nuestra competencia ofrece un producto o servicio con mejor calidad que la nuestra en la mitad del tiempo, estamos en problemas. Pero esto debe enfocarse como un problema sistémico, a modo de atacar las causas raíz que permitan generar soluciones y que eliminen los desperdicios dentro de nuestros procesos, teniendo en claro todo el flujo de valor, desde que una necesidad es detectada hasta que ésta es satisfecha.

jueves, 20 de agosto de 2009

CSP, ¿y ahora qué?

Hace unos días recibí la buena noticia de que había obtenido la certificación CSP (Certified Scrum Practitioner) de parte de la Scrum Alliance. Mi primera reacción fue de alegría y satisfacción, obviamente. No considero que sea una certificación fácil de obtener pues, a diferencia de muchas otras, lo que se evalúa es un cuestionario de unas 20 preguntas acerca de la experiencia que uno tiene aplicando (o al menos intentando aplicar) Scrum en un contexto específico. A diferencia de la certificación CSM, que sólo requiere llevar el curso (aunque próximamente será exigible un examen on-line de alternativa múltiple) y que tiene aproximadamente 56,000 personas certificadas en todo el mundo, la CSP sólo tiene alrededor de 600.

Una vez pasada la emoción, me empecé a preguntar qué es lo que vino antes y también qué viene después. Un paso lógico sería buscar obtener la CSC o CST, que no son nada fáciles (ni baratas, valgan verdades). Sin embargo, más que eso, en este momento me gustaría reflexionar un poco sobre la real utilidad de las certificaciones.

Hubo un tiempo en que buscaba obtener certificaciones de manera un tanto obsesiva, por varias razones: siendo valoradas en el mercado, usualmente llevan a un mejor sueldo y posición, demuestran el conocimiento que puedes tener en una determinada materia y por supuesto, ¡lo hacen sentir muy bien a uno cuando las recibe! No niego que me sirvieron de mucho, profesionalmente hablando. Pero la verdad es que de, de todo el conocimiento que adquirí estudiando para esos exámenes, una buena parte simplemente ha desaparecido de mi memoria, o para decirlo más elegantemente, no fue correctamente indexado y, por lo tanto, es inubicable.

La realidad es que para que el conocimiento sea realmente útil es indispensable acompañarlo de la experiencia. Es ésta la que permite validar lo aprendido, combinarlo en nuevas formas e incluso descartar aquellas cosas que no son tan válidas en la práctica. Ahora, todo esto suena muy obvio, ¿no? Sin embargo, muchas empresas no lo ven de esa manera. Se concentran únicamente en el certificado y no toman en cuenta la experiencia, confiando en que por poseer el cartoncito (o PDF) la persona será capaz de asumir los retos propios del trabajo. Esto sería similar a que se contrate a un gerente recién egresado de un MBA, ¡pero con ninguna experiencia gerencial!

Ahora, no estoy en contra de las certificaciones. Simplemente pienso que no es un indicador 100% fiable (quizás ni 50%) de lo que una persona puede hacer en el campo laboral y por lo tanto, considero que no debería jamás ser un requisito indispensable o exigible para un puesto relacionado al desarrollo de software. Las veces que he entrevistado gente (que han sido varias) he tenido mucho cuidado en este punto, llegando incluso a rechazar postulantes con muy bonitos certificados pero sin la experiencia necesaria o sin una personalidad que viera que encajaba adecuadamente con nuestra cultura empresarial.

jueves, 6 de agosto de 2009

Conferencia Internacional sobre Testing y Calidad del Software


Me llegó hace poco una invitación a esta conferencia, a llevarse a cabo en Bilbao, España a fines del mes de octubre. El programa se ve muy interesante. Desde mi punto de vista, una de las presentaciones que más destaca es la de Mary Poppendieck, una de las más importantes impulsoras del enfoque Lean en el mundo del software (Lean Software Development). 

Tuve la gran suerte de conocer a Mary durante el curso que dictó en Buenos Aires el año pasado, el cual fue una gratísima experiencia para mí. El conocimiento y la experiencia que destila con cada afirmación u opinión que vierte es realmente impresionante y digno de destacar.

Lamentablemte no podré asistir a esta conferencia, pero si alguno de ustedes trabaja con software embebido y está por allá durante esas fechas, creo que es un evento al que no puede dejar de asistir.

martes, 19 de mayo de 2009

Primer Curso Certified ScrumMaster en español en Lima


Durante los días 31 de agosto y 1 de setiembre de 2009 se dictará por primera vez en Lima el Curso de Certificación de Scrum (CSM) en idioma español, oficialmente reconocido por la Scrum Alliance.

Esta es una excelente oportunidad de llevar este curso, pagando la tercera parte de lo que cuesta en Estados Unidos o Europa. Será dictado por Alan Cyment, el único Certified Scrum Trainer nativo hispanoparlante en el mundo.

Toda la información sobre el curso, así como el formulario de inscripción, la pueden encontrar en la página de la empresa organizadora, Open Edge Technologies, de la cual formo parte.

Espero verlos allí!

miércoles, 22 de abril de 2009

Fundamentos de la Agilidad: Gente y Colaboración

Comparto con ustedes la presentación que brindé en el Lima Agile Day 2009, que por cierto fue un evento muy exitoso, y todo un orgullo para mí co-organizar y ser parte del mismo.

Mi objetivo durante la presentación fue tratar de responder las siguientes preguntas:
  • ¿Por qué es importante la gente en el desarrollo de software?
  • ¿Cómo cultivar un ecosistema ágil?
  • ¿Cómo reconocer en qué fase de madurez se encuentra un equipo de desarrollo?
Realmente es un tema amplio, por lo que el tiempo me quedó bastante corto. Espero poder profundizar algunos conceptos en las reuniones de Agile Perú, en este blog y en futuras charlas que organicemos.

jueves, 5 de febrero de 2009

Lima Agile Day 2009

[ACTUALIZACIÓN: La fecha confirmada del evento es el Sábado 18 de Abril de 2009]

La comunidad Agile Perú los invita al Lima Agile Day 2009. Este evento está dirigido a todos aquellos interesados en conocer y entender cómo aplicar las llamadas Metodologías Ágiles de Desarrollo de Software (tales como Scrum y Extreme Programming) de boca de algunos de sus más fervientes practicantes en nuestro país.

Acompáñanos a intercambiar conceptos, experiencias y buenas prácticas relacionadas a esta nueva manera de desarrollar software que tanta conmoción está causando en el mundo entero por los beneficios obtenidos mediante su aplicación: mejoras drásticas en tiempos de entrega, calidad, trabajo en equipo y satisfacción de los usuarios.

Fecha: Sábado 18 de Abril de 2009
Hora: 8:30 am a 1:00 pm
Lugar: Auditorio Cibertec, Av Salaverry 2255, San Isidro

INGRESO LIBRE (capacidad 150 personas) previo registro:

Agenda:

  • 8:30 - Registro
  • 9:00 - Presentación del Evento
  • 9:20 - Scrum, una nueva forma de desarrollar software (Deusdit Correa)
  • 10:05 - Fundamentos de la Agilidad: Gente y Colaboración (Gustavo Quiroz)
  • 11:00 - Cómo enfrentar la resistencia al uso de Metodologias Agiles (Raúl Uribe y Gustavo Véliz)
  • 11:45 - ¿Por dónde comenzar? - Primeros pasos aplicando técnicas ágiles (Abner Ballardo)
  • 12:25 - Retrospectiva y Cierre del Evento

Esperamos contar con tu participación!


viernes, 23 de enero de 2009

Como hacemos Scrum: Requerimientos


Algunos piensan que ser ágil quiere decir que no se tienen requerimientos escritos, que toda la comunicación entre usuarios/clientes y desarrolladores es verbal y que si no están usando User Stories, no se puede hablar de desarrollo ágil. Bueno, tengo que discrepar de estas tres creencias.

Hablaré en el contexto de un proyecto que desarrollamos, el cual consistía en construir una aplicación para una entidad del sector financiero. Esta entidad, como muchas otras similares, tiene procesos un tanto rígidos (por no decir burocráticos ni pesados) que guían sus proyectos de desarrollo.

Cuando iniciamos el proyecto, nos fue entregado un documento de casi 150 páginas en donde se describían en detalle requerimientos, mediante especificaciones de casos de uso y pantallazos de un prototipo previamente construido. ¿Qué hacer en estos casos?

El principio básico en todo esto es algo que les sonará familiar a muchos: LA COMUNICACIÓN. Es decir, debe existir un entendimiento común entre aquéllos que desean resolver un problema (usuarios) y aquellos que pueden resolver el problema (desarrolladores).

Para lograr ese entendimiento debe existir un canal amigable entre ambos frentes. En nuestro caso, lo que hicimos fue acordar reuniones dos veces por semana entre nuestro equipo y los analistas del cliente para conversar acerca del documento de requerimientos. Teníamos como objetivos:
  1. Compredener de qué diablos trataba la lógica de negocio a un nivel suficiente para que uno de nosotros actuara como Proxy del Product Owner en nuestras reuniones de planeamiento.
  2. Poder definir un Product Backlog en base a este documento.
  3. Priorizar el Product Backlog con los representantes del cliente.
El Analista Funcional del cliente se convirtió, casi sin darse en cuenta, en nuestro Product Owner y acompañó a nuestro equipo a lo largo de todo el proyecto, estando siempre dispuesto a absolver dudas y repriorizar ítems, cuando fuera necesario.

Aquí un punto clave es descomponer los casos de uso para poder llegar a un nivel de granularidad suficiente que permita planificar los ítems del Product Backlog dentro de cada iteración o sprint. La técnica que usamos fue considerar a cada escenario como un requerimiento o ítem distinto. Por ejemplo, si hablamos de un mantenimiento de países, los ítems (o stories) serían:
  • Consultar países por nombre
  • Consultar países por código internacional
  • Crear país
  • Modificar país
  • Inactivar País
  • Reactivar País
Otro punto importante son las demos o reviews del producto que se realizan al finalizar cada iteración. En nuestro caso, además de los analistas del cliente y de nuestro equipo, participaban los usuarios finales de la entidad financiera. Como es normal, al interactuar o apreciar el incremento de funcionalidad que se está presentando, a un usuario se le van a ocurrir muchas ideas de cómo mejorar o cambiar el producto. Es básico el poder manejar su expectativa y guiarlo sobre cuáles se van a poder incorporar y cuáles no (por razones de tiempo, costo y/o complejidad).

Lo que hicimos nosotros fue recoger todas las sugerencias e ideas, para posteriormente (o a veces durante la reunión misma) conversarlas con nuestro Product Owner. Aquellas que el equipo consideraba sencillas las incorporamos sin ningún problema. Pero aquéllas que se estimaba iban a tomar más tiempo, quedaron en el tintero para futuras versiones del producto.

Cómo hacemos Scrum


Cuando la gente comienza a aplicar métodos ágiles en un proyecto u organización, las preguntas más comunes son: ¿por dónde empiezo? y ¿cómo realizo esto o aquello? Entiéndase "esto o aquello" como algo que saben que se tiene que hacer pero no tienen mucha idea de dónde encaja dentro un entorno ágil: documentación, estimación, planificación, etc.

Es por eso que en esta serie de posts voy a contar un poco acerca de cómo usamos Scrum/Agile en los proyectos que desarrollamos en la empresa donde trabajo y de cómo aplicamos principios emparentados con agile o lean en la organización de nuestra área.

Trataré de tocar temas como: planeamiento, estimación, capacitación, gestión del talento, retrospectivas, documentación, requerimientos, testing, espacio de trabajo, etc.

Disclaimer: Las opiniones vertidas en esta serie de posts no representan la posición oficial de la empresa ni de los clientes involucrados (según el caso).

jueves, 8 de enero de 2009

LinkedIn usa Spring y Tomcat

Hoy encontre esta excepción mientras navegaba por LinkedIn:



Al menos están usando Spring!

martes, 18 de noviembre de 2008

Agile y software embebido

Al menos un par de veces cuando he dado una charla o curso de Scrum/Agile, me ha sucedido que surgen preguntan acerca de si el desarrollo iterativo-incremental puede aplicarse a sistemas embebido o que involucren Hardware. Si bien sé que es algo que se hace en diversos lugares alrededor del mundo, lo que me faltaban eran casos concretos para mencionar y mostrar.

En este enlace se resume el éxito del proyecto AGILE del programa ITEA de la red de investigación europea EUREKA, el cual se desarrolló entre los años 2004-2006 a un costo de 20 millones de euros. El balance de esta iniciativa fue que se logró producir sistemas embebidos de alta calidad con tiempos y costos menores (hasta 70% menos) en comparación con técnicas tradicionales.

El programa se llevó cabo en 68 proyectos dentro de unas 20 empresas, entre ellas Philips, Nokia y DaimlerChrysler. Algo que vale la pena destacar es la opinión del Dr Pekka Abrahamsson, líder del proyecto, quien afirma que si los resultados obtenidos pudieran sostenerse a lo largo de todo Europa, sería más barato hacer outsourcing de desarrollo desde India hacia Europa que en el sentido inverso!

Durante el evento Ágiles 2008, me enteré de otro caso digno de resaltar. Conversando con Matt Gelbwaks, pude conocer acerca de su experiencia como director de Product Management & Development del famoso Segway. Para desarrollar este producto, Matt empleó un mix de Agile y Critical Chain Scheduling, con muy buenos resultados.

lunes, 29 de septiembre de 2008

Conferencia: "Experiencias en la aplicación de Metodologías Ágiles"

Este miércoles 15 de octubre voy a dar una conferencia junto a mi estimado amigo Abner Ballardo en la PUCP. La organización corre por cuenta del grupo SPIN-PERÚ.

A continuación transcribo el mail de convocatoria:

Las metodologías ágiles (XP, SCRUM, etc.) presentan un esquema de desarrollo diferente a las metodologías tradicionales. En estas metodologías se pone especial énfasis en la comunicación con el cliente y en la adaptación a los cambios y es una realidad que su uso se viene difundiendo cada vez más en el ambiente de software. Además cuentan con el visto bueno de algunos de los mejores en el área de Ingeniería de Software (Booch, Gamma, Fowler, Cockburn, De Marco, Ambler) .Este año la V Conferencia SEPGLA (http://www.esi.es/SEPGLA/) tiene como título “Combinando Disciplina con Métodos Ágiles”. Si alguien desea participar en el evento, la fecha de inscripción con descuento se ha ampliado hasta el 10 de octubre y pueden inscribirse en la página del evento.

De otro lado en el ambiente nacional algunas empresas
y profesionales han optado por este tipo de metodologías por lo que hemos organizado una charla en la que podamos compartir experiencias en el uso de estas metodologías. La charla se llevará a cabo el día miércoles 15 de octubre a las 7:00 p. m. en el campus de la Pontificia Universidad Católica del Perú. Para compartir sus experiencias tenemos confirmados a dos expositores:

1)
Gustavo Quiroz se ha desempeñado como Desarrollador de Software, Especialista en IBM WebSphere, Arquitecto de Software y Líder de Proyectos para una amplia variedad de aplicaciones empresariales a lo largo de más de 6 años, sobre todo en las industrias de banca, seguros y telecomunicaciones. Actualmente se desempeña como Arquitecto de Soluciones y Coach Ágil, formando equipos y líderes en las prácticas y valores ágiles.

2)
Abner Ballardo se ha desempeñado como Desarrollador de Software, Arquitecto de Software y Líder de Proyectos en la implementación de aplicaciones empresariales y de telecomunicaciones usando metodologías ágiles. Ha participado en múltiples proyectos de Software Libre en los últimos 9 años, fomentando su difusión, llevando técnicas y buenas prácticas del Software Libre a su labor profesional. Actualmente se desempeña como Especialista en IBM WebSphere Portal y Consultor Independiente en metodologías ágiles.

Ingreso libre previa inscripción al correo
spin.peru@pucp.edu.pe indicando nombre y e-mail.

Se enviará un mail de confirmación.

domingo, 28 de septiembre de 2008

Web Services para todo?


En lo que va de este año, ya van por lo menos dos clientes en los que observo una especie de "obsesión" con la utilización de Web Services, indicando que las aplicaciones a construir deben estar basadas en SOA y, por lo tanto, deben consumir servicios internos mediante SOAP. WTF?

Para tener una arquitectura basada en u orientada a servicios, no se requieren Web Services! Es más, si las aplicaciones consumidoras y proveedoras de servicios están escritas en el mismo lenguaje de programación, se vuelve una pésima opción, por cuestiones de rendimiento y complejidad innecesaria en el diseño. Recordar los principios KISS y YAGNI!

Acerca del tema de la distribución innecesaria de los objetos se ha dicho bastante. Es más, es una de las razones por las que surgió Spring como respuesta al status quo impuesto por el estándar EJB 1.x/2.x. Esto lo explican bastante bien Rod Johnson y Juergen Hoeller en su libro J2EE Development without EJB.

Por poner otro ejempo, y citando a Martin Fowler:

Rule # 1 of Distributed Computing - Don't distribute your objects!


Finalmente, todos deberían conocer las 8 falacias de la computación distribuida:
  1. La red es confiable.
  2. La latencia es cero.
  3. El ancho de banda es infinito.
  4. La red es segura.
  5. La topología no cambia.
  6. Existe un único administrador.
  7. El costo del transporte es cero.
  8. La red es homogénea.
Personalmente, recomiendo utilizar Spring (o algo parecido) para exponer servicios y sólo hacerlos accesibles remotamente si la necesidad de integrar clientes externos (por ejemplo implementados en una plataforma o lenguaje distinto) surge.