Buscar en Gazafatonario IT

Mostrando las entradas con la etiqueta Kent Beck. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Kent Beck. Mostrar todas las entradas

miércoles, abril 22, 2020

La historia de las historias de usuario


Ejemplo de una historia de usuario de Kent Beck. Fuente: Extreme Programming Explained, de Kent Beck
Brevísima historia detrás de la historia de las historias de usuario

Durante un entrenamiento a entrenadores de historias de usuario, hace poco nos preguntaban a Jorge y a mí sobre el origen de las historias de usuario. Por alguna razón olvidada para mí, en el libro omitimos ese pequeño detalle, aunque mencionamos a Connextra cuando hablamos de la forma más usual que suelen tomar las historias de usuario:

Como rol deseo característica Para beneficio

Bueno, aquí les escribo lo que les contamos a los entrenadores:

La historia de las historias de usuario

No es la primera vez que nos preguntan y durante todos estos años, he visto a mucha gente en las redes sociales hacer lo mismo. Por ejemplo, me encontré con este tuit de Seb Rose en octubre de 2019:


Hola, historiadores de Scrum, tengo algunas preguntas:
- Las historias de usuarios comenzaron con XP, documentadas por primera vez en el '98. ¿Es eso cierto?
- Sutherland ejecutó el primer proyecto Scrum en el '93. ¿Usaron historias (o similares)?
- Las historias de usuario ahora están integradas en la práctica de Scrum. ¿Cuándo sucedió eso?
Hay todo un hilo de respuestas. Entre estas, una de Mike Cohn, quien fue convocado por algunos otros tuiteros:

Rachel Davies escribió sobre esto en un artículo. Luego escribí sobre eso en mi libro.
Se refería a ese formato que él mismo popularizó en su libro sobre historias de usuario.
Por supuesto, la intervención de la misma Rachel Davies no se hizo esperar:

Tuve conversaciones con @mikewcohn en la XP2001 donde presenté un póster que incluía la plantilla de la historia de Connextra y fui revisora de su libro sobre Historias de usuario. Él fue influenciado por XP en ese momento ya que el libro de Scrum acababa de salir.
Ya en 2014 había tenido la oportunidad de conocer sobre Rachel Davies vía una versión cruda y sin editar del libro User Story Mapping de Jeff Patton.

En el libro, Patton muestra una fotografía de su amiga:

Rachel Davies mostrando una tarjeta de historia.
Fuente: User Story Mapping by Jeff Patton, Peter Economy

Sobre el origen de las historias de usuario y de sus formas

Es bien conocido que las Historias de usuarios se originaron con eXtreme Programming (XP). Lo que es poco conocido es que su primera descripción escrita en 1998 solo afirma que los clientes definen el alcance del proyecto "con historias de usuarios, que son como casos de uso".

En lugar de ofrecerse como una práctica distinta a XP, se describen como una de las "piezas del juego" utilizadas en el "Juego de Planificación” (Planning Game) del mismo XP.

Recordemos que eXtreme Programming (XP) fue desarrollada por Kent Beck en 1996 y a partir de allí la refinó hasta publicarla en su libro Extreme Programming Explained en 1999.

De hecho, Jeff Patton indagó con el mismísimo Kent sobre el origen específico de las historias de usuario:
Lo que estaba pensando era en la forma en que los usuarios a veces cuentan historias sobre las cosas nuevas y geniales que hace el software que usan. [Por ejemplo,] Si escribo el código postal y se completa automáticamente la ciudad y el estado sin tener que tocar un botón.
Creo que ese fue el ejemplo que desencadenó la idea. Si puedes contar historias sobre lo que hace el software y generar interés y visión en la mente del oyente, ¿por qué no contar historias antes de que lo haga el software?
- Kent Beck a Jeff Patton, por correo electrónico personal, agosto de 2010

Figura 7. Ejemplo de Tarjeta de Historia

Fuente: Extreme Programming Explained, by Kent Beck

