martes, abril 01, 2014

Product Backlog Ejemplo - Social Restaurant Wall - SoReWa - Alejandro Arbelaez

Hola a todos

Les comparto un Product Backlog de ejemplo de un proyecto de grado que estoy dirigiendo basado en historias de usuario. El proyecto se llama   Social Restaurant Wall -  SoReWa - eleborado por  Alejandro Arbelaez Acevedo (dragon198658 (at )gmail.com ).

Los Criterios de Aceptación se encuentran en Formato BDD

SCENARIO– Escenario
GIVEN – DADO
WHEN – CUANDO
THEN – ENTONCES

Impor
tancia
Yo como
Deseo
Para
Criterios de Aceptación
en Formato BDD


 1000
Gerente
Crear un menú
Ofrecerle los productos a mis clientes
Escenario 1: No hay un menú creado.
DADO  que este en la pantalla de gerente
Y No haya un menú creado
CUANDO ingrese a gestionar menú
ENTONCES se crea un menú básico con 2 categorías comidas bebidas

-----

Escenario 2: Ya hay un menú creado.
DADO que este en la pantalla de gerente
Y ya hay un menú creado
CUANDO ingrese a gestionar menú
ENTONCES se muestra el menú que ya existe
 980
Gerente
Agregar producto al menú
Para agregar variedad o actualizar mi menú
Escenario 1: Agregar un producto
DADO que este en la pantalla de gestionar menú y llene los campos de un producto
CUANDO  de en el botón guardar
ENTONCES se agrega un producto al restaurante
 960
Gerente
Quitar producto del menú
Quitar productos poco pedidos o que den perdidas
DADO que estoy en la lista de productos
CUANDO oprima el botón eliminar de un producto
ENTONCES se quita ese producto de la lista de productos del restaurante
 940
Gerente
Crear categorías de productos
Para organizar mejor los productos que ofrezco
Escenario 1: hay Categorías.
DADO  que este en el menú del restaurante
CUANDO  llene los campo y de en el botón agregar categoría
ENTONCES se agrega un a nueva categoría al menú
 920
Gerente
Eliminar categoría de productos
Para organizar mejor los productos que ofrezco
Escenario 1:Hay categorías
DADO que este en el menú del restaurante
CUANDO  elija una categoría y de en el botón eliminar
ENTONCES se da una notificación de eliminar y si se confirma se elimina la categoría del menú del restaurante.

----

Escenario 2: No hay categorías
DADO que no hay categorías en el menú
CUANDO  se  de en el botón eliminar
ENTONCES el botón se deshabilita.


 900
Gerente
Editar categorías de productos
Para organizar mejor los productos que ofrezco
Escenario 1: hay categoría
DADO  hay categorías en el menú del restaurante Y se elija una.
Y se editen los campos de la categoría
CUANDO de en el botón guardar
ENTONCES se actualizan los datos de la categoría del menú del restaurante.
 880
Cliente
Ver el menú del restaurante
Poder elegir la comida que voy a pedir
Escenario 1: Elegir categoría
DADO que hay categorías
CUANDO elija una categoría
ENTONCES se muestran los productos de esa categoría


 860
Cliente
Ver detalles de un plato
Poder elegir la comida que voy a pedir
Escenario 1: Hay productos en categoría
DADO Que hay productos en una categoría
CUANDO este navegando la lista de productos
ENTONCES debo poder ver la información detallada del plato(nombre, precio y descripción)
 840
Cliente
Ver disponibilidad de plato
Para ver que productos no puedo pedir
Escenario 1: El plato no está disponible
DADO
hay un plato que no esté disponible y se haya marcado como no disponible
CUANDO esté viendo el menú del restaurante
ENTONCES el plato no se debe mostrar

-----


Escenario 2: El plato está disponible
 820
Cliente
Agregar uno o más productos a mi pedido
Hacer el pedido y poder comer
Escenario 1: Agregar producto a la orden
DADO que quiera agregar un producto
CUANDO oprima el botón “+” para agregar un plato (o más si se toca varias veces)
ENTONCES se agrega(n) el(los) plato(s) al pedido


----

