ndice
Anlisis, Estimacin y Planificacin gil.................................................................................................................................................................................... 1 Desarrollo Evolutivo.....................................................................................................................................................................................................................4 Minimum Marketable Features.......................................................................................................................................................................................5 Visual Story Mapping........................................................................................................................................................................................................... 6 Proceso de Anlisis gil..............................................................................................................................................................................................................8 Roles de Usuario.....................................................................................................................................................................................................................8 Brainstorming de un conjunto inicial de roles.................................................................................................................................................8 Organizacin del conjunto inicial de roles...................................................................................................................................................... 11 Consolidacin de roles.............................................................................................................................................................................................. 12 Refinamiento de roles............................................................................................................................................................................................... 13 Visual Story Mapping en la Prctica...................................................................................................................................................................................17 Identificacin de los Procesos de Negocio.............................................................................................................................................................. 17 Identificacin de Funcionalidades del Software (Herramientas)................................................................................................................19 Identificacin de MMF y posteriores releases.......................................................................................................................................................27 MMF (o Release 1) Objetivo: Comercializar Eventos............................................................................................................................. 27 Release 2 Objetivo: Toma de evaluaciones on-line................................................................................................................................. 28 Release 3 Objetivo: Pre-Inscripcin Individual y Correccin de Exmenes a Desarrollar...................................................29 Release 4 Objetivo: Pre-Inscripcin Corporativa y Seguimiento de Pagos..................................................................................29 Release 5 Objetivo: Logstica de Eventos..................................................................................................................................................... 30 Release 6 Objetivo: Eventos Tentativos.......................................................................................................................................................30 Release 7 Objetivo: Integracin con sistemas externos........................................................................................................................ 31 Historias de Usuario.................................................................................................................................................................................................................. 32 Componentes de una Historia de Usuario...............................................................................................................................................................33 Redaccin de una Historia de Usuario...................................................................................................................................................................... 33 Primera Persona.......................................................................................................................................................................................................... 34 Priorizacin....................................................................................................................................................................................................................34 Propsito......................................................................................................................................................................................................................... 34 INVEST - Caractersticas de una Historia de Usuario........................................................................................................................................ 34 Independientes (I)...................................................................................................................................................................................................... 34 Negociable (N).............................................................................................................................................................................................................. 34 Valorable (V)..................................................................................................................................................................................................................35 Estimable (E)................................................................................................................................................................................................................. 35 Pequea (Small)...........................................................................................................................................................................................................35 Verificable (Testable)................................................................................................................................................................................................ 35 Criterio de Listo................................................................................................................................................................................................................... 36 Criterio de Terminado...................................................................................................................................................................................................... 36 Las Historias de Usuario de Nuestro Sistema................................................................................................................................................................36 Estimaciones giles................................................................................................................................................................................................................... 46 Cono de la Incertidumbre................................................................................................................................................................................................46 Estimaciones en contextos inciertos..........................................................................................................................................................................48 Escalas de PBIs y Estimaciones.................................................................................................................................................................................... 48 Mtodos Delphi de Prediccin y Estimacin..........................................................................................................................................................50 Planning Poker..................................................................................................................................................................................................................... 51 La Sabidura de las Multitudes (Wisdom of Crowds)........................................................................................................................................ 51 Conclusiones sobre estimaciones giles..................................................................................................................................................................52 Release Plan ..................................................................................................................................................................................................................................53 Sprint 0.............................................................................................................................................................................................................................................58 Duracin del Proyecto.............................................................................................................................................................................................................. 58 Release y BackLog Burn Down Chart................................................................................................................................................................................ 60 Release Burn Down Chart............................................................................................................................................................................................... 60 BackLog Burn Down Chart............................................................................................................................................................................................. 61 Costo del Proyecto...................................................................................................................................................................................................................... 62
Esta obra fue realizada por Martn Alaimo para KLEER, con aportes de Pablo Tortorella y Daniela Casquero y se encuentra bajo una Licencia Creative Commons Atribucin-NoComercial-SinDerivadas 3.0 Unported.
Pgina 2
Desarrollo Evolutivo
Supongamos que nos han contratado de una empresa de transporte para construir autobuses para el traslado de nios desde su casa a la escuela y desde la escuela a su casa.
Luego de analizar las caractersticas o funcionalidades que el autobs debe tener, hemos dividido la problemtica en:
Una alternativa para construir el autobs sera dedicar la primera entrega al chasis y los frenos, la segunda al motor y la carrocera, la tercera a la transmisin, etc., tal como se muestra a continuacin.
Pgina 3
Sin embargo, si nosotros decidimos construir el vehculo de forma evolutiva e incremental deberamos tener una unidad funcionando al final de cada iteracin, lo que significa segmentar el desarrollo de forma transversal a dichas funcionalidades con el fin de proveer una pequea porcin de cada una en cada entrega, formando un producto utilizable:
Partiendo de esta base, vamos a introducir dos conceptos complementarios entre s: Minimum Marketable Feature y Visual Story Mapping.
Pgina 4
Anlisis, Estimacin y Planificacin gil con Scrum Historias o Visual Story Mapping2. La teora del Visual Story Mapping comienza en un nivel humano identificando los Objetivos que toda persona persigue y dividindolos en Actividades para las cuales deben utilizarse Herramientas, resultando entonces en una jerarqua de Objetivos Actividades Herramientas, como muestra la siguiente figura:
El ltimo nivel denominado herramientas, puede desagregarse a su vez en diferentes niveles de confort. Por este mismo principio una persona puede viajar de una ciudad a otra en un automvil del ao 1965 o en un ltimo modelo siendo que la actividad llegar de una ciudad a otra seguir cumplindose. Este nivel de confort est dado por 1) la necesidad de negocio (necesito que el viaje se haga en menos de 30 minutos) y 2) cunto estemos dispuestos a invertir (precio del auto). Haciendo una analoga con las organizaciones, esta jerarqua de Objetivo Actividad Herramienta puede traducirse en Proceso de Negocio Actividad Software, como se muestra a continuacin:
Pgina 5
Fig. X: Jerarqua Proceso Actividad Software El Software como herramienta tambin puede otorgarnos diferentes niveles de confort. Uniendo entonces el concepto de MMF y de nivel de confort, deberamos pensar la construccin del software de forma evolutiva, naciendo desde lo mnimo posible (MMF) e ir escalando en los niveles de confort de las funcionalidades iteracin tras iteracin, tratando de abarcar tanta funcionalidad como sea posible en la extensin del proceso de negocio y no tanto en profundidad. Teniendo en cuenta entonces que el software ser construido evolutivamente, incrementando la funcionalidad entrega tras entrega y sumando elementos visuales, surge entonces una herramienta colaborativa para analizar el alcance del software a ser construido y para dividirlo en diferentes entregas. Esta tcnica visual utiliza elementos fsicos como marcadores, notas autoadhesivas y papel afiche con el propsito de fomentar la colaboracin entre las personas.
Roles de Usuario
Previo al anlisis del sistema, es necesario identificar los posibles usuarios que tendr. Para esto utilizaremos una tcnica colaborativa descripta por Mike Cohn 3 basada en el trabajo de Constantine & Lockwood4. Esta tcnica se realiza en equipo, durante un taller donde el cliente y tantos desarrolladores como sea posible colaboran en la identificacin de los roles. El taller se compone de cuatro actividades: Brainstorming de un conjunto inicial de roles
3 Agile Estimating and Planning, Mike Cohn, 2005 4 Software for Use, Constantine & Lockwood, 1999
Pgina 6
Anlisis, Estimacin y Planificacin gil con Scrum Organizacin del conjunto inicial de roles Consolidacin de roles Refinamiento de roles
Como se ha mencionado anteriormente, la intencin de esta actividad es que sea lo ms colaborativa posible. Tanto el cliente como el Equipo completo deberan participar, aunque muchas veces ser suficiente con la participacin de un conjunto representativo del Equipo de desarrollo. La reunin se lleva a cabo sobre una mesa lo suficientemente grande para todos los participantes. Cada uno toma varias fichas de una pila dispuesta en el centro de la mesa y escribe un rol en la misma. Siendo que esta actividad es un Brainstorming no debe haber discusin ni censura para cada rol que alguien escribe. Una opcin que suele funcionar muy bien es que los participantes anoten tantos roles como sea posible en sus fichas, en silencio y sin compartirlos con el resto de las personas. En nuestro caso, los involucrados identificaron varios roles cada uno, como se muestra en las fotografas.
Pgina 7
Pgina 8
Una vez que el grupo haya terminado de identificar los roles, el prximo paso es organizarlos. Para esto, los dispondr sobre la mesa de forma tal que las similitudes queden representadas de forma visual. Esto se logra solapando levemente aquellos roles que tienen pocas similitudes, solapando por completo aquellos que son iguales y separando los que no tienen relacin. Para poder llegar a ese resultado, los participantes deben compartir los roles con el resto del equipo y describir cada uno de ellos, discutiendo e indagando para poder entender las similitudes y diferencias. Esto a su vez ayudar a diseminar el conocimiento entre los integrantes del Equipo. Para nuestro sistema bajo anlisis, el resultado de este ejercicio fue como se muestra en las siguientes fotografas:
Pgina 9
Consolidacin de roles
Luego de haber agrupado los roles, el siguiente paso ser consolidar y condensar. Para esto se comienza por aquellas fichas que tienen el mayor solapamiento, se discuten para entender si podran condensarse en un nico rol y, en el caso de que sea posible hacerlo, se buscar un nico nombre para que las represente. En nuestro ejemplo, luego de esta dinmica se lleg al siguiente resultado:
Pgina 10
Luego de discutir los diferentes roles, se agruparon de forma tal de representar los roles principales en los niveles superiores, y los sub-roles o especializaciones en los niveles inferiores, trasladados a su vez, hacia la derecha:
Refinamiento de roles
El cuarto y ltimo paso de la identificacin de roles consiste en lograr su refinamiento mediante la descripcin de las siguientes caractersticas:
Pgina 11
Anlisis, Estimacin y Planificacin gil con Scrum 1. Frecuencia de uso del sistema por parte del usuario 2. Nivel de experiencia del usuario en el dominio del problema 3. El nivel general de experiencia del usuario con el uso de computadoras 4. El nivel general de experiencia del usuario con el sistema 5. Objetivo del usuario con la utilizacin del sistema Descripcin refinada de los roles: Comercial Uso intensivo del sistema con gran conocimiento del dominio del problema. Posee un nivel intermedio de experiencia en la utilizacin de computadoras y alto nivel de experiencia con el uso del sistema en particular. Su responsabilidad ser la de proveer informacin sobre los diferentes cursos frente a las consultas de los interesados. Esto incluye programa, contenidos, fechas, precios y cantidad de vacantes. Tambin debe conocer el estado de completitud de cada curso en el calendario y tener la posibilidad de crear nuevos eventos. Partner Comercial dem Comercial, con la particularidad que los eventos creados por un Partner Comercial se registran como tentativos hasta que un Comercial los confirma.
Marketer Uso frecuente del sistema con conocimiento limitado del dominio del problema. Posee un nivel avanzado de experiencia en la utilizacin de computadoras y nivel intermedio de experiencia con el uso del sistema en particular y alto nivel de experiencia en el uso de redes sociales como Twitter y Facebook. Su responsabilidad ser la de promover y difundir los eventos en internet. Media Partner Uso eventual del sistema con bajo conocimiento del dominio del problema. Posee un nivel avanzado de experiencia en la utilizacin de computadoras y nivel bajo de experiencia con el uso del sistema en particular y alto nivel de experiencia en su sitio web. Su responsabilidad ser la de difundir los eventos entre los usuarios de sus sitios web, realizar sorteos y proveer cdigos de descuento. Tambin debe conocer el estado de su cuenta en el caso de obtener beneficios econmicos en base a referidos.
Interesado Uso infrecuente del sistema sin conocimiento del dominio del problema. Se asumir un nivel avanzado de experiencia en la utilizacin de computadoras y bajo nivel de Pgina 12
Anlisis, Estimacin y Planificacin gil con Scrum experiencia con el uso del sistema en particular. Su inters ser consultar el calendario y contenidos de los eventos. Interesado E-mail dem interesado, pero su inters es recibir informacin va e-mail. Interesado Redes Sociales dem interesado, pero su inters es recibir informacin va redes sociales. Interesado en Futuros Eventos Un tipo particular de Interesado, cuyo foco est en futuros eventos en una ciudad o pas en particular.
Persona a Inscribirse Uso infrecuente del sistema sin conocimiento del dominio del problema. Se asumir un nivel avanzado de experiencia en la utilizacin de computadoras y bajo nivel de experiencia con el uso del sistema en particular. Su inters es inscribirse a un determinado evento. Empresa con Personas a Inscribir Uso infrecuente del sistema sin conocimiento del dominio del problema. Se asumir un nivel intermedio de experiencia en la utilizacin de computadoras y bajo nivel de experiencia con el uso del sistema en particular. Su inters es inscribirse a un determinado grupo de personas, todas de una misma empresa a un evento en particular. Beneficiario de Empresa Uso infrecuente del sistema sin conocimiento del dominio del problema. Se asumir un nivel avanzado de experiencia en la utilizacin de computadoras y bajo nivel de experiencia con el uso del sistema en particular. Su inters es recibir informacin sobre los eventos a los que fue inscripto por una tercera persona.
Deudor Uso infrecuente del sistema sin conocimiento del dominio del problema. Se asumir un nivel avanzado de experiencia en la utilizacin de computadoras y bajo nivel de experiencia con el uso del sistema en particular. Su inters es la realizacin de los pagos pendientes para poder asistir al evento al cual est inscripto. Gestor de Cobranzas Uso intensivo del sistema con gran conocimiento del dominio del problema. Posee un nivel intermedio de experiencia en la utilizacin de computadoras y alto nivel de experiencia con el uso del sistema en particular. Su responsabilidad ser el seguimiento de los pagos de los diferentes eventos. Pgina 13
Anlisis, Estimacin y Planificacin gil con Scrum Facturador Uso intensivo del sistema con gran conocimiento del dominio del problema. Posee un nivel intermedio de experiencia en la utilizacin de computadoras y alto nivel de experiencia con el uso del sistema en particular. Su responsabilidad ser la realizacin de las facturas a individuos u organizaciones. Gestor de Logstica Uso peridico del sistema con gran conocimiento del dominio del problema. Posee un nivel intermedio de experiencia en la utilizacin de computadoras y alto nivel de experiencia con el uso del sistema en particular. Su responsabilidad ser el seguimiento de todo lo que hace a la logstica de un determinado evento. Gestor de Compras Uso peridico del sistema con gran conocimiento del dominio del problema. Posee un nivel intermedio de experiencia en la utilizacin de computadoras y alto nivel de experiencia con el uso del sistema en particular. Su responsabilidad ser la realizacin de todas las compras necesarias para los eventos. Gestor de Materiales Uso peridico del sistema con gran conocimiento del dominio del problema. Posee un nivel intermedio de experiencia en la utilizacin de computadoras y alto nivel de experiencia con el uso del sistema en particular. Su responsabilidad ser la determinacin y administracin de los materiales y cantidades para cada tipo de evento.
Recepcionista Uso frecuente del sistema con gran conocimiento del dominio del problema. Posee un nivel intermedio de experiencia en la utilizacin de computadoras y alto nivel de experiencia con el uso del sistema en particular. Su responsabilidad ser la recepcin de los asistentes, la toma de asistencia y la autorizacin de participacin a los mismos. Instructor Uso frecuente del sistema con gran conocimiento del dominio del problema. Posee un nivel intermedio a avanzado de experiencia en la utilizacin de computadoras y alto nivel de experiencia con el uso del sistema en particular. Su objetivo ser la creacin de tipos de eventos y la provisin de los contenidos, programas, lecturas y material asociado a cada uno de ellos. Tambin ser su responsabilidad la evaluacin de los exmenes rendidos por los alumnos. Alumno Uso infrecuente del sistema sin conocimiento del dominio del problema. Se asumir un nivel avanzado de experiencia en la utilizacin de computadoras y bajo nivel de experiencia con el uso del sistema en particular. Est interesado en acceder a los contenidos de los diferentes cursos o eventos a los cuales asiste, como as tambin en poder rendir los exmenes que cada curso requiera y obtener los correspondientes Pgina 14
Anlisis, Estimacin y Planificacin gil con Scrum certificados de examen y asistencia. Alumno Certificable dem Alumno. Su inters consiste en poder recibir las instrucciones necesarias para solicitar la certificacin correspondiente. Las certificaciones generalmente estn relacionadas a la completitud de una serie determinada de cursos o un curso en particular.
Ex-Alumno dem Alumno. Su inters es recibir informacin sobre nuevos eventos o cursos relacionados o correlativos a los cursos o eventos a los que ha aistido. Responsable de Finanzas Uso intensivo del sistema con gran conocimiento del dominio del problema. Posee un nivel intermedio de experiencia en la utilizacin de computadoras y alto nivel de experiencia con el uso del sistema en particular. Su responsabilidad ser la planificacin y elaboracin de presupuestos para cursos y eventos y el conocimiento de los resultados econmicos de los mismos. Responsable de REPs Uso intensivo del sistema con gran conocimiento del dominio del problema. Posee un nivel intermedio de experiencia en la utilizacin de computadoras y alto nivel de experiencia con el uso del sistema en particular. Su responsabilidad ser la publicacin de los alumnos en los cursos declarados en los sistemas de las organizaciones de las cuales la empresa es REP (Registered Education Provider).
Pgina 15
Los procesos de negocio identificados como parte de este taller fueron: 1. Venta de Evento 2. Registracin a Evento 3. Cobranza de Evento 4. Facturacin de Evento 5. Evaluacin de Evento 6. Logstica de Evento
Pgina 16
Pgina 17
Pgina 18
Pgina 19
Pgina 20
Para el sistema en cuestin hemos identificado las siguientes funcionalidades por cada uno de los procesos de negocio: Venta de Evento Sugerir Evento Crear evento tentativo Notificar a comercial Consultar agenda de eventos Consultar agenda de instructores Modificar evento tentativo Cancelar evento tentativo Registrar evento tentativo en Google Calendar Crear Evento Ver listado de eventos tentativos Confirmar evento tentativo Crear un evento confirmado Ver listado de eventos confirmados
Pgina 21
Anlisis, Estimacin y Planificacin gil con Scrum Registrar evento confirmado en Google Calendar Notificar a Instructor sobre la confirmacin de evento Notificar a Comercial o Partner Comercial sobre la confirmacin de evento Crear balance contable del evento en Google Docs Ver listado de eventos tentativos agrupados por Partner Comercial y/o Regin Modificar evento confirmado Cancelar evento confirmado Difundir Evento Publicar Evento en Twitter Facebook LinkedIn
Listar evento en sitio web Difundir va Mailchimp Difundir en forma masiva Difundir a leads comerciales Responder Consultas Publicar detalles de evento Generar texto con fechas y valores para Copy & Paste en e-mail de respuesta Generar brochure del evento Visualizar Estado de Inscripciones Dashboard de inscripciones a cursos Registracin a Evento Pre-Inscripcin a Evento Pre-Inscripcin individual Pre-Inscripcin de grupo Pre-Inscripcin corporativa Pgina 22
Anlisis, Estimacin y Planificacin gil con Scrum Notificacin de Pre-Inscripcin y pasos siguientes Confirmacin de Inscripcin Notificar Inscripcin Recordatorio de Evento Notificacin al responsable logstico sobre cupo alcanzado Confirmar inscripcin sin pago (pago a cuenta) Cobranza de Evento Seguimiento de Cobros Pendientes Recordatorio de pago pendiente Listado de Pagos Pendientes por evento Pago de Pre-inscripcin Obtencin de informacin de facturacin Eleccin de forma de pago Pagar en/por Efectivo Cheque Transferencia Bancaria PayPal Mercado Pago
Procesar Cobro Registro de Pago Notificacin de cobro a Gestor de Finanzas Generacin de asiento contable Facturacin de Evento Facturar Evento Generar Factura Imprimir Factura Pgina 23
Anlisis, Estimacin y Planificacin gil con Scrum Ver listado de Facturas Entregar Factura Asentar Factura en Contabilidad Evaluacin de Evento Responder Preguntas Responder Preguntas Multiple-Choice Responder Preguntas a Desarrollar Finalizacin de Evaluacin (Pantalla) Notificacin de Finalizacin de Evaluacin (E-mail) Corregir Evaluacin Correccin automtica de preguntas multiple-choice Listado de evaluaciones a corregir Correccin manual de preguntas a desarrollar Feedback de correccin Notificar Resultado Notificacin del resultado por e-mail Generacin de certificado de evaluacin aprobada Recuperar Evaluacin Listado de recuperatorios pendientes Listado de preguntas erradas Responder preguntas erradas Reclculo automtico de resultado basado en preguntas multiple-choice Correccin manual de preguntas a desarrollar Feedback de correccin Logstica de Evento Gestionar Maestros de Logstica ABM Tipos de Eventos Pgina 24
Anlisis, Estimacin y Planificacin gil con Scrum ABM Checklist Template ABM Materiales Generar Checklist Instanciacin de Checklist de Evento Actualizar Checklist Actualizacin de datos de Checklist Notificar a responsable de logstica Operar Checklist Listado de eventos con progreso de checklist Detalle de checklist de evento
Venta de Evento Crear Evento Crear un evento confirmado Ver listado de eventos confirmados Modificar evento confirmado Cancelar evento confirmado Difundir Evento Listar evento en sitio web Responder Consultas Publicar detalles de evento Generar texto con fechas y valores para Copy & Paste en e-mail de respuesta
Anlisis, Estimacin y Planificacin gil con Scrum Visualizar Estado de Inscripciones Dashboard de inscripciones a cursos Registracin a Evento Pre-Inscripcin a Evento Pre-Inscripcin individual Confirmacin de Inscripcin Notificar Inscripcin Confirmar inscripcin sin pago (pago a cuenta) Cobranza de Evento Seguimiento de Cobros Pendientes Listado de Pagos Pendientes por evento Pago de Pre-inscripcin Pagar en/por Efectivo Cheque Transferencia Bancaria
Evaluacin de Evento Responder Preguntas Responder Preguntas Multiple-Choice Finalizacin de Evaluacin (Pantalla) Notificacin de Finalizacin de Evaluacin (E-mail) Corregir Evaluacin Pgina 26
Anlisis, Estimacin y Planificacin gil con Scrum Correccin automtica de preguntas multiple-choice Notificar Resultado Notificacin del resultado por e-mail Generacin de certificado de evaluacin aprobada Recuperar Evaluacin Listado de recuperatorios pendientes Listado de preguntas erradas Responder preguntas erradas Reclculo automtico de resultado basado en preguntas multiple-choice
Release 3 Objetivo: Pre-Inscripcin Individual y Correccin de Exmenes a Desarrollar
Evaluacin de Evento Responder Preguntas Responder Preguntas a Desarrollar Corregir Evaluacin Listado de evaluaciones a corregir Correccin manual de preguntas a desarrollar Feedback de correccin
Registracin a Evento Pre-Inscripcin a Evento Pre-Inscripcin corporativa Confirmacin de Inscripcin Recordatorio de Evento Pgina 27
Anlisis, Estimacin y Planificacin gil con Scrum Notificacin al responsable logstico sobre cupo alcanzado Cobranza de Evento Seguimiento de Cobros Pendientes Recordatorio de pago pendiente Pago de Pre-inscripcin Obtencin de informacin de facturacin Eleccin de forma de pago Pagar en/por PayPal Mercado Pago
Logstica de Evento Gestionar Maestros de Logstica ABM Tipos de Eventos ABM Checklist Template ABM Materiales Generar Checklist Instanciacin de Checklist de Evento Actualizar Checklist Actualizacin de datos de Checklist Notificar a responsable de logstica Operar Checklist Listado de eventos con progreso de checklist Detalle de checklist de evento
Anlisis, Estimacin y Planificacin gil con Scrum Sugerir Evento Crear evento tentativo Notificar a comercial Consultar agenda de eventos Modificar evento tentativo Cancelar evento tentativo Crear Evento Ver listado de eventos tentativos Confirmar evento tentativo Notificar a Comercial o Partner Comercial sobre la confirmacin de evento Notificar a Instructor sobre la confirmacin de evento Ver listado de eventos tentativos agrupados por Partner Comercial y/o Regin Responder Consultas Generar brochure del evento Registracin a Evento Pre-Inscripcin a Evento Pre-Inscripcin de grupo
Release 7 Objetivo: Integracin con sistemas externos
Venta de Evento Sugerir Evento Consultar agenda de instructores Registrar evento tentativo en Google Calendar Crear Evento Registrar evento confirmado en Google Calendar Pgina 29
Anlisis, Estimacin y Planificacin gil con Scrum Crear balance contable del evento en Google Docs Difundir Evento Publicar Evento en Twitter Facebook LinkedIn
Difundir va Mailchimp Difundir en forma masiva Difundir a leads comerciales Cobranza de Evento Procesar Cobro Generacin de asiento contable Facturacin de Evento Facturar Evento Generar Factura Imprimir Factura Ver listado de Facturas Entregar Factura Asentar Factura en Contabilidad
Historias de Usuario
Valor: Software funcionando por sobre la documentacin extensiva Principio: El mtodo ms eficiente y eficaz de transmitir informacin hacia y dentro de un equipo de desarrollo es mediante la comunicacin cara a cara. Agile Manifesto 2001 Las Historias de Usuario surgieron en eXtremme Programming (XP) como una respuesta a una situacin habitual en los proyectos de desarrollo do software: los clientes o especialistas de negocio se comunican con los equipos de desarrollo a travs de extensos documentos Pgina 30
Anlisis, Estimacin y Planificacin gil con Scrum conocidos como especificaciones funcionales. A su vez, las especificaciones funcionales son la documentacin de supuestos y estn sujetas a interpretaciones, lo que causa malos entendidos y que finalmente el software construido no se corresponda con la realidad esperada. Una de las principales razones por las cuales la utilizacin de especificaciones detalladas como medio de comunicacin no conduce a resultados satisfactorios es porque solo cubre una porcin mnima (7%) del espectro de la comunicacin humana: el contenido. Segn Albert Mehrabian, la comunicacin humana se compone de tres partes6: En un 7%: El contenido (las palabras, lo dicho) En un 38%: El tono de la voz En un 55%: Las expresiones faciales
Por esto se concluye que para tener una comunicacin slida, completa, es necesario el contacto cara-a-cara entre los interlocutores. En un esfuerzo orientado a que esas conversaciones existan, podemos decir que las Historias de Usuario son especificaciones funcionales que invitan a la conversacin para que el detalle sea consecuencia de esta ltima y no un remplazo.
Pgina 31
Anlisis, Estimacin y Planificacin gil con Scrum Ejemplo: Como estudiante necesito comprar un pase de estacionamiento para poder estacionar mi vehculo en la universidad. Los beneficios de este tipo e redaccin son, principalmente:
Primera Persona
La redaccin en primera persona de la Historia de Usuario invita a quien la lee a ponerse en el lugar del usuario.
Priorizacin
Tener esta estructura para redactar la Historia de Usuario ayuda al Product Owner a priorizar. Si el Product Backlog es un conjunto de tems como Permitir crear un evento tentativo, Confirmar un evento tentativo, Notificar al responsable de logstica, Ver el estado de inscripciones, etc. el Product Owner debe trabajar ms para comprender cul es la funcionalidad, quien se beneficia y cul es el valor de la misma.
Propsito
Conocer el propsito de una funcionalidad permite al equipo de desarrollo plantear alternativas que cumplan con el mismo propsito en el caso de que el costo de la funcionalidad solicitada sea alto o su construccin no sea viable.
Las Historias de Usuario deben ser independientes de forma tal que no se superpongan en funcionalidades y que puedan planificarse y desarrollarse en cualquier orden. Muchas veces esta caracterstica no puede cumplirse para el 100% de las Historias. El objetivo que debemos perseguir es preguntarnos y cuestionarnos en cada Historia de Usuario si hemos hecho todo lo posible para que sta sea independiente del resto.
Negociable (N)
Una buena Historia de Usuario es Negociable. No es un contrato explcito por el cual se debe entregar todo-o-nada. Por el contrario, el alcance de las Historias (sus criterios de aceptacin) podran ser variables: pueden incrementarse o eliminarse con el correr del desarrollo y en funcin del feedback del usuario y/o la performance del Equipo. En el caso de que uno o varios criterios de aceptacin se eliminen de una Historia de Usuario, estos se transformarn en una o varias Historias de Usuario nuevas. Esta es la herramienta que el Product Owner y el Equipo tienen para negociar el alcance de cada Sprint.
9 INVEST in Good Stories, and SMART Tasks, Bill Wake, 2003
Pgina 32
Una Historia de Usuario debe ser Valorable por el Product Owner. Los Desarrolladores pueden tener actividades tcnicas como parte del BackLog, pero para que puedan ser consideradas una Historia de Usuario, deben ser enmarcadas de forma tal que el Product Owner las considere importantes, caso contrario, no deberan formar parte del BackLog. En general, esta caracterstica representa un desafo a la hora de dividir Historias de Usuario. Bill Wake propone pensar en una Historia de Usuario como si fuese una torta de mltiples capas, por ejemplo: una capa de persistencia, una capa de negocio, una capa de presentacin, etc. Cuando dividamos esa Historia de Usuario, lo que vamos a estar sirviendo es una parte de esa torta y el objetivo debera ser darle al Product Owner la esencia de la torta completa, y la mejor manera de hacerlo es cortando una rodaja vertical de esta torta a travs de todas las capas. Los Desarrolladores tenemos una inclinacin especial de trabajar en una capa a la vez hasta completarla, pero una capa de persistencia de datos completa y terminada tiene muy poco o ningn valor para el Product Owner si no hay una capa de negocio y de presentacin.
Estimable (E)
Una Historia de Usuario debera ser estimable. Mike Cohn 10, identifica tres razones principales por las cuales una Historia de Usuario no podra estimarse: La Historia de Usuario es demasiado grande. En este caso la solucin sera dividir la Historia de Usuario en historias ms pequeas que sean estimables. Falta de conocimiento funcional. En este caso la Historia de Usuario vuelve al Product Owner para bajar en detalle la Historia o inclusive (y recomendable) tener una conversacin con el Equipo de Desarrollo. Falta de conocimiento tcnico. Muchas veces el Equipo de Desarrollo no tiene el conocimiento tcnico suficiente para realizar la estimacin. En estos casos el Equipo de Desarrollo puede dividir la historia en 1) un time-box conocido como spike que le permita investigar la solucin y proveer una estimacin ms certera y 2) la funcionalidad a desarrollar como parte de la Historia en si misma.
Pequea (Small)
Toda Historia de Usuario debe ser lo suficientemente pequea de forma tal que permita ser estimada por el Equipo de Desarrollo. Algunos Equipos fijan el tamao de una Historia de usuario como no ms de dos semanas de una persona. Si bien no es una medida explcita, tener entre 4 y 6 Historias de Usuario por Sprint es una buena seal de tamao. Las descripciones de las Historias de Usuario tambin deberan ser pequeas, y escribirlas en fichas pequeas ayuda a que eso suceda.
Verificable (Testable)
Una buena Historia de Usuario es Verificable. Se espera que el Product Owner no solo pueda describir la funcionalidad que necesita, sino que tambin logre verificarla (probarla). Algunos Equipos acostumbran solicitar los criterios de aceptacin antes de desarrollar la Historia de Usuario. Si el Product Owner no sabe cmo verificar una Historia de Usuario o no puede enumerar los criterios de aceptacin, esto podra ser una seal de que la Historia en cuestin no est siendo lo
10 User Stories Applied, Mike Cohn, 2003
Pgina 33
Criterio de Listo
Tambin conocido como READY Criteria, es el conjunto de caractersticas que una Historia de Usuario debe cumplir para que el Equipo de Desarrollo pueda comprometerse a su entrega, es decir, incluirla en un Sprint Backlog. Un tpico criterio de Listo podra ser: La Historia de Usuario debe ser INVEST Todos sus pre-requisitos estn resueltos (ej: dependencias con otros Equipos)
Criterio de Terminado
Tambin conocido como DONE Criteria, es el conjunto de caractersticas que una Historia de Usuario debe cumplir para que el equipo de desarrollo pueda determinar si ha terminado de trabajar en ella. Un tpico criterio de Terminado podra ser: Todos los criterios de aceptacin funcionan correctamente Todos los archivos fuentes estn en el repositorio de cdigo fuente y el build se ejecut exitosamente En el caso de Product Owners muy exigentes: El Product Owner dio su visto bueno de la funcionalidad construida antes de llegar a la Review Meeting.
Pgina 34
Anlisis, Estimacin y Planificacin gil con Scrum ms personas. - Las promociones son opcionales. - Las fechas de SEB y EB deben ser anteriores a la fecha del evento - Por defecto SEB=30 das antes, EB=10 das antes, 2personas=-10%, 3+ personas=-15%. - Un evento puede ser pblico o privado 2 Comercial Ver listado de eventos confirmados No superponer eventos - Mostrar Nombre, Ciudad y Pas - Muestra solo los futuros - Ordenado por fecha ascendente - Permite modificar todos los campos.
Comercial
4 5
Comercial Comercial
Que los - Solo se listan los eventos interesados pblicos puedan verlos - Listado por fechas (a futuro) - Agrupados por Ciudad
Comercial
Publicar los detalles Que los - Accesible desde el listado de de cada evento interesados eventos puedan verlos - Muestra los detalles de cada evento: Nombre, Fecha, Descripcin, Destinatarios, Programa, Instructor, Lugar, Ciudad, Pas, Precios y Promociones Generar un texto Pegarlo en los - Debe generarlo agrupando con fechas y valores e-mail de por ciudad, cursos, fechas y respuesta precios de cada uno. Dashboard de inscripciones a cursos Conocer el estado de completitud de cada curso - Muestra los eventos con colores: Rojo, Naranja, Amarillo y Verde. Los criterios son: Un evento debe estar al 50% al menos 15 das antes
Comercial
Comercial
Pgina 35
Anlisis, Estimacin y Planificacin gil con Scrum Un evento debe estar al 75% al menos una semana antes Un evento debe estar al 100% dos das antes - La varianza sobre esos nmeros alteran los colores: Menos del 50% (Rojo) Del 50% al 75% (Naranja) Del 75% al 90% (Amarillo) Del 90% al 100% (Verde) 9 Interesado Pre-Inscribirme Iniciar la Debe solicitar Nombre*, reserva de mi Apellido*, Telfono de vacante Contacto*, Email*, Empresa/Carrera, Rol y Solicitar confirmacin de que el asistente llevar notebook* si el curso lo requiere. * = obligatorio, el resto, opcional. Poder reaccionar en tiempo real frente a cada una El email debe ser enviado a una direccin de correo configurable indicando los datos de contacto de la persona que realiz la inscripcin. Un pre-inscripto puede conviertirse en inscripto sin haber realizado el pago. Listar los eventos con pagos pendientes y un detalle de las pre-inscripciones pendientes de pago por cada evento.
10
Comercial
11
Comercial
Confirmar la Financiar inscripcin sin pago ciertas (pago a cuenta) vacantes Conocer los Pagos Pendientes por evento Pagar en efectivo Realizar el seguimiento de los pagos
12
Comercial
13
Interesado
Confirmar mi Una vez que un interesado se vacante pre-inscribe debe proporcionarle los tados para poder pagar en efectivo. Confirmar mi Una vez que un interesado se vacante pre-inscribe debe proporcionarle los tados para poder pagar con cheque. Confirmar mi Una vez que un interesado se vacante pre-inscribe debe proporcionarle los tados para
14
Interesado
15
Interesado
Pgina 36
Anlisis, Estimacin y Planificacin gil con Scrum poder pagar por transferencia bancaria. 16 Comercial Registrar los Pagos Realizar el seguimiento de los pagos Una pre-inscripcin puede convertirse en inscripcin registrando el pago realizado (fecha, monto y forma de pago). Cada vez que una preinscripcin se convierte en inscripcin, se debe enviar un e-mail a una casilla configurable. Criterios de Aceptacin - Si el evento requiere un examen final, el alumno debera poder responder las preguntas on-line (solo multiple-choice) - Se deben poder administrar exmenes, preguntas y sus posibles respuestas. - Se asigna un tipo de examen a los alumnos seleccionados de un determinado evento. Se avisar en pantalla
17
Gestor de Cobranzas
Release 2 - Toma de evaluaciones on-line Prioridad Como ... 18 Alumno Necesito ... Para ... Responder Rendir el Preguntas Multiple- examen final Choice
19
Alumno
20
Instructor
- Todo examen debe tener un puntaje mnimo requerido (expresado en porcentaje) - Siendo preguntas multiplechoice, las correctas suman un punto, las incorrectas no suman ni restan.
21
Alumno
Recibir una notificacin del resultado por email Generar mi certificado de evaluacin aprobada
Para conocer - Se notifica por e-mail al el resultado alumno tan pronto finalice el de mi examen examen. Presentarlo donde sea necesario - El alumno podr bajar un PDF son la constancia de su aprobacin de examen
22
Alumno
Pgina 37
Anlisis, Estimacin y Planificacin gil con Scrum 23 Instructor Conocer los recuperatorios pendientes Conocer las preguntas erradas Hacer seguimiento con los alumnos Con el fin de saber dnde he fallado mi evaluacin Con el fin de aprobar el examen - Para un determinado evento, se listarn los exmenes y recuperatorios pendientes. - Se listarn las preguntas correctas con su explicacin y las preguntas erradas, sin explicacin. - Solo se realizar la respuesta de las preguntas erradas - Al finalizar el recuperatorio, aplican las mismas acciones que para un examen estndar: aviso de finalizacin, correccin automtica y aviso de resultado Criterios de Aceptacin - Al inscribirse, el alumno recibe por e-mail un instructivo sobre los pasos a seguir para efectivizar su inscripcin. - Ciertas preguntas debern solicitar un texto libre como respuesta. - Se debern listar las evaluaciones con preguntas a desarrollar que estn pendientes de correccin
24
Alumno
25
Alumno
Release 3 - Pre-Inscripcin Individual y Correccin de Exmenes a Desarrollar Prioridad Como ... 26 Interesado Necesito ... Recibir un aviso de Pre-Inscripcin y pasos siguientes Para ... Poder confirmar mi preinscripcin Poder rendir el examen Poder corregir evaluaciones
27
Alumno
Responder Preguntas a Desarrollar Listado de evaluaciones a corregir Correccin manual de preguntas a desarrollar Feedback de correccin
28
Instructor
29
Instructor
Poder calificar - Las respuestas de texto libre a los alumnos debern ser corregidas manualmente por el instructor Poder recomendar o sugerir acciones a los alumnos Para ... Inscribir - Al finalizar la correccin, el instructor podr dar feedback de la evaluacin por medio de un campo de texto libre.
30
Instructor
Release 4 - Pre-Inscripcin Corporativa y Seguimiento de Pagos Prioridad Como ... 31 Empresa Necesito ... Realizar una PreCriterios de Aceptacin Al inscribir se deber solicitar
Pgina 38
Anlisis, Estimacin y Planificacin gil con Scrum Inscripcin corporativa varios responsable (mismos campos empleados de que pre-inscripcin) y una sola vez cantidad de inscriptos (hasta 10). - Luego, cada inscripto deber tener Nombre, Apellido, Email y Nmero de Contacto. Alertarme sobre la proximidad del evento e informarme sobre los pormenores - Enviado por e-mail al e-mail de contacto de cada inscripto (copiando a los responsables de inscripciones corporativas una sola vez). - Recordar horario, lugar y requisitos. Solicitar aviso en el caso de que el evento tenga almuerzo y el interesado tenga restricciones alimenticias. - Se debe enviar dos das antes del evento. A definir - Se enviar un recordatorio de pago pendiente 48hs luego de la pre-inscripcin, avisando que la misma vence en 24hs hbiles. - Con cada Pre-Inscripcin se solicitar informacin de facturacin: Razn Social, Domicilio Fiscal, CUIT, Situacin frente al IVA.
32
Interesado
33 34
Responsable Ser notificado sobre A definir Logstico cupo alcanzado Interesado Ser notificado sobre Poder el pago pendiente confirmar mi vacante a tiempo Poder emitir las facturas correctament e
35
36 37
Interesado Interesado
Confirmar mi - El sistema deber proveer Vacante un link de pago de PayPal. Confirmar mi - El sistema deber proveer Vacante un link de pago de MercadoPago. Para ... Criterios de Aceptacin - ABM de Tipos de Evento. Solo Nombre y Descripcin. - Uno por cada tipo de evento
Release 5 - Logstica de Eventos Prioridad Como ... 38 Necesito ... Responsable Gestionar Crear de Logstica diferentes Tipos de checklists de Eventos cada tipo Responsable Gestionar Que cada Pgina 39
39
Anlisis, Estimacin y Planificacin gil con Scrum de Logstica diferentes modelos evento pueda de Checklist instancias su checklist en base a un modelo prearmado 40 Responsable Gestionar de Logstica diferentes listados de Materiales Responsable Hacer el de Logstica seguimiento de cada Checklist de Evento Saber qu se - Un listado de materiales por debe comprar cada tipo de evento. por cada evento Que el mismo se realice de forma eficiente - Poder marcar como cumplido los hitos de un checklist y dejar anotaciones (opcionales). - se podrn agregar o eliminar hitos de un checklist de evento particular.
41
42
Responsable Modificar los datos Tener de Logstica de un Checklist flexibilidad a la hora de gesitonar un evento Responsable Ser notificado al de Logstica modificar un checklist Para estar al tanto de las modificacione s
43
- Se enviar un e-mail al responsable de logstica con vcada modificacin de checklist (no incluye al avance del checklist de evento).
44
Para asegurar - Listar los eventos y el el correcto porcentaje de avance de cada seguimiento checklist de los checklists - Detallar el estado de cada checklist con hitos cumplidos y pendientes y fechas esperadas por cada uno.
45
Responsable Detalle de checklist Para asegurar de Logstica de evento el correcto seguimiento de los checklists Necesito ... Crear evento tentativo Para ...
Release 6 - Eventos Tentativos Prioridad Como ... 46 Partner Comercial Comercial Criterios de Aceptacin Proponer la A definir realizacin del mismo A definir
47
Ser notificado de un Realizar las nuevo evento acciones tentativo necesarias Pgina 40
Anlisis, Estimacin y Planificacin gil con Scrum para la confirmacin del mismo 48 Partner Comercial Consultar agenda de eventos Conocer las A definir fechas y disponibilidad para crear eventos tentativos Realizar A definir correcciones o reprogramar eventos tentativos Dejar de seguirlo Tener un panorama de la planificacin futura de eventos A definir A definir
49
Partner Comercial
50 51
52
Comercial
Transformarl A definir o en un evento agendado y publicarlo. Comenzar a A definir comercializarl o Tener un panorama de la planificacin futura de eventos Evaluar la informacin con mayor detalle Asistir varios a un mismo A definir
53
Ser notificado sobre la confirmacin de evento Ver listado de eventos tentativos agrupados por Partner Comercial y/o Regin Obtener un brochure de cada evento Pre-Inscribir un grupo de personas
54
55
Interesado
A definir
56
Interesado
A definir
Pgina 41
Anlisis, Estimacin y Planificacin gil con Scrum evento sin ser una organizacin Release 7 Integracin con sistemas Externos Prioridad Como ... 57 58 Partner Comercial Comercial Necesito ... Consultar agenda de instructores Para ... Criterios de Aceptacin Conocer su A definir disponibilidad A definir
Registrar evento Publicar su tentativo en Google existencia a Calendar todos los suscriptos a dicho calendario Registrar evento confirmado en Google Calendar Publicar su existencia a todos los suscriptos a dicho calendario
59
Comercial
A definir
60
Responsable Crear balance Comenzar a Financiero contable del evento hacer el en Google Docs seguimiento financiero de un evento Comercial
A definir
61
Publicar Evento en Dar a conocer A definir Twitter, Facebook & su existencia LinkedIn Difundir va Mailchimp Difundir en forma masiva Difundir a leads comerciales Dar a conocer A definir su existencia Dar a conocer A definir su existencia Dar a conocer A definir su existencia A definir
62 63 64 65
Administrati La generacin de Registrar el vo asiento contable de cobro con Cobro menor esfuerzo Administrati Generar e Imprimir Reducir mi vo Factura esfuerzo y probabilidad de error Administrati Ver listado de Conocer las Pgina 42
66
A definir
67
A definir
Anlisis, Estimacin y Planificacin gil con Scrum vo 68 Facturas facturas generadas Realizar el cobro de un evento Reducir mi esfuerzo y probabilidad de error A definir
69
A definir
Pgina 43
Estimaciones giles
Cono de la Incertidumbre
En gestin de proyectos, el cono de la incertidumbre describe la evolucin de la incertidumbre durante la ejecucin de un proyecto. Al comienzo, poco es conocido sobre el producto y el resultado del trabajo, por tanto las estimaciones estn sujetas a una gran incertidumbre. A medida que avanzamos en el proyecto obtenemos mayor conocimiento sobre el entorno, la necesidad de negocio, el producto y el proyecto mismo. Esto causa que la incertidumbre tienda a reducirse progresivamente hasta desaparecer, esto ocurre generalmente hacia el final del proyecto: no se alcanza una incertidumbre del 0% sino hasta haber finalizado. Muchos ambientes cambian tan lentamente que la incertidumbre reinante puede ser considerada constante (evolucin esttica) durante la duracin de un proyecto tpico. En estos contextos la gestin tradicional de proyectos hace hincapi en lograr un entendimiento total mediante el anlisis y la planificacin detallada antes de comenzar a trabajar. De esta manera los riesgos son reducidos a un nivel en el que pueden ser gestionados cmodamente. En estas situaciones, el nivel de incertidumbre decrece rpidamente al comienzo y se mantiene prcticamente constante (y bajo) durante la ejecucin del proyecto.
Fig. 2: Cono de la Incertidumbre en un contexto estable. El contexto del software, por el contrario, es un contexto altamente voltil donde hay muchas fuerzas externas actuando para incrementar el nivel de incertidumbre, como lo son los cambios producidos en el contexto de negocio, los cambios tecnolgicos y aquellos surgidos por la mera existencia del producto construido que acontecen durante la ejecucin del proyecto. Debido a esta razn, se requiere trabajar activa y continuamente en reducir el nivel de incertidumbre. Investigaciones han demostrado que en la industria del software, el nivel de incertidumbre al
Pgina 44
Anlisis, Estimacin y Planificacin gil con Scrum comienzo de un proyecto es del +/- 400% 11, esta incertidumbre tiende a decrementarse durante la evolucin del proyecto, pero sin garantas de ello.
Pgina 45
Anlisis, Estimacin y Planificacin gil con Scrum 1. Alto Nivel: EPIC (bloque funcional) estimada en Tamao (XS, S, M, L, XL) 2. Nivel Medio: Historia de Usuario (funcionalidad) estimada en Puntos de Historia (Sucesin de Fibonacci13) 3. Bajo Nivel: tareas o actividades estimadas en horas, preferiblemente menos de un da. Al comenzar el proyecto, nuestro Product Backlog se compone de bloques funcionales que podemos estimar segn sus tamaos: XS Muy Pequeo S Pequeo M Medio L Grande XL Muy Grande
Esto nos permitir tener una primera aproximacin a la problemtica de negocio y a las caractersticas del producto que se desea construir. Conociendo las prioridades de dichos bloques funcionales, se toman los de mayor prioridad y se descomponen en funcionalidades ms especficas, logrando de esa manera PBIs de menor nivel, llamados Historias de Usuario o User Stories. A las Historias de Usuario las estimaremos utilizando la sucesin Fibonacci: 0, 1, 2, 3, 5, 8, 13, 21, 40, 100 14 Para estimar las Historias de Usuario utilizamos una tcnica comparativa llamada Estimacin Relativa. Esto significa asignar uno de los nmeros de la serie de Fibonacci a cada una de las Historias de Usuario. De esta manera, aquellas historias que tengan el nmero 2 requerirn aproximadamente el doble de esfuerzo que las que lleven el nmero 1, aquellas que lleven el nmero 3 requerirn aproximadamente el triple de esfuerzo de las que lleven el nmero 1, una vez y media el esfuerzo de las que lleven el nmero 2, etc. Finalmente llegamos al nivel ms bajo de estimacin: la estimacin en horas. Solo aplica a las tareas o actividades de las Historias de Usuario que han sido seleccionadas para formar parte de un determinado Sprint. En la reunin de planificacin de dicho Sprint, estas Historias de Usuario son divididas por el Equipo en tareas o actividades y a su vez, las tareas o actividades, estimadas en horas. Lo importante es que la estimacin en horas solo se realiza para un las actividades de un determinado Sprint. Autores como Jeff Sutherland 15 expresan no estar de acuerdo con estimar a este bajo nivel, mientras otros como Mike Cohn 16 promueven su utilizacin. Esta situacin da origen a dos modelos de planificacin de Sprint: la planificacin basada en velocidad (velocity-based planning) donde el Equipo se compromete a realizar tantos User Stories de modo que sumen una estimacin en Puntos de Historia igual a la velocidad del Equipo, por un lado, y la planificacin basada en compromisos (commitment-based planning) donde sin importar la velocidad, el Equipo revala las Historias de Usuario y se compromete en funcin de la
13 http://es.wikipedia.org/wiki/Sucesi%C3%B3n_de_Fibonacci 14 Con una leve deformacin ya que se interrumpe la sucesin en el nmero 21 y se agregan luego los nmeros 40 y 100. 15 Jeff Sutherland (2010),Story Points: Why are they better than hours?, http://scrum.jeffsutherland.com/2010/04/story-points-why-are-they-better-than.html 16 Mike Cohn (2007), Why I Don't use Story Points for Sprint Planning, http://blog.mountaingoatsoftware.com
Pgina 46
Anlisis, Estimacin y Planificacin gil con Scrum estimacin de cada una de ellas, por el otro. En este ltimo caso, las Historias de Usuario involucradas deberan sumar una cantidad de Puntos de Historia aproximada a la Velocidad del Equipo. Dice Mike Cohn con respecto a la utilizacin de la Velocidad del Equipo como herramienta de planificacin: Supongamos que un equipo de bsquetbol est en la mitad de su temporada. Han anotado un promedio de 98 puntos por cada partido de los 41 partidos jugados hasta el momento. Sera conveniente para ellos decir "Nosotros anotaremos un promedio de 98 puntos por partido por el resto de la temporada." Pero no deberan nunca decir antes de cualquier partido "Nuestro promedio es de 98 puntos, por lo que se anotarn 98 puntos esta noche." Es por eso que afirmo que la velocidad es un predictor til para el largo plazo, pero no lo es para el corto plazo. 17
Basados en el Mtodo Delphi, Barry Boehm y John Farquhar elaboraron en 1970 la variante conocida desde entonces como Wideband Delphi. Se trata de una tcnica basada en la obtencin de consensos para la estimacin de esfuerzos, llamada wideband porque a diferencia del conocido mtodo Delphi, esta tcnica requiere de un mayor grado de interaccin y discusin entre los participantes. Wideband Delphi fue popularizado en 1981 por Boehm en su libro Software Engineering Economics donde presenta los siguientes pasos para su ejecucin: 1. Un coordinador presenta a cada experto una especificacin y un formulario de estimacin. 2. El coordinador convoca a una reunin de grupo en la que los expertos debaten temas de estimacin. 3. Los expertos llenan los formularios de forma annima.
17 Ibid. 18 La Corporacin RAND (Research And Development) es un laboratorio de ideas (think tank) norteamericano formado, en un primer momento, para ofrecer investigacin y anlisis a las fuerzas armadas norteamericanas. (fuente: Wikipedia)
Pgina 47
Anlisis, Estimacin y Planificacin gil con Scrum 4. El coordinador prepara y distribuye un resumen de las estimaciones. 5. El coordinador convoca a una reunin de grupo, centrndose especficamente en aquellas estimaciones donde los expertos varan ampliamente. 6. Los expertos completan los formularios una vez ms de forma annima, y los pasos 4 a 6 son repetidos para tantas rondas como sea necesario.
Planning Poker
James Greening present en su paper en 2002 llamado Planning Poker (o cmo evitar anlisis parlisis en la planificacin de liberaciones)19 donde se basa en el mtodo Wideband Delphi para realizar la estimacin de requerimientos (o User Stories) de forma colaborativa en un Equipo. La tcnica consiste en que cada integrante del Equipo posee en sus manos una baraja de cartas con los nmeros correspondientes a la sucesin de Fibonacci20 y se siguen los siguientes pasos: 1. El responsable del negocio presenta una historia de usuario para ser estimada. 2. Todos los participantes proceden a realizar su estimacin en forma secreta, sin influenciar al resto del Equipo, poniendo su carta elegida boca abajo sobre la mesa. 3. Una vez que todos los integrantes han estimado, se dan vuelta las cartas y se discuten principalmente los extremos. 4. Al finalizar la discusin se levantan las cartas y se vuelve a estimar, esta vez con mayor informacin que la que se tena previamente. 5. Las rondas siguen hasta que se logra consenso en el Equipo y luego se contina desde el punto nmero uno con una nueva historia de usuario. Este mtodo fue popularizado en 2005 por Mike Cohn en su libro Agile Estimating and Planning.
Pgina 48
Anlisis, Estimacin y Planificacin gil con Scrum 2. Independencia: las opiniones de los participantes no deberan estar influenciadas por las opiniones de los que los rodean, con el objetivo de evitar el Pensamiento de Grupo21. 3. Agregacin: El grupo debera tener la capacidad de sumar las opiniones individuales y no simplemente votar por la mejor opcin.
21 http://es.wikipedia.org/wiki/Pensamiento_de_grupo 22 http://en.wikipedia.org/wiki/Analysis_paralysis
Pgina 49
Release Plan
A continuacin se presentan las Historias de Usuario estimadas por el Equipo de Desarrollo, utilizando Planning Poker con Fibonacci y estimando una velocidad de Iteracin de 15 puntos de historia con una duracin de dos semanas: Release 1 - Comercializar Eventos Prioridad Como ... 1 2 3 4 5 6 Comercial Comercial Comercial Comercial Comercial Comercial Necesito ... Crear un evento confirmado Ver listado de eventos confirmados Modificar evento confirmado Cancelar evento confirmado Para ... Hacer el seguimiento del mismo Estimacin 3 Sprint 1 Velocidad: 15 puntos
Listar los eventos en un Que los interesados sitio web puedan verlos Publicar los detalles de cada evento Generar un texto con fechas y valores Pre-Inscribirme Dashboard de inscripciones a cursos Que los interesados puedan verlos
Sprint 2 Velocidad: 15 puntos 7 9 8 Comercial Interesado Comercial Pegarlo en los e-mail de 5 respuesta Iniciar la reserva de mi 2 vacante Conocer el estado de completitud de cada curso Poder reaccionar en tiempo real frente a cada una 8
11 12 13 14
Confirmar la inscripcin Financiar ciertas sin pago (pago a cuenta) vacantes Conocer los Pagos Pendientes por evento Pagar en efectivo Pagar con Cheque
Pgina 50
Anlisis, Estimacin y Planificacin gil con Scrum 15 16 17 Interesado Comercial Gestor de Cobranzas Pagar por Transferencia Confirmar mi vacante Bancaria Registrar los Pagos 1
Ser notificado del cobro Realizar el seguimiento 2 de un evento de los pagos Necesito ... Responder Preguntas Multiple-Choice Para ... Rendir el examen final Estimacin 8 2 5
Release 2 - Toma de evaluaciones on-line Prioridad Como ... 18 19 20 Alumno Alumno Instructor Sprint 4 Velocidad: 15 puntos
Un aviso de Finalizacin Para saber que he de Evaluacin finalizado Que se realice la correccin automtica de preguntas multiplechoice Reducir mi carga de trabajo post-evento
Sprint 5 Velocidad: 15 puntos 21 Alumno Recibir una notificacin Para conocer el del resultado por e-mail resultado de mi examen Generar mi certificado Presentarlo donde sea de evaluacin aprobada necesario Conocer los recuperatorios pendientes 2
22 23
Alumno Instructor
25
Alumno
Recuperar las preguntas Con el fin de aprobar el 5 erradas examen Conocer las preguntas erradas Con el fin de saber dnde he fallado mi evaluacin Para ... Poder confirmar mi pre-inscripcin 5
Release 3 - Pre-Inscripcin Individual y Correccin de Exmenes a Desarrollar Prioridad Como ... 26 Interesado Necesito ... Recibir un aviso de PreInscripcin y pasos siguientes Responder Preguntas a Desarrollar Estimacin 2
27
Alumno
Pgina 51
Anlisis, Estimacin y Planificacin gil con Scrum Sprint 7 Velocidad: 16 puntos 28 29 30 Instructor Instructor Instructor Listado de evaluaciones a corregir Correccin manual de preguntas a desarrollar Feedback de correccin Poder corregir evaluaciones Poder calificar a los alumnos Poder recomendar o sugerir acciones a los alumnos Para ... 3 3 2
Release 4 - Pre-Inscripcin Corporativa y Seguimiento de Pagos Prioridad Como ... 31 Empresa Necesito ... Realizar una PreInscripcin corporativa Estimacin Inscribir varios 8 empleados de una sola vez
Sprint 8 Velocidad: 15 puntos 32 Interesado Recibir un Recordatorio Alertarme sobre la 3 de Evento proximidad del evento e informarme sobre los pormenores A definir Poder confirmar mi vacante a tiempo 2 3
33 34 35 36 37
Responsable Ser notificado sobre Logstico cupo alcanzado Interesado Ser notificado sobre el pago pendiente
Administrati Obtener la informacin vo de facturacin Interesado Interesado Pagar por PayPal Pagar por MercadoPago Necesito ...
Poder emitir las 2 facturas correctamente Confirmar mi Vacante Confirmar mi Vacante Para ... Crear checklists de cada tipo 2 3 Estimacin 2
Release 5 - Logstica de Eventos Prioridad Como ... 38 39 Sprint 9 Velocidad: 15 puntos Responsable Gestionar diferentes de Logstica Tipos de Eventos Responsable Gestionar diferentes de Logstica modelos de Checklist
Que cada evento pueda 8 instancias su checklist en base a un modelo prearmado Saber qu se debe comprar por cada evento 5
40
Anlisis, Estimacin y Planificacin gil con Scrum 41 Responsable Hacer el seguimiento de Que el mismo se de Logstica cada Checklist de Evento realice de forma eficiente Responsable Modificar los datos de un Tener flexibilidad a la de Logstica Checklist hora de gesitonar un evento Responsable Ser notificado al de Logstica modificar un checklist Para estar al tanto de las modificaciones 5
42
43
Sprint 11 Velocidad: 15 puntos 44 Responsable Conocer los eventos y el Para asegurar el de Logstica progreso de checklist de correcto seguimiento cada uno de los checklists Responsable Detalle de checklist de de Logstica evento Para asegurar el correcto seguimiento de los checklists Para ... 3
45
Release 6 - Eventos Tentativos Prioridad Como ... 46 47 Partner Comercial Comercial Necesito ... Crear evento tentativo Ser notificado de un nuevo evento tentativo Estimacin Proponer la realizacin 3 del mismo Realizar las acciones necesarias para la confirmacin del mismo Conocer las fechas y disponibilidad para crear eventos tentativos 2
48
Partner Comercial
49
Partner Comercial
Sprint 12 Velocidad: 16 puntos 50 51 Partner Comercial Comercial Cancelar evento tentativo Ver listado de eventos tentativos Confirmar evento tentativo
Tener un panorama de 2 la planificacin futura de eventos Transformarlo en un evento agendado y publicarlo. Comenzar a comercializarlo 2
52
Comercial
53
Anlisis, Estimacin y Planificacin gil con Scrum Comercial / Instructor 54 Comercial Ver listado de eventos Tener un panorama de 3 tentativos agrupados por la planificacin futura Partner Comercial y/o de eventos Regin Obtener un brochure de cada evento Evaluar la informacin 5 con mayor detalle 8
55
Interesado
Sprint 13 Velocidad: 16 puntos 56 Interesado Pre-Inscribir un grupo de Asistir varios a un personas mismo evento sin ser una organizacin Necesito ... Consultar agenda de instructores Registrar evento tentativo en Google Calendar Registrar evento confirmado en Google Calendar Para ... Conocer su disponibilidad
Release 7 Integracin con sistemas Externos Prioridad Como ... 57 58 Partner Comercial Comercial Estimacin 3
Publicar su existencia a 5 todos los suscriptos a dicho calendario Publicar su existencia a 5 todos los suscriptos a dicho calendario Comenzar a hacer el 5 seguimiento financiero de un evento Dar a conocer su existencia 5
60
Responsable Crear balance contable Financiero del evento en Google Docs Comercial Publicar Evento en Twitter, Facebook & LinkedIn Difundir va Mailchimp
61
Difundir en forma masiva Dar a conocer su existencia Difundir a leads comerciales Dar a conocer su existencia Registrar el cobro con menor esfuerzo
Pgina 54
Anlisis, Estimacin y Planificacin gil con Scrum 66 67 Administrati Generar e Imprimir vo Factura Administrati Ver listado de Facturas vo Administrati Entregar Factura vo Administrati Asentar Factura en vo Contabilidad Reducir mi esfuerzo y probabilidad de error Conocer las facturas generadas 5 3
Sprint 17 Velocidad: 11 puntos 68 69 Realizar el cobro de un 3 evento Reducir mi esfuerzo y probabilidad de error 8
Sprint 0
El Sprint 0 (cero) es una aproximacin que muchos autores utilizan para realizar todas aquellas tareas necesarias para hacer el setup de un proyecto de desarrollo. Esto incluye pero no se limita nicamente a configurar los entornos de desarrollo, realizar el release plan, disear la arquitectura de la aplicacin a alto nivel, configurar el repositorio de cdigo fuente, etc. En nuestro caso, el Sprint 0 tendr una duracin de 2 semanas, aunque podra ser diferente a los Sprints de desarrollo.
Release 3 - Pre-Inscripcin Individual y Correccin de Exmenes a Desarrollar Release 4 - Pre-Inscripcin Corporativa y Seguimiento de Pagos
Pgina 55
Anlisis, Estimacin y Planificacin gil con Scrum Release 5 - Logstica de Eventos Sprint 9 Sprint 10 Sprint 11 Release 6 - Eventos Tentativos Sprint 12 Sprint 13 Sprint 14 Sprint 15 Sprint 16 Sprint 17 2 semanas 2 semanas 2 semanas 2 semanas 2 semanas 2 semanas 19-Mar-2012 2-Abr-2012 16-Abr-2012 30-Abr-2012 14-May-2012 28-May-2012 30-mar-2012 13-Abr-2012 27-Abr-2012 11-May-2012 25-May-2012 8-Jun-2012 2 semanas 2 semanas 2 semanas 6-Feb-2012 20-Feb-2012 5-Mar-2012 17-Feb-2012 2-Mar-2012 16-mar-2012
Pgina 56
Pgina 57
Pgina 58