En el libro, Beck no dice mucho sobre las historias, hacen parte de las prácticas primarias, junto con otras que conocemos ampliamente como Pair Programming, Continuous Integration y Test-First Programming, sí, esa que a la postre se convertiría en la Test-Driven Development de hoy, entre algunas otras. Sobre las historias (que aún no eran “de usuario”), Kent enfatiza:
“Escribe las historias en fichas y colócalas en una pared por la que pases con frecuencia. La Figura 7 es una tarjeta de muestra de una historia que deseo que implemente mi programa de escáner. Cada intento que he visto de informatizar historias ha fallado en proporcionar una fracción del valor de tener cartas reales en una pared real. Si necesitas informar el progreso a otras partes de la organización en un formato familiar, traduce las tarjetas a ese formato periódicamente”.
Fuente: Extreme Programming Explained, by Kent Beck
La advertencia de registrar las historias en herramientas ya venía desde entonces. Recordemos que XP, junto a Scrum, eran los dos marcos de trabajo dominantes cuyos autores estuvieron presentes en la declaración del Manifiesto Ágil.

Más adelante, en 2001, Ron Jeffries propone el modelo de Tarjeta, Conversación, Confirmación, para distinguir historias de usuarios "sociales" de prácticas de requisitos "documentales", como los casos de uso. Pueden leer su artículo en:


Como nota tangencial, este modelo lo llamamos aliteración Carta, Conversación, Confirmación en nuestro libro de historias de usuario.

Ese mismo año, 2001, Rachel Davies presentó su charla "Tuning XP" en el XPDay con Tim Mackinnon, donde presentaron el formato de historia que usaban en Connextra:

"As a role I want feature so that benefit"


Años más tarde, en 2006, Davies reflexionaba sobre esta “plantilla” antes de dar a conocer sobre un ejercicio que usó en uno de sus entrenamientos. Ella decía que:
“Este formato puede llevar a las personas a centrarse más en los intereses de los usuarios finales que en la perspectiva de la persona que presenta el caso de negocio. Además, cuando se les da una plantilla, las personas pueden comenzar a tratar las tarjetas de historias escritas de esta manera como especificaciones de requisitos mínimos que se centran en las palabras escritas en lugar de usar historias como herramientas para conducir una conversación. Peor aún, las historias que no se ajustan a esta forma serán maltratadas hasta que lo hagan”.

Rachel tiene razón. Esta es una de las grandes anomalías o antipatrones que hoy por hoy siguen presentándose con el uso de las historias de usuario y por ello insistimos tanto a lo largo y ancho de nuestro libro que las historias de usuario son un instrumento de conversación y de colaboración.
Pero no nos desviemos de nuestra historia.

En 2003, Bill Wake creó el mnemotécnico INVEST para iniciativas ágiles de desarrollo de software, como un recordatorio de las características de un elemento de Product Backlog de buena calidad.

Según el mismo Wake este elemento, PBI para abreviar,  puede escribirse comúnmente en forma de historia de usuario, pero no es obligatorio. Como sabemos estos PBI se pueden usar en un Product Backlog tipo Scrum, en un tablero Kanban o un proyecto XP.

En 2004, Mike Cohn publica su libro: User Stories Applied: For Agile Software Development, donde ayuda a popularizar el formato de Davies y su equipo en Connextra. En el hilo de Seb Rose alguien le dice a Mike que fue él (Cohn) quien popularizó el formato, además de los puntos de historia y de la velocidad, ampliamente usados con Scrum. Mike lo corrige:

He contribuido a la popularidad de ellos pero no originé ninguno.
Y todo ello nos trajo hasta aquí.

Epílogo

En lo personal, me parece una historia fantástica. Una a la que hemos asistido en nuestro tiempo. Tardé en empezar a usar historias de usuario pero cuando llegué a ellas hará unos ocho o nueve años, me ayudaron a derrumbar los antiguos paradigmas con los que venía trabajando hasta entonces.

Y en el futuro me gustaría que alguien hablara de mi Lienzo para Conversar sobre Historias de Usuario como parte de la historia de las historias de usuario. Por eso quise terminar la historia a nuestros entrenadores con esta parte:

En 2018, Jorge Abad y Lucho Salazar publican finalmente su libro: Historias de usuario: una visión pragmática, que incluye el User StoriesConversation Canvas, un lienzo para que los usuarios, Dueños de Producto, Gerentes de producto y otros interesados mantengan conversaciones efectivas con los miembros de los equipos de desarrollo de productos y se construyan productos o servicios extraordinarios.
Fuente: ¡conversaciones con Jorge y Lucho!

Fin de la Historia de las Historias de Usuario

Referencias

Además de las fuentes explícitas, pueden consultar algunas otras para saber más sobre esta genial historia: