Resumen del Taller de Historias de Usuario

Ayer tuve el placer de compartir todo el día con un grupo de personas muy interesante. Todas ellas estaban interesadas en aprender a desarrollar mejor software, cada uno en su parcela. Algunos, como @torresburriel más centrados en la UX (eXperiencia de Usuario), otros como @amamormo más centrados en lo que afecta al programador, pero todos centrados en hacer mejor el trabajo.

Contenidos

Ya he publicado en Slideshare las diapositivas que empleé, pero ya aviso que son de poca utilidad; no ya sin mis explicaciones, que seguramente se pueden mejorar mucho, sino sobre todo sin el trabajo que hicimos durante todo el día. Lo bueno (y malo) de estos talleres está en que depende de los alumnos que vengan, puesto que estos marcan mucho la diferencia en la experiencia recibida.

Los contenidos más o menos los podéis ver por las diapositivas, pero al final el valor del taller depende mucho de cómo lo hayan visto los alumnos. Mi sensación y la que me han transmitido ellos, no sólo con sus palabras sino con el trabajo que hicieron durante todo el día, es que el taller funcionó muy bien. Y esto lo sé porque me marqué objetivos que fui revisando durante el taller.

Objetivos

Recientemente asistí al curso sobre Indicadores de aprendizaje de @MaicaTrinidad y allí aprendí que debía marcar mis objetivos y realizar tareas durante el taller que me permitieran comprobar si se estaban consiguiendo o no. Aunque no he hecho todo lo que me explicó, debo reconocer que el simple hecho de plantearme objetivos y trabajar desde ellos han hecho que este taller sea mucho mejor.

Como se puede ver en la primera diapositiva, desde el primer momento compartí mis objetivos con los alumnos. Estos eran:

  • Que mis alumnos aprendan a desarrollar proyectos iterativos e incrementales y enfocados en satisfacer al usuario.
  • Aumentar mi reputación y que me contraten más a menudo.
  • Que haya más clientes que valoren un trabajo bien hecho.

De estos objetivos generales luego extraje otros muchos objetivos específicos. Se cumplieron casi todos, excepto el de llegar con tiempo suficiente para recibir a los alumnos. Un accidente en la autovía de entrada a Madrid provocó una larga retención. Menos mal que había salido con mucho tiempo de antelación. De todos modos, aún espero recoger mucho feedback de los alumnos en el grupo de LinkedIn al que les voy a invitar para compartir sus dudas y propuestas de mejora.

Mejoras

Aunque he repetido cosas que ya he usado en otras ocasiones, en todo lo que hago siempre introduzco variaciones con lo que he ido aprendiendo. Este taller no ha sido una excepción. Algunas han funcionado muy bien y otras menos. Por ejemplo, para el ejercicio principal de por la tarde usamos la excusa de una tienda online de empanadas gallegas. Sí, una como @MilanDopico. ¡Qué casualidad! ¿Verdad? Por cierto, muchas gracias a @Deiser por regalarnos a todos la panza con una empanadota de morcilla que nos vino a todos muy bien.

El ejercicio lo desarrollamos desde cero aplicando algunas de las técnicas que se emplean durante una Agile Inception. Error. Debería haber limitado mucho más el tiempo dedicado a estas actividades y centrarnos mucho más en trabajar las historias de usuario y el product backlog y que nos diera tiempo a practicar más el User Story Map o el Plan de Releases (que viene a ser lo mismo). La próxima vez probaré a llevar desde casa parte de ese trabajo ya hecho. En el fondo mi objetivo no era que aprendieran a hacer una Agile Inception sino que fueran conscientes de lo que ésta aporta a la hora de enfocar a todos en el objetivo del proyecto.

Eso sí, la elección de la tienda fue todo un acierto. Los alumnos se implicaron mucho y bien. Los personajes (User Personas) que trabajaron fueron tan originales como "Andreu, el geek gastronómico" o "Pepi, la asistente de dirección". Mención aparte la que nos presentó el grupo de @micael_gallego, @criscirera y @torresburriel, que pensaron en las necesidades de los clientes de un hotel para así poderse imaginar las necesidades de un cliente de la tienda online, quizás parecido a "Pepi" pero no por ello menos valioso. Luego, las historias que se les ocurrieron fueron algunas muy interesantes, como recomendaciones para regalos, detalles gastronómicos para impresionar a los amigos y muchas más. Desde luego, si hubieramos podido trabajar más historias estoy seguro de que habrían salido ideas que ni al mismo @david_bonilla se le podrían haber ocurrido.

Tengo claro que en este taller debo dar más espacio al trabajo con historias de usuario. Es difícil porque en la primera parte debo explicar conceptos sobre agilismo, Scrum y gestión de proyectos ágiles para que todos, incluso los ya convencidos de esto del desarrollo ágil, tengamos un lenguaje común. Eso sí, creo que puedo no emplear las User Personas para presentarnos y ahorrar así unos minutillos preciosos. Ese tiempo lo emplearemos mejor, por ejemplo, en el ejercicio de por la tarde.

UserStoryKata

Por cierto, la UserStoryKata "Quiero llamar a mi madre" la explicaré en otro post, pero me sorprendió muy gratamente que no se pensara inmediatamente en el CRUD como única manera de abordar el problema, lo cual es un indicador claro de que esto de las UserStoryKatas es algo que debemos explorar con mucha más intensidad.

Deiser

Y para finalizar sólo me queda agradecer a @gmfdsr y toda la buena gente de @deiser no sólo por su hospitalidad sino por el apoyo incondicional que me han regalado durante este mes y pico de promoción del taller. Sin ellos no habría sido posible.

Siguientes acciones

Tengo que empezar a buscar fecha para dar otra vez este curso, quizás extrayendo parte a un contenido online que podamos trabajar antes y centrarnos durante el taller en la parte más práctica.

Tengo que hacerme tarjetas de visita porque la de @jbaez me ha dado mucha envidia y porque creo que es una buena manera de que mi dirección de correo llegue a algún director que me quiera contratar para ayudarles a desarrollar mejor software.

Actualización: Enlace al artículo en el blog de Daniel Torres Burriel, uno de los alumnos. Gracias Dani.