Escena 2: agregar más de un mismo plato
DADO que ya agregue un plato
CUANDO vuelva a darle al botón “+”
ENTONCES este plato se agrega a la orden

----

Escena 3: se hizo un pedido
DADO que se haya hecho un pedido Y aun no se haya pedido la cuenta
CUANDO de al botón “+” de un producto este se agrega al pedido ENTONCES se pregunta si se desea hacer el pedido del producto agregado.


------

Escena 4: se pidió la cuenta
DADO que se pidió la cuenta
CUANDO se vaya a agregar un producto a la orden
ENTONCES La orden no permite agregar más productos
 800
Cliente
Quitar un producto del pedido
Elegir un plato diferente si cambie de parecer y luego hacer el pedido
Escena 1: No se ha despachado el pedido
DADO que estoy en la página del pedido
Y quiera quitar un plato de este Y este no haya sido ya despachado
CUANDO oprima el botón de quitar”-”
ENTONCES este plato se debe quitar del pedido

-----


Escena 2:Se ha despachado el pedido
DADO que un pedido ya ha sido pedido
Y el mesero lo haya marcado como despachado
CUANDO vaya a eliminar un producto de la orden
Desde el cliente de la mesa
ENTONCES se hace un llamado al mesero


-----

Escena 3: Se pidió la cuenta
DADO que se pidió la cuenta
CUANDO los productos ya hayan sido despachados
ENTOCES el cliente ya no puede eliminar el producto desde la terminal de cliente y se ocultan los botones de eliminar producto

 780
Cliente
Hacer pedido
Poder comer los platos que pedí
Escena 1: Hay uno o mas productos en la orden
DADO que estoy en la lista del pedido
Y
CUANDO una el botón de “ordenar”
ENTONCES se envía la notificación a los meseros del pedido con el pedido de la mesa

------


Escena 2: No hay productos en la orden
DADO que no hay productos en la orden
CUANDO se oprima el botón de hacer pedido
ENTONCES se saca un mensaje que diga que no se puede hacer un pedido porque no hay platos en la orden

-----

Escena 3: Ya se pidió la cuenta
DADO que ya se pidió la cuenta
CUANDO se de en el botón hacer pedido
ENTOCNES este botón de pedido se bloquea y se pone un mensaje diciendo que ya el pedido esta por pagarse


-----

Escena 4: hay productos sin despachar
DADO que haya uno o más productos sin despachar
CUANDO se oprima el botón de pedido
ENTONCES se notifica del pedido nuevamente a los meseros
 740
Cliente
Llamar a un mesero
pedir ayuda o asesoría en la mesa
DADO en cualquier parte de la aplicación
CUANDO unas el botón de llamar mesero
ENTONCES se muestra una notificación a los meseros avisándoles que en esta mesa en específico necesitan a un mesero
 720
Mesero
Ver el menú del restaurante
Poder ver buscar los productos que el cliente quiere adicionar a su pedido
Escena 1: No hay ordenes de mesa
DADO que no hay ordenes de mesa
CUANDO de al botón ver menú restaurante
ENTONCES se me presenta una ventana con el menú del restaurante, sin las opciones de agregar a orden

----

Escena 2: hay orden de mesa
DADO que hay una orden de mesa
Y de ver orden d mesa
CUANDO de al botón ver menú restaurante
ENTONCES se me presenta una ventana con el menú del restaurante, con la opción de agregar los platos a la orden de una mesa

Mesero
Ver detalles de un plato
Poder ver la información más detallada de los pedidos
DADO  que estoy viendo el menú del restaurante
CUANDO este navegando la lista de productos
ENTONCES este me debe mostrar sus detalles
 700
Mesero
Agregar uno o más productos a al pedido de un cliente
Cambiar el pedido de los clientes en caso de ellos requerir un cambio
Escena 1: no hay productos
DADO  que no hay productos en una orden
CUANDO oprima el botón”+” agregar producto a pedido
ENTONCES se agrega el producto al pedido y se actualiza el valor total del pedido

----

Escena 2: hay productos en la orden
DADO que hay productos en una orden
Cuando de al botón “+”
ENTOCNES se agrega a la orden de mesa. se actualiza el valor total del pedido

 680
Mesero
Quitar un producto del pedido
Cambiar el pedido de los clientes en caso de ellos requerir un cambio
DADO  Que quiera quitar un producto de un pedido
CUANDO oprima el botón”-” quitar producto a pedido
ENTONCES se quita el producto al pedido y se actualiza el valor total del pedido
 660
Mesero
Ver si un cliente me llama desde su mesa
Poder ir a atenderlo
Escena 1: Cliente hunde el botón llamar mesero
DADO que estoy en la página de atención de mesas
CUANDO  un cliente oprima el botón llamar mesero
ENTONCES se mostrara una notificación de la mesa donde se hace el llamado
 640
Mesero
ver una pedido de una mesa
Enviarlo a cocina
Escena 1: llega pedido
DADO que llegue un pedido de una mesa
Y Aparezca la notificación
CUANDO toque el número de la mesa
ENTONCES debo poder ver la lista de los productos y la mesa de dónde provino el pedido


----

Escena 2: mesa con pedido
DADO que hay una mesa con un pedido
CUANDO toque el botón de la mesa
ENTONCES se muestra al orden de la mesa
 620
Cliente
Ver mi pedido
Ver el estado de este y hacerle seguimiento a lo que consumo
DADO cualquier punto de la aplicación
CUANDO oprima el botón de pedido
ENTONCES se muestra la lista de productos de la orden de la mesa
 600
Cliente
Pedir la cuenta
Pagar lo que he consumido
DADO que este en la lista del pedido
CUANDO una el botón pedir cuenta
ENTONCES se muestra una notificación a los meseros que el cliente desea pagar la cuenta
 580
Mesero
Que me alerten cuando un cliente quiere pedir la cuenta
Poder generar una factura y llevársela al cliente para que este pague su cuenta
DADO  que este en la pantalla de atención de mesas 
CUANDO  que un cliente haya hundido el botón pedir cuenta
ENTONCES se muestre la notificación de la mesa  
 560
Mesero
Atender el pedido de una mesa
Para que el cliente sepa que ya se le tomo la orden
DADO que ya se haya entregado a cocina el pedido
CUANDO oprima el botón “despachar pedido”
ENTONCES se le envía una notificación a la mesa y se marcan los productos como despachados
 520
Mesero
Saber si un cliente agrego más platos a su pedido, después de haber atendido su pedido
Enviar a cocina
DADO que un cliente agregó uno o más productos a la orden
CUANDO  de "actualizar"  pedido
ENTONCES se notificará al mesero y en la lista del pedido de verá el estado de los productos pendientes
 500
Mesero
Ver el tiempo que lleva una mesa esperando atención
Saber que clientes debo atender primero
DADO  que este en la pantalla de atención de mesas
Y haya una notificación de llamado de una mesa
CUANDO se alerte
ENTONCES se muestre un cronometro que vaya contando el tiempo desde que se generó el llamado
 500
Mesero
Ver disponibilidad de plato
Para ver que productos no puedo añadir al pedido de mi cliente
DADO  que este en el menú de restaurante
CUANDO  este navegando los productos o vaya a agregar lo y no está disponible
ENTONCES se notifica que el producto no es válido para agregar al pedido
 440
Cliente
Ver si mesero recibió mi llamado
Para saber que me van a atender pronto
DADO que haya llamado un mesero
CUANDO el mesero acepte la notificación
ENTONCES se mostrara una notificación en la mesa que dice que el mesero los atenderá pronto
 420
Gerente
Ver cantidad de veces que un producto ha sido pedido
Conocer los productos más populares
DADO  que este en la pantalla de los productos del restaurante
CUANDO  esta cargue
ENTONCES se muestra el nombre del producto con su costo y la cantidad de veces que se ha pedido

viernes, marzo 14, 2014

Mi versión de : SCRUM EN POCAS PALABRAS / SCRUM RESUMIDO

Basado mayormente en: http://www.dosideas.com/noticias/metodologias/729-scrum-en-pocas-palabras.html, el cual es la traducción de "Simple Scrum", por Tobias Mayer, comparto mi versión corta de Scrum.(insisto difiere muy poco pero creo -a mi criterio-  que era necesario añadir 2 ó 3 cositas más)

----

