Presentación del meetup de Madrid Ágil del 29 de Enero de 2014.
Tenéis una versión reducida en: http://www.slideshare.net/micaelgallego/la-priorizacin-de-historias-de-usuario-versin-reducida
La priorización de historias de usuario (versión reducida)Micael Gallego
Presentación del meetup de Madrid Ágil del 29 de Enero de 2014.
Tenéis una versión ampliada en: https://www.slideshare.net/micaelgallego/la-priorizacin-de-historias-de-usuario2
Apuntes del tema 2 de la asignatura "Gestión y dirección de proyectos" del Grado de Diseño y desarrollo de Videojuegos (Ferraz) de la Universidad Rey Juan Carlos.
Objetivos:
* Planificar los costes de un proyecto
* Estimar los costes de un proyecto
* Conocer las principales herramientas de estimación de costes
* Determinar el presupuesto de un proyecto
* Conocer el PERT/Cost
La priorización de historias de usuario (versión reducida)Micael Gallego
Presentación del meetup de Madrid Ágil del 29 de Enero de 2014.
Tenéis una versión ampliada en: https://www.slideshare.net/micaelgallego/la-priorizacin-de-historias-de-usuario2
Apuntes del tema 2 de la asignatura "Gestión y dirección de proyectos" del Grado de Diseño y desarrollo de Videojuegos (Ferraz) de la Universidad Rey Juan Carlos.
Objetivos:
* Planificar los costes de un proyecto
* Estimar los costes de un proyecto
* Conocer las principales herramientas de estimación de costes
* Determinar el presupuesto de un proyecto
* Conocer el PERT/Cost
En esta nueva entrega del curso de Interacción Persona-Ordenador se explica una de las fases más características de todo modelo de Diseño Centrado en el Usuario, el prototipado.
Aquí podremos ver el gran abanico de técnicas disponibles así cómo muchos ejemplos prácticos.
Plantilla word para la toma de requisitos en proyectos de desarrollo de software. Independiente de la tecnología o el lenguaje de desarrollo .net o java. Especificación de Requisitos Software en la fase de análisis funcional. compatible con cualquier metodología de desarrollo, metrica 3, cascada, scrum, agile.
Basada en el ieee830.
Una presentación del marco de trabajo de Scrum. Apunta a establecer en breves imágenes los roles, procesos y artefactos necesarios para la agilidad de proyectos de desarrollo de software o tecnologías de información.
Comencemos definiendo lo que significa esto de "DevOps" o “DevSecOps” para su organización y como encaja en el contexto de la agilidad empresarial. ¿Cómo explicas los beneficios? ¿Cómo comienzas? Únanse a este meetup para tener conversaciones con Javier Sanchez, Alex Canizales y Arlen Espinosa sobre la transformación DevOps empresarial en la vida real.
Transformar y modernizar las organizaciones de TI de grandes empresas es un objetivo para muchos de nosotros. Vamos a hablar sobre cómo abordar un viaje de DevOps y trazar un camino hacia la adopción exitosa. Cubriremos las consideraciones de principios, prácticas, arquitecturas, mapeo de la cadena de valor, herramientas “si también son importantes” y el cambio cultural necesario cuando una organización se enfrenta a una gran transformación DevOps.
http://www.agilisters.org/2018/04/la-transformacion-devops.html
SCRUM Framework de desarrollo ágil, Iterativo, dispuesto al cambio, que favorece la satisfacción del cliente y se basa en principios de inspección y adaptación
GRASP con PR para el SRFLP en el MAEB 2016Micael Gallego
Presentación sobre el Problema de la distribución de instalaciones en línea (SRFLP) en el MAEB 2016 dentro del CEDI 2016. Usamos un GRASP con Path Relinking que mejora los métodos del estado del arte
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserMicael Gallego
Slides de la charla en el MadridJUG sobre TypeScript y su parecido con Java. Se presentan los parecidos entre estos dos lenguajes y sus diferencias más notables.
En esta nueva entrega del curso de Interacción Persona-Ordenador se explica una de las fases más características de todo modelo de Diseño Centrado en el Usuario, el prototipado.
Aquí podremos ver el gran abanico de técnicas disponibles así cómo muchos ejemplos prácticos.
Plantilla word para la toma de requisitos en proyectos de desarrollo de software. Independiente de la tecnología o el lenguaje de desarrollo .net o java. Especificación de Requisitos Software en la fase de análisis funcional. compatible con cualquier metodología de desarrollo, metrica 3, cascada, scrum, agile.
Basada en el ieee830.
Una presentación del marco de trabajo de Scrum. Apunta a establecer en breves imágenes los roles, procesos y artefactos necesarios para la agilidad de proyectos de desarrollo de software o tecnologías de información.
Comencemos definiendo lo que significa esto de "DevOps" o “DevSecOps” para su organización y como encaja en el contexto de la agilidad empresarial. ¿Cómo explicas los beneficios? ¿Cómo comienzas? Únanse a este meetup para tener conversaciones con Javier Sanchez, Alex Canizales y Arlen Espinosa sobre la transformación DevOps empresarial en la vida real.
Transformar y modernizar las organizaciones de TI de grandes empresas es un objetivo para muchos de nosotros. Vamos a hablar sobre cómo abordar un viaje de DevOps y trazar un camino hacia la adopción exitosa. Cubriremos las consideraciones de principios, prácticas, arquitecturas, mapeo de la cadena de valor, herramientas “si también son importantes” y el cambio cultural necesario cuando una organización se enfrenta a una gran transformación DevOps.
http://www.agilisters.org/2018/04/la-transformacion-devops.html
SCRUM Framework de desarrollo ágil, Iterativo, dispuesto al cambio, que favorece la satisfacción del cliente y se basa en principios de inspección y adaptación
GRASP con PR para el SRFLP en el MAEB 2016Micael Gallego
Presentación sobre el Problema de la distribución de instalaciones en línea (SRFLP) en el MAEB 2016 dentro del CEDI 2016. Usamos un GRASP con Path Relinking que mejora los métodos del estado del arte
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserMicael Gallego
Slides de la charla en el MadridJUG sobre TypeScript y su parecido con Java. Se presentan los parecidos entre estos dos lenguajes y sus diferencias más notables.
Tema 1: ¿Qué es la web? (Desarrollo Aplicaciones Web)Micael Gallego
Esta presentación corresponde al "Tema 1: Introducción" de la asignatura "Desarrollo de Aplicaciones Web" de 3º del Grado en Ingeniería del Software de la ETSII en la Universidad Rey Juan Carlos.
El mundo real en el aula, con la ayuda del profesorMicael Gallego
Presentación en las Jornadas de Innovación y TIC Educativas: JITICE 2016 de la Universidad Rey Juan Carlos.
Aplicación de Project Based Learning y Flipped Classroom en la asignatura de "Desarrollo Web" en el Grado de Ingeniería del Software
En esta presentación se describe la tecnología WebRTC y el servidor de media Kurento. Se ilustran diferentes tipos de aplicaciones que pueden desarrollarse con esta tecnología, como un espejo mágico y un completo sistema de videoconferencia en grupo.
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casaMicael Gallego
Introducción a TypeScript desde el punto de vista de un desarrollador Java. TS en un lenguaje que transpila a JavaScript y se puede usar tanto para el desarrollo web front-end como para el backend con Node.js. Angular 2, el framework de moda, recomienda su uso.
Docker para Data Scientist - Master en Data Science URJCMicael Gallego
Presentación de Docker en el Master en Data Science de la URJC en la asignatura de Arquitecturas en la nube. En esta asignatura hablamos de AWS, Azure, Docker, Kubernetes, Mesos
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Micael Gallego
Esta presentación corresponde al "Tema 3: Despliegue de aplicaciones web" de la asignatura "Desarrollo de Aplicaciones Web" de 3º del Grado en Ingeniería del Software de la ETSII en la Universidad Rey Juan Carlos.
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?Micael Gallego
Charla del 12 de Marzo de 2014 en el MadridJUG, el grupo de usuarios de Java de Madrid. En ella se presentó JavaScript desde el punto de vista de un programador Java que se adentra en ese maravilloso mundo.
Slides del taller de Angular 2 realizado en el Campus Madrid de Google el 26 de Septiembre de 2016. Actualizado con la versión final de Angular 2.
Grabación del taller: https://www.youtube.com/watch?v=YVVjXpquzBE
Repositorio de código: https://github.com/codeurjc/ng2-campusmadrid
Using Docker to build and test in your laptop and JenkinsMicael Gallego
Docker is changing the way we create and deploy software. This presentation is a hands-on introduction to how to use docker to build and test software, in your laptop and in your Jenkins CI server
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Micael Gallego
Esta presentación corresponde al "Tema 2: Tecnologías de desarrollo web" de la asignatura "Desarrollo de Aplicaciones Web" de 3º del Grado en Ingeniería del Software de la ETSII en la Universidad Rey Juan Carlos.
La presentación cubre:
-Pequeño repaso sobre el desarrollo de software siguiendo la metodología waterfall
Agile y Lean Startup
- Los pilares de Scrum;
---- Roles: Product Owner, Scrum Master y Equipo de Desarrollo.
---- Eventos: Planning Meeting, Daily Stand-up, Grooming/Refinement, Demo y Retrospectiva.
---- Herramientas: Product Backlog, Historias de usuario, Definition of Done, Sprint Backlog, Sprint Dashboad.
---- Informes: Fin de Sprint, Inicio de Sprint, Burn-up/Burn-down, Informe de producto.
UXN 04-31 - El origen mítico del Product BacklogUX Nights
Víctor García habla sobre cómo las ceremonias, técnicas y herramientas relacionadas con la definición y refinamiento del Product Backlog no son explícitamente acotadas en el marco de definición de Scrum, siendo esto lo deseable.
En esta plática habla sobre Agile Inception, Refinement Product Backlog y otras técnicas relacionadas con el proceso de definición del Product Backlog, en donde la participación de profesionales de Experiencia de Usuario adquiere un protagonismo especial para apoyar al rol de Product Owner en su responsabilidad de ser “la voz del cliente”.
Cómo incluir videoconferencia en tu web usando la tecnología WebRTC y servidores de media open source y comerciales. Se explora en más detalle OpenVidu, una plataforma de videoconferencias con ediciones open source y comerciales
¿Cómo poner software de calidad en manos del usuario de forma rápida?Micael Gallego
Ciclo de vida del software, repositorios de código, análisis estático de código, pruebas software, integración continua, entrega continua, despliegue continuo, DevOps.
Curso de Angular 9 para desarrollo de aplicaciones SPA (Single Page Application).
● Tema 1: Introducción a Angular: TypeScript y herramientas
● Tema 2: Componentes
● Tema 3: REST y Servicios
● Tema 4: Aplicaciones multipágina: Router
● Tema 5: Librerías de componentes
● Tema 6: Publicación
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Micael Gallego
Una vista panorámica de la situación actual de la concurrencia y la asincronía. Comparando modelos de concurrencia y técnicas de programación asíncrona en lenguajes de programación como Java, C/C++ y JavaScript.
Dev Tools para Kubernetes - Codemotion 2019Micael Gallego
Charla impartida entre Pablo Chico y Micael Gallego en la que se muestran algunas herramientas para mejorar la experiencia de desarrollo de aplicaciones cloud native para Kubernetes. Concretamente, se presenta cómo okteto puede reducir el tiempo empleado en el ciclo de change, build, push, deploy de pods Java en Kubernetes usando la sincronización de ficheros.
Ejemplos de código en https://github.com/micaelgallego/k8s-dev-tools-codemo19
Testing cloud and kubernetes applications - ElasTestMicael Gallego
Kubernetes applications are complex distributed systems composed by several microservices. When some end to end test is failing in these kind of applications, root cause is difficult without good observability tools. In this presentation, several tools are presented to make easier root cause analysis of cloud and kubernetes applications. One of the most interesting ones is ElasTest, a platform that integrates several open source tools to provide observability to e2e testing of complex distributed systems.
Kubernetes es una plataforma cada vez más utilizada para poner en producción aplicaciones y servicios. Todos los grandes proveedores cloud la ofrecen y también puede instalarse on premises. En estas slides presentaremos los concetos básicos de la plataforma y aprenderemos a desplegar aplicaciones.
Las slides se han usado en un curso gratuito que ha sido grabado y publicado aquí: https://www.youtube.com/watch?v=5ovqsvqwtZM
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallosMicael Gallego
Kubernetes se ha convertido en una de las plataformas preferidas para la puesta en producción de aplicaciones escalables y tolerantes a fallos. Estas características son muy interesantes, pero suponen un reto para los sistemas de integración continua. ¿Cómo se prueba de forma automática que una aplicación se comporta como se espera cuando existen fallos o cuando la carga crece de forma importante? Y si no lo hace, cuál es el motivo? El Caos testing nos ayuda a simular fallos (matar contenedores, cortar la red...) pero además necesitamos monitorizar la aplicación para conocer su comportamiento interno. En la presentación damos un repaso por las técnicas y herramientas más utilizadas en este ámbito.
OpenVidu es una plataforma para incorporar videoconferencia y video streaming en tus aplicaciones web. Es muy fácil de usar y tienes multitud de ejemplos con diferentes tecnologías. Además, es open source. Qué más se puede pedir?
Estas slides son una presentación a las pruebas de software. Para qué sirven, qué tipos de pruebas existen, qué librerías, frameworks y herramientas se pueden utilizar para implemenar pruebas automatizadas, etc.
Node.js es una tecnología cada vez más popular para el desarrollo de servicios web. Grandes abanderados de Java como Netflix están usando cada vez más JavaScript para implementar parte de su backend. Pese a esta realidad, muchos javeros como yo no quieren tocar JavaScript ni con un palo, y cuando hay que hacerlo, sólo en el browser.
Si eres javero y no te gusta JavaScript, en esta presentación tendrás una visión general sobre cómo desarrollar servicios web con Node.js. Verás cómo con TypeScript, async/await y frameworks como Nest y TypeORM no echarás de menos a Spring y JPA. Pero lo mismo pasa al revés, verás cómo en Java también puedes implementar apps con los mismos principios reactivos y funcionales tan comunes en Node.js.
Testing fácil con Docker: Gestiona dependencias y unifica entornosMicael Gallego
Docker es una tecnología que permite empaquetar el software de forma que se pueda ejecutar de forma sencilla y rápida, sin instalación y en cualquier sistema operativo. Es como tener cualquier programa instalado en su propia máquina virtual, pero arranca mucho más rápido y consume menos recursos. Docker está cambiando la forma en la que desplegamos software, pero también está afectando al propio proceso de desarrollo y particularmente al testing.
En este taller pondremos en práctica cómo usar Docker para facilitar la implementación de diferentes tipos de tests y su ejecución tanto en el portátil como en el entorno de integración continua. Aunque las técnicas que veremos se podrán aplicar en cualquier lenguaje de programación, los ejemplos estarán basados en Java y en JavaScript.
Como ser mas productivo en el desarrollo de aplicacionesMicael Gallego
Charla impartida en la Universidad Politécnica de Madrid presentando algunas técnicas y herramientas para ser más productivo en el desarrollo de aplicaciones
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...Micael Gallego
En este artículo se describe una metodología docente que pretende emular en el aula el trabajo que los alumnos realizarán cuando finalicen sus estudios. Esta metodología combina el Aprendizaje Basado en Proyectos y la Clase Invertida y está diseñada para la asignatura de Desarrollo Web del Grado en Ingeniería del Software de la URJC. La metodología propuesta se aplicará en el curso 2016/2017 y supone una evolución de una metodología previa, aplicada en el curso 2015/2016 en la misma asignatura. Se espera que los cambios introducidos en esta nueva metodología mejoren los resultados obtenidos en el curso pasado.
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaAMADO SALVADOR
Descubra el catálogo completo de buzones BTV, una marca líder en la fabricación de buzones y cajas fuertes para los sectores de ferretería, bricolaje y seguridad. Como distribuidor oficial de BTV, Amado Salvador se enorgullece de presentar esta amplia selección de productos diseñados para satisfacer las necesidades de seguridad y funcionalidad en cualquier entorno.
Descubra una variedad de buzones residenciales, comerciales y corporativos, cada uno construido con los más altos estándares de calidad y durabilidad. Desde modelos clásicos hasta diseños modernos, los buzones BTV ofrecen una combinación perfecta de estilo y resistencia, garantizando la protección de su correspondencia en todo momento.
Amado Salvador, se compromete a ofrecer productos de primera clase respaldados por un servicio excepcional al cliente. Como distribuidor oficial de BTV, entendemos la importancia de la seguridad y la tranquilidad para nuestros clientes. Por eso, trabajamos en colaboración con BTV para brindarle acceso a los mejores productos del mercado.
Explore el catálogo de buzones ahora y encuentre la solución perfecta para sus necesidades de correo y seguridad. Confíe en Amado Salvador y BTV para proporcionarle buzones de calidad excepcional que cumplan y superen sus expectativas.
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaAMADO SALVADOR
Distribuidor Oficial Ariston en Valencia: Amado Salvador distribuidor autorizado de Ariston, una marca líder en soluciones de calefacción y agua caliente sanitaria. Amado Salvador pone a tu disposición el catálogo completo de Ariston, encontrarás una amplia gama de productos diseñados para satisfacer las necesidades de hogares y empresas.
Calderas de condensación: Ofrecemos calderas de alta eficiencia energética que aprovechan al máximo el calor residual. Estas calderas Ariston son ideales para reducir el consumo de gas y minimizar las emisiones de CO2.
Bombas de calor: Las bombas de calor Ariston son una opción sostenible para la producción de agua caliente. Utilizan energía renovable del aire o el suelo para calentar el agua, lo que las convierte en una alternativa ecológica.
Termos eléctricos: Los termos eléctricos, como el modelo VELIS TECH DRY (sustito de los modelos Duo de Fleck), ofrecen diseño moderno y conectividad WIFI. Son ideales para hogares donde se necesita agua caliente de forma rápida y eficiente.
Aerotermia: Si buscas una solución aún más sostenible, considera la aerotermia. Esta tecnología extrae energía del aire exterior para calentar tu hogar y agua. Además, puede ser elegible para subvenciones locales.
Amado Salvador es el distribuidor oficial de Ariston en Valencia. Explora el catálogo y descubre cómo mejorar la comodidad y la eficiencia en tu hogar o negocio.
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
2. Quién soy
Desarrollador desde hace unos años
He hecho mis pinitos como Scrum Máster:
Me
certifiqué con los mejores (Ariel Ber y Xavier
Quesada)
Jose Manuel Beas me ayudó con las historias de
usuario
Intento enseñar lo poco que sé a mis alumnos de
la Universidad Rey Juan Carlos y el IEBS
También monté una startup, pero salió mal ;)
@micael_gallego
micael.gallego@gmail.com
http://micaelgallego.github.io
5. ¿Cómo priorizar las historias de usuario?
Por qué priorizamos si todo es importante?
Qué factores hay que tener en cuenta para
priorizar?
Cómo combinamos esos factores?
Y las técnicas “clásicas”, se usan en agile?
Y hasta aquí puedo leer...
6. ¿Cómo priorizar las historias de usuario?
Por qué priorizamos si todo es importante?
Qué factores hay que tener en cuenta para
priorizar?
Cómo combinamos esos factores?
Y las técnicas “clásicas”, se usan en agile?
Y hasta aquí puedo leer...
11. ¿Cómo priorizar las historias de usuario?
Por qué priorizamos si todo es importante?
Qué factores hay que tener en cuenta para
priorizar?
Cómo combinamos esos factores?
Y las técnicas “clásicas”, se usan en agile?
Y hasta aquí puedo leer...
13. Por qué priorizamos si todo es
importante?
Historias de usuario
Las
historias de usuario describen las funcionalidades
de un sistema software que se pretende desarrollar
Kent Beck introdujo el término historias de usuario
como parte de Extreme Programming para fomentar
una manera informal de toma de requisitos
Bill Wake inventó el acrónimo INVEST para describir
las características que debe tener una buena historia
de usuario
Valiosa
Pequeña
Estimable
Negociable
Testeable
Independiente
14. Por qué priorizamos si todo es
importante?
Historias de usuario
Kent Beck
Mike Cohn
Bill Wake
15. Por qué priorizamos si todo es
importante?
Priorizamos para poder tener una mínima
planificación
Cuánto
tiempo tardaremos en tener listo un producto
con aproximadamente las siguientes funcionalidades?
Cuánto
costará este producto si lo queremos para esta
fecha concreta?
16. Por qué priorizamos si todo es
importante?
Priorizamos para poder tener una mínima
planificación
Cuánto
tiempo tardaremos en tener listo un producto
con aproximadamente las siguientes funcionalidades?
Cuánto costará este producto si lo queremos para esta
fecha concreta?
17. Por qué priorizamos si todo es
importante?
Priorizamos para poder tener una mínima
planificación
Cuánto
tiempo tardaremos en tener listo un producto
con aproximadamente las siguientes funcionalidades?
Cuánto costará este producto si lo queremos para esta
fecha concreta?
18. Por qué priorizamos si todo es
importante?
En las metodologías ágiles la planificación se
realiza constantemente a lo largo del proyecto
De esta forma se reacciona y se adapta al cambio,
en vez se seguir un plan predefinido
19. Cómo se planifica en agile?
La planificación consiste en
Priozar la historias de usuario
(Ordenar las tareas por orden de prioridad)
20. Cómo se planifica en agile?
No se asignan tareas a los miembros del equipo…
El
equipo se auto-organiza y cada miembro elegirá
aquella tarea que más prioritaria o ayudará a otros
miembros a completar sus tareas
No se fijan fechas de entrega al cliente…
Al
cliente se le enseña un producto funcional (y
potencialmente entregable) al final de cada iteración
21. La priorización en el manifiesto ágil
La importancia del orden de
implementación de las funcionalidades
22. La priorización en el manifiesto ágil
Valor “Colaboración con el cliente sobre
negociación contractual”
La
mejor forma de involucrar al cliente es ofreciéndole
software funcionando que le aporte valor lo antes
posible
Así
lo podrá probar y podrá dar una realimentación lo
antes posible (reduciendo riesgo…)
23. La priorización en el manifiesto ágil
Valor “Respuesta ante el cambio sobre seguir un
plan”
Para
poder responder ante el cambio es necesario
centrarse primero en lo más importante
De
esa forma, hay tiempo de reacción y se pueden
reorientar los objetivos del proyecto si el entorno
cambia, la estimación no era adecuada, el cliente
cambia…
24. La priorización en el manifiesto ágil
Principio “Nuestra mayor prioridad es satisfacer
al cliente mediante la entrega temprana y
continua de software con valor”
Cuanto
más grande sea el valor que se entrega al
principio, mucho más satisfecho estará el cliente
Y
se reducirán los riesgos lo antes posible…
25. La priorización en el manifiesto ágil
Principio “Aceptamos que los requisitos cambien,
incluso en etapas tardías del desarrollo”
Si
el equipo se centra en implementar las
funcionalidades más importantes al principio, el cliente
podrá cambiar de opinión sobre las menos prioritarias
(que todavía no se han implementado)
26. No sólo hay que priorizar al principio del
proyecto, hay que priorizar en cada
iteración
El contexto cambia, la tecnología cambia,
el equipo cambia, el cliente cambia…
27. Y también priorizamos porque el desarrollo
software es un proceso con mucha
incertidumbre
28. Y también priorizamos porque el desarrollo
software es un proceso con mucha
incertidumbre
31. ¿Cómo priorizar las historias de usuario?
Por qué priorizamos si todo es importante?
Qué factores hay que tener en cuenta para
priorizar?
Cómo combinamos esos factores?
Y las técnicas “clásicas”, se usan en agile?
Y hasta aquí puedo leer...
34. ¿Cómo se prioriza?
Priorizar es ordenar las historias de usuario en base
a su…
valor
coste
riesgo
Es una cuestión de equilibrio
35. ¿Cómo se prioriza?
Valor para el usuario (de la HU)
El
objetivo del equipo es maximizar el valor y la
satisfacción percibida por el usuario en cada iteración,
por eso es muy importante conocer cuánto valor le
aporta cada historia al usuario
El
Product Owner se encarga de valorar cada historia
de usuario
El equipo lo puede intuir (por su experiencia), pero el
PO tomará la decisión sobre el valor de cada historia
36. ¿Cómo se prioriza?
Coste de implementación (de la HU)
Como
el coste es muy difícil de saber con precisión,
siempre se habla de estimación del coste
El
coste se estima por el equipo usando técnicas como
el planning poker
37. ¿Cómo se prioriza?
Riesgo que se mitiga al
implementar (la HU)
El
riesgo es algo que todavía no ha ocurrido pero que
puede poner en peligro la realización del proyecto
Hay muchos tipos de riesgos que amenazan a los
proyectos software:
no
cumplir el plazo previsto inicialmente
que la tecnología que se ha seleccionado cumpla con las
expectativas
que el producto que finalmente se ha desarrollado no es el
que los clientes/usuarios quieren, etc
38. ¿Cómo se prioriza?
Riesgo que se mitiga al
implementar (la HU)
El
riesgo de cada historia de usuario es determinado
normalmente también por el equipo
En
base a su experiencia y conocimiento (o
desconocimiento) de la tecnología y del dominio,
pueden identificar el riesgo de cada HU
40. ¿Cómo se prioriza?
Si sólo tenemos en cuenta un criterio, todo es muy
fácil:
Valor:
Las
HU que más valor aporten, las primeras.
Coste:
Las
HU que menos cuesten, las primeras, así se podrá
ofrecer el mayor valor posible lo antes posible
Riesgo:
Las
HU que mitiguen más riesgo, las primeras. Así habrá
margen de maniobra si algún riesgo se manifiesta (o al
menos se podrá fallar lo más barato posible)
41. ¿Cómo priorizar las historias de usuario?
Por qué priorizamos si todo es importante?
Qué factores hay que tener en cuenta para
priorizar?
Cómo combinamos esos factores?
Y las técnicas “clásicas”, se usan en agile?
Y hasta aquí puedo leer...
42. Una metodología para priorizar
1
2
3
El product owner y el cliente deciden el valor que aporta
cada historia de usuario
El equipo de desarrollo estima el coste de
implementarlas
Se ordenan las historias de usuario en base al ratio entre
el coste y el valor de cada una de ellas
4
Una historia con valor bajo y alto coste sería poco
prioritaria
Una historia con alto valor y poco coste sería muy
prioritaria.
Partiendo de esa priorización inicial se incorpora el
riesgo
Si hay una historia con una prioridad media, pero que
mitiga muchos riesgos al implementarse, se debería hacer
más prioritaria.
Eso hace que las historias que mitigan menos el riesgo bajen
de prioridad.
43. Priorizar en situaciones típicas…
Podemos identificar algunas situaciones típicas, en
las que será fácil determinar cómo priorizar
Valor
y coste (sin riesgo)
Mucho riesgo tecnológico
Sector desconocido
44. Priorizar en situaciones
típicas…
Valor y coste (sin riesgo)
El
cliente quiere una tienda online
El equipo de desarrollo tiene mucha experiencia
en el dominio de las tiendas on-line
Ha
realizado varios proyectos en el pasado
Tiene bastante experiencia con la tecnología con la
que se va a implementar
El equipo es estable y tiene contacto directo con el
cliente
¿Cómo priorizar en este caso?
45. Priorizar en situaciones
típicas…
Valor y coste (sin riesgo)
Se
puede considerar que los
riesgos del proyecto son bastante bajos
El riesgo no será un factor a tener en cuenta al
priorizar las historias de usuario
Los factores a tener en cuenta son únicamente el coste y
el valor
Las funcionalidades que aporten más valor y
tengan menor coste de implementación serán las
más prioritarias
46. Priorizar en situaciones
típicas…
Mucho riesgo tecnológico
Proyectos
en los que se
está probando una nueva
tecnología y el uso de dicha tecnología es el valor
diferencial del producto
Por ejemplo, un proyecto con Oculus Rift o Google
Glass
¿Cómo priorizar en este caso?
47. Priorizar en situaciones
típicas…
Mucho riesgo tecnológico
Lo
más prioritario es mitigar
los riesgos de implementar
aplicaciones para esa nueva tecnología
Posiblemente el tiempo de desarrollo también sea un
factor determinante porque lo prioritario es terminar el
producto cuanto antes (para obtener una ventaja
competitiva)
En este contexto, quizás se decida reducir el
número/completitud de las funcionalidades
48. Priorizar en situaciones
típicas…
Sector desconocido
En
los proyectos con tecnologías
maduras la incertidumbre
tecnológica es menor
No obstante, es posible que el sector del proyecto
sea totalmente desconocido para el equipo
Por ejemplo, si un equipo nunca ha trabajado en
el sector de la banca y quiere realizar un
proyecto en ese sector, habrá mucho más riesgo
que si el equipo tiene una amplia experiencia
¿Cómo priorizar en este caso?
49. Priorizar en situaciones
típicas…
Sector desconocido
Cuando el sector se desconoce,
es importante mitigar cuanto
antes el riesgo sobre el
conocimiento del producto
En estos proyectos suelen ser más prioritarias aquellas
funcionalidades que permitan una retroalimentación
rápida de los usuarios
Estas historias suelen ser las relacionadas con el
interfaz de usuario porque los usuarios pueden
validar la funcionalidad antes de que esté
implementada
50. Priorizando el riesgo
Cuando el riesgo y el valor son
los factores determinantes, se suele
usar la siguiente gráfica para priorizar
Valor
X
Bajo valor
Alto riesgo
1º
Alto valor
Alto riesgo
Riesgo
3º Bajo valor
Bajo riesgo
valor
2º Bajo riesgo
Alto
51. ¿Cómo priorizar las historias de usuario?
Por qué priorizamos si todo es importante?
Qué factores hay que tener en cuenta para
priorizar?
Cómo combinamos esos factores?
Y las técnicas “clásicas”, se usan en agile?
Y hasta aquí puedo leer...
53. MoSCoW
MoSCoW es un
pseudo-acrónimo formado
por las cuatro categorías en las que se tienen que
dividir todas las funcionalidades:
M
- Must have: Tiene que estar
S - Should have: Debería estar si es posible
C - Could have: Podría estar si no afecta a nada más
W - Won’t have: No estará esta vez, pero estará en un
futuro
54. MoSCoW
MoSCoW es un
pseudo-acrónimo formado
por las cuatro categorías en las que se tienen que
dividir todas las funcionalidades:
M
- Must have: Tiene que estar
S - Should have: Debería estar si es posible
C - Could have: Podría estar si no afecta a nada más
W - Won’t have: No estará esta vez, pero estará en un
futuro
55. Theme Scoring
Técnica para combinar
criterios de las diferentes
HU de forma analítica (media ponderada)
Se definen una serie de criterios para cada HU
Por ejemplo
Aporta
valor al cliente (40%)
Afecta a la arquitectura del sistema (20%)
Requiere integración con terceros (30%)
Lo tiene la competencia (10%)
56. Theme Scoring
A cada HU se le asigna
un valor entre 1 y 5 para
cada una de estas características (por comparación
con una HU con esa característica con valor medio)
Se pondera la importancia de cada característica
Se calcula la media ponderada de las
características
Se obtiene una ordenación de todas las HU
57. Matriz de
priorización
Es parecida al theme
scoring pero más
elaborada
El peso relativo de cada característica se obtiene
comparando cada característica con todas las
demás
Eso permite obtener unos coeficientes con los que
obtener la priorización total
58. Matriz de
priorización
Es parecida al theme
scoring pero más
elaborada
El peso relativo de cada característica se obtiene
comparando cada característica con todas las
demás
Eso permite obtener unos coeficientes con los que
obtener la priorización total
59. Análisis de Kano
Técnica desarrollada por
Noriaki Kano
Su objetivo es determinar el valor
ofrecido por cada funcionalidad con
encuestas a los potenciales usuarios
Mide las espectativas de los usuarios
Divide las funcionalidades en:
Esenciales
Lineales
Asombrosas
60. Análisis de Kano
Esenciales
Tienen que estar en el producto
obligatoriamente
Lineales
Funcionalidades complementarias
El valor al cliente aumenta en el grado que está
implementada la funcionalidad (por eso se llaman lineales)
Asombrosas
Mejoran la satisfacción del cliente en gran medida, aunque
dicha estén poco elaboradas o no sea muy completas
61. Análisis de Kano
Satisfacción del usuario
Asombrosas
Indiferencia
No implementada
Muy elaborada
Esenciales
Lineales
Insatisfacción del usuario
62. Análisis de Kano
Satisfacción del usuario
• El usuario no espera esta
funcionalidad pero le gusta si está
• La satisfacción aumenta mucho
aunque la funcionalidad no esté muy
elaborada
Asombrosas
Indiferencia
No implementada
Muy elaborada
Esenciales
Lineales
• Por mi elaboradas que estén, no
aumentan la satisfacción del usuario.
• Si no están, el usuario estará insatisfecho
• La satisfacción aumenta cuanto más
elaborada está la funcionalidad
Insatisfacción del usuario
63. Análisis de Kano
Cuando tenemos dividas las historias de
usuario en estos 3 tipos tenemos que priorizar
Lo más prioritario es incluir las características
esenciales, porque la falta de alguna de ellas no
sería aceptada por los usuarios
Posteriormente, se incluirían:
Funcionalidades
asombrosas, que el usuario no espera
y que aportan un alto grado de satisfacción
Funcionalidades lineales, que también proporcionan
satisfacción al usuario en función de su desarrollo
64. ¿Cómo priorizar las historias de usuario?
Por qué priorizamos si todo es importante?
Qué factores hay que tener en cuenta para
priorizar?
Cómo combinamos esos factores?
Y las técnicas “clásicas”, se usan en agile?
Y hasta aquí puedo leer…
65. Y hasta aquí puedo leer…
Yo no tengo mucho más que decir…
¿Hay algo importante que haya
pasado por alto?
66. Y hasta aquí puedo leer…
Todavía me quedan algunas dudas…
Se
usan las técnicas “clásicas” para priorizar? O la
combinación de los criterios se hace “a ojo”?
Realmente
el coste se usa para priorizar? o únicamente
para medir la velocidad del equipo y estimar fechas
de entrega / alcance del producto?
67. Y hasta aquí puedo leer…
Todavía me quedan algunas dudas…
Cómo
debe afectar el riesgo a la priorización? Justifica
cambiar la priorización del cliente (basada
principalmente en valor) por el riesgo de implementar
ciertas funcionalidades?
No
incumple eso el principio del manifiesto ágil
“Nuestra mayor prioridad es satisfacer al
cliente mediante la entrega temprana y
continua de software con valor” ?
68. Y hasta aquí puedo leer…
Todavía me quedan algunas dudas…
La
tecnología a veces dificulta que las historias de
usuario sean independientes y se crean priorizaciones
forzadas. Conviene ser fiel a la priorización basada en
valor pese a que eso aumente el coste global del
proyecto?