SCRUM EN POCAS PALABRAS / SCRUM RESUMIDO


Scrum es un framework para mejorar la forma en la que trabajan las personas, o como lo define la Scrum Alliance: "un framework basado en equipos para desarrollar sistemas y productos complejos".  Scrum utiliza un proceso iterativo en donde cada iteración (llamada Sprint) es lo más corta posible (este tiempo puede ser entre una y cuatro semanas), manteniendo un ritmo parejo a medida que se avanza con planificación, ejecución y reflexión. Estas cajas de tiempo estrictas y rítmicas de Scrum permiten descubrir disfunciones en la organización.
Scrum define tres roles (Scrum Master, Dueño del Producto y Equipo), un conjunto de objetivos priorizados, un compromiso por cada sprint, y una forma sencilla para medir el progreso. Scrum usa ceremonias de tiempo acotado para planificar, para inspeccionar/adaptar a diario, y para inspeccionar/adaptar durante sprints.
Se mantiene una clara distinción entre el "Que" (el objetivo) y el "Como" (la forma de lograrlo)
Scrum requiere un foco claro, compromiso y transparencia completa en todos los niveles; adopta y enfatiza ciertos valores humanos incluyendo (pero no limitado a) la confianza, la integridad, el coraje y el respeto.



Fuente: Mountain Goat Software LLC
 Roles
  •   Scrum master:  El Scrum Master es un líder servicial para el equipo, y un agente de cambio dentro de la organización.
  • Product Owner (Dueño del producto): El Dueño del Producto es la principal voz del cliente, establece una visión y usa un proceso de priorización continua para lograrla.
  • Team : El Equipo es auto-gestionado, multi-funcional, con poder para realizar el trabajo.


Artefactos
  • Product Backlog (Pila del producto): Es una lista (backlog) de requerimientos u objetivos. Contiene todas las cosas que (creemos) nos gustaría tener en el producto o servicio, en algún momento. Es una lista viva, en un continuo estado de cambio y siempre ordenada por importancia, que cambia con el tiempo. Los elementos del backlog siempre hacen foco en el "Que".
  • Sprint Backlog (Pila del Sprint) El compromiso del sprint es un subconjunto del backlog, que a veces se descompone en tareas de trabajo, que describen el "Como" del producto.
  • Incremento: Es el producto de trabajo generado luego de un sprint, el cual es puede ser “potencialmente entregable”, o sea, si el Product Owner lo desea puede ser liberado al cliente en cualquier momento. Este incremento cumple la Definition Of Done (Definición de Hecho o Definición de Terminado), lo cual permite afirmar que si el incremento cumple esta definición no es necesario trabajar más sobre este producto de trabajo
  • Métricas: Es el Scrum utiliza métricas simples, por ejemplo, mediciones de trabajo restante, o valor de negocio entregado. Las métricas deben usarse para medir la verdad - no para medir el éxito o el fracaso. Sólo se puede confiar en las mediciones de la verdad para fomentar un comportamiento de corrección en el equipo.


Eventos
  • Sprint Planning (Planeación del Sprint): El Equipo y el Dueño del Producto se reúnen antes del inicio de cada sprint para planificar el trabajo y hacer un compromiso sobre este.
  • Daily Meeting  (Scrum Diario o Reunión Diaria) : Todos los días, los miembros del equipo se juntan frente a un tablero visual (conocido como scrumboard) para alinearse entre ellos y para pedir y ofrecer ayuda. Esta reunión se realiza de pie, no toma más de 15 minutos y cada miembro del Team contesta tres preguntas:

o    ¿Qué hice ayer?
o   ¿Qué voy a hacer hoy? y
o   ¿qué impedimentos tengo?

  • Sprint Review (Demostración del Sprint): Al final de cada sprint se muestra el trabajo terminado a los clientes, y se sugieren adaptaciones.
  • Sprint Retrospective (Retrospectiva del Sprint): A continuación de la demostración el equipo reflexiona sobre el proceso, buscando formas de mejorar y comprometiéndose a cambios.

domingo, marzo 09, 2014

Un resumen de contratos ágiles

La falta de transparencia en la Gerencia tradicional de proyectos - Una experiencia vivida

Quiero compartir algo que me paso en el ‪#‎AgileOpenBogota‬ del pasado 8 de marzo:

Pregunté a los asistentes a una charla "quienes habían visto a su gerente de proyecto decir mentiras" y todos alzaron la mano.

Me cuestionan varias cosas:

  • Si la constante es una mentira, ¿el problema esta en el GP? o ¿en el proceso de ejecutar el proyecto?  (considero que esta en el proceso)
  • ¿Por que no somos transparentes? ¿qué queremos ocultar?
  • ¿Que nos impide ser transparentes?
  • Sería bueno que la gerencia tradicional revisara los valores ágiles, dentro de los cuales esta la transparencia y la confianza.
  • Desde que punto de vista las mentiras se vuelven  "manejo" del Gerente de Proyectos


Muchos cuestionamientos


Falla el proceso y seguimos obstinados en ello.



Les recomiendo este link:




Mi pregunta para tí,

  • si eres gerente de proyecto ¿ ERES MENTIROSO? ¿POR QUÉ?
  • si eres team member, ¿tu gerente de proyecto ES MENTIROSO?¿POR QUÉ?
  • si eres Scrum Master ¿ ERES MENTIROSO? ¿POR QUÉ? (esta si es una falta grave al manifiesto, principio y valores ágiles, - revisa que tienes que corregir para que esto no se repita - )






Queda abierto el espacio de discusión

_

domingo, marzo 02, 2014

No somos "recursos", nuestra forma de solucionar los retos es única e irrepetible

Existe una colección de frases frecuentes en los gerentes, gerentes de proyecto, líderes de proyecto respecto a quienes componen sus equipos de trabajo, entre ellas están:
  • ¿cuando liberas un recurso, lo necesito para el proyecto x?
  • mi proyecto necesita más recursos
  • tengo dos recursos que no puedo mover
  • tengo un recurso enfermo
  • y así podría seguir...
Realmente es un lenguaje cosificante que no aplica bajo ningún contexto y mucho menos en desarrollo de software y TI.

Lo cierto es que NO SOMOS RECURSOS (nadie lo es), no somos reemplazables, la forma como solucionamos un problema, y en especial en desarrollo de software es única e irrepetible, como lo he argumentado en muchos contextos y entrenamientos, no estamos picando piedra con la misma fuerza y en el mismo ángulo durante un periodo asignado del día.

Tal vez esa cosificación de la persona, ingeniero, tecnólogo o técnico sea un lenguaje de poder o de control sobre quienes tiene asignados (no dudo para algunos lo será, lo he notado), para otros es la fuerza que trae el leer la palabra "RECURSO" en el:
  • PMBoK
  • MS Project
  • y el resto de suites de software y libros para gerencia de proyectos.
Ojalá desde los Gerentes de Proyecto cambie todo esto, la verdad, yo he logrado más tratando a quienes tienen la gran labor de sacar un proyecto o producto adelante (junto conmigo) como personas, equipo, ingenieros; permitiendome cediendo el control, confiando y permitiendo que tomen la responsabilidad para la cual fueron contratados.

Repito, no somos recursos, nuestro equipo no esta compuesto por recursos, la forma de solucionar los retos en software y TI es única por cada persona, cada integrante de un equipo agrega particularidades únicas en el proceso creativo.

Ojalá esto cambie pronto ojalá comprendamos que quienes conforman nuestros equipos son personas.


--



Valoramos más
LAS PERSONAS Y SUS INTERACCIONES sobre los procesos y herramientas.


__




lunes, febrero 24, 2014

Dos cosas que he aprendido en gerencia...

Se la escuché a un amigo

LAS COSAS TARDAN LO QUE SE DEMORAN

 (o sea, por más que presionen - cliente, gerente, etc, etc,-  las cosas tardarán su debido tiempo de elaboración y en software tendiendo al más grande.)



-----




Respecto a las decisiones..


SI COMO GERENTE NO TOMAS DECISIONES, OTROS LAS TOMARÁN SOBRE TI.

(significa que si no muestras gestión y toma fundamentada de decisiones otro - por lo general el superior, o tus pares -  al ver que no procedes, o procedes erráticamente, tomará(n) decisiones no muy agradables sobre ti)



_