Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Actividades básicas:
- Codear
- Testear
- Escuchar
- Diseñar
1
2. Explique 1 propiedad, 1 estrategia y 1 Técnica propuesta por Crystal Clear
Estrategias:
Exploración de 360°. Vericar o tomar una muestra del valor de negocios del proyecto, los
requerimientos, el modelo de dominio, la tecnología, el plan del proyecto y el proceso.
Victoria temprana. Es mejor buscar pequeños triunfos iniciales que aspirar a una gran
victoria tardía.
2
Esqueleto ambulante. Es una transacción que debe ser simple pero completa. Poder
lograr un end to end maquetado. (mencionado por el profesor)
Re-arquitectura incremental. Se ha demostrado que no es conveniente interrumpir el
desarrollo para corregir la arquitectura. Más bien la arquitectura debe evolucionar en etapas,
manteniendo el sistema en ejecución mientras ella se modica.
Radiadores de información. Es una lámina pegada en algún lugar que el equipo pueda
observar mientras trabaja o camina. Tiene que ser comprensible para el observador casual,
entendida de un vistazo y renovada periódicamente para que valga la pena visitarla.
Técnicas o Prácticas:
Igual que con las estrategias, hay una lista de técnicas propuestas por Crystal Clear, de las
cuales se pueden ir tomando las más convenientes según el momento en que se encuentra
el proceso de desarrollo del proyecto.
Las reuniones diarias (introducidas por la metodología Scrum) acompañan el seguimiento y
mantienen el foco en el próximo paso a seguir, y también permiten la discusión productiva
de líneas a seguir.
Las reuniones de reflexión periódicas son fundamentales para que los miembros del equipo
se expresen abiertamente, para revisar el trabajo hecho y evaluar qué cosas dan resultado
y cuáles no, o de empezar a trabajar. Todo esto permite ir armando una metodología de
trabajo que se adecue al equipo, el proyecto y los tiempos que se manejen.
3
PROPUESTAS NO PROPUESTAS
La agilidad está sobre-decorada, se cargó demasiado, se perdieron los principios sobre los
cuales está basada. La idea que propone Heart of Agile es volver a la esencia, simplificar, y
recuperar el corazón de la agilidad: colaborar, entregar, reflexionar y mejorar (CREM).
● Colabora cerca con otros para generar y desarrollar mejores primeras versiones de
las ideas.
● Entrega pequeñas pruebas iniciales para aprender cómo funciona realmente el
mundo. Aumenta tus entregas al tiempo que corriges la dirección hacia tu objetivo.
● Reflexiona periódicamente, a lo largo del camino. Piensa en lo que has aprendido
en tu colaboración y a partir de tus entregas.
● Mejora la dirección de tus ideas, su implementación técnica, y tu proceso interno.
4
5. Explique brevemente que propone Modern Agile
Propuesto por Joshua Kerievsky, intenta captar las principales cuestiones de agilidad y
centrarse en ellas.
Ideas principales:
1. Make People Awesome - Haz que las personas sean geniales: potenciar al
equipo. Preguntarse cómo podemos hacer que las personas en nuestro ecosistema
sean increíbles. Esto incluye a las personas que usan, fabrican, compran, venden o
financian nuestros productos o servicios. Aprendemos su contexto y sus puntos
débiles, lo que los frena y lo que aspiran a lograr. ¿Cómo podemos hacerlos
increíbles?
2. Make Safety a Prerequisite - Haz de la seguridad un prerrequisito: crear un
entorno de seguridad en el cual las personas tengan las herramientas para hacer su
trabajo. La seguridad es una necesidad humana básica y una clave para
desbloquear el alto rendimiento. Hacemos que la seguridad sea un requisito previo
estableciendo seguridad antes de realizar cualquier trabajo peligroso. Protegemos el
tiempo, la información, la reputación, el dinero, la salud y las relaciones de las
personas. Y nos esforzamos para que nuestras colaboraciones, productos y
servicios sean resistentes y seguros.
3. Experiment and Learn Rapidly - Experimenta y aprende rápido: No puedes
hacer que las personas sean geniales o hacer de la seguridad un requisito previo si
no estás aprendiendo. Aprendemos rápidamente experimentando con frecuencia.
Hacemos que nuestros experimentos sean "seguros para fallar", por lo que no
tenemos miedo de realizar más experimentos. Cuando nos atascamos o no estamos
aprendiendo lo suficiente, lo tomamos como una señal de que necesitamos aprender
más realizando más experimentos.
4. Deliver Value Continuously - Entrega valor contínuamente: Cualquier cosa que
no se entregue no está ayudando a nadie a ser más increíble o seguro. En modern
agile, nos preguntamos: "¿Cómo podría entregarse un trabajo valioso más rápido?"
5
Para entregar valor continuamente, debemos dividir grandes cantidades de valor en
piezas más pequeñas que puedan entregarse de manera segura ahora en lugar de
más tarde.
SCRUM KANBAN
Scrum limita el WIP por iteración Kaban limita el WIP por estado en flujo de
trabajo
6
7. Explique que representa el WIP
WIP (Work In Progress) representa cuántas tareas como máximo pueden realizarse en
cada fase del ciclo de trabajo o product backlog.
Si una columna de un tablero Kanban (es decir, una fase del ciclo de producción) tiene, por
ejemplo, un WIP 5, esto quiere decir que si el equipo (no las personas, porque el WIP de un
KANBAN afecta a una parte del proceso, en la que participan n personas) en esa fase está
trabajando en cinco tareas no podrán trabajar en ninguna otra hasta que terminen alguna de
estas cinco.
Si tengo un WIP bajo, las tareas se realizarán rápido (ya que podría tener hasta 4 personas
trabajando sobre una tarea) pero probablemente tendré miembros del equipo ociosos (ya
que normalmente no todas las personas podrán trabajar a la vez sobre la misma tarea).
Pero si defino un WIP alto, puedo tener mucha gente, existe el riesgo de empezar muchas
tareas y terminar pocas, de estar trabajando en varias cosas a la vez sin cerrar muchos
temas, generando un cuello de botella.
7
El objetivo de esta visualización es que quede claro el trabajo a realizar, en qué está
trabajando cada persona, que todo el mundo tenga algo que hacer y el tener clara la
prioridad de las tareas. Las fases del ciclo de producción o flujo de trabajo se deben decidir
según el caso, no hay nada acotado.
- Transparencia: todo el mundo sabe lo que se está haciendo, por medio de los tableros.
Implica dar visibilidad a todo lo que está pasando, ya que los aspectos significativos del
proceso deben ser visibles para aquellos que son responsables del resultado. La Reunión
de Planificación proporciona visibilidad al Equipo Scrum acerca de aquello que va a hacer
en el sprint; el Scrum Diario, proporciona visibilidad sobre las tareas diarias, los
impedimentos y cómo marcha el trabajo; la Revisión del Sprint ofrece visibilidad sobre los
logros, resultados y el progreso. Por último, la Retrospectiva del Sprint contribuye con la
inspección y la adaptación del proceso.
8
variaciones no deseadas. La inspección tiene lugar durante: la Reunión de Planificación de
Sprint, el Scrum Diario, la Revisión del Sprint y la Retrospectiva del Sprint.
El Scrum Master es un líder que está al servicio del Equipo Scrum. Se asegura que se
aplique el Scrum adecuadamente.
El Scrum Master se encarga de gestionar y asegurar el proceso Scrum, que éste se lleve
a cabo correctamente y de facilitar la ejecución del proceso y sus mecánicas, siempre
atendiendo a los tres pilares del control empírico de procesos. Además, se encarga de
eliminar impedimentos que puedan afectar a la entrega de producto. También se encarga
de hacer coaching al resto del equipo Scrum cuando lo necesitan, además de facilitar
reuniones y eventos si es necesario.
El Product Backlog o Lista de Producto es una lista ordenada de todo lo que podría ser
necesario en el producto, y es la única fuente de requisitos para cualquier cambio a
realizarse en él. El Product Owner es el responsable de la Lista de Producto, incluyendo su
contenido, disponibilidad y ordenación.
9
Los Sprints contienen y consisten en la Planificación del Sprint (Sprint Planning), los Scrums
Diarios (Daily Scrums), el trabajo de desarrollo, la Revisión del Sprint (Sprint Review), y la
Retrospectiva del Sprint (Sprint Retrospective).
Scrum Daily: El Equipo de Desarrollo usa el Scrum Daily para evaluar el progreso
hacia el Objetivo del Sprint y para evaluar qué tendencia sigue este progreso hacia la
finalización del trabajo contenido en la Lista de Pendientes del Sprint.
Revisión de Sprint (Sprint Review): Al final del Sprint se lleva a cabo una Revisión
de Sprint para inspeccionar el Incremento y adaptar la Product Backlog si fuese necesario.
El avance del proyecto en SCRUM se mide con las historias de usuario realizadas o la
cantidad de historias pendientes que van quedando.
Existen varias formas de medir el progreso del trabajo total hasta acabar el proyecto. Al
menos una vez por sprint el dueño del producto mide cuánto ha sido trabajo que se ha
terminado y cuánto queda para acabar el proyecto y lo anota.
Esta forma de contar el trabajo restante para acabar el proyecto se le llama Burndown y si
se pinta en una gráfica será la llamada gráfica de Burn-down. Se le llama así porque se va
anotando la cantidad de trabajo que queda pendiente en lugar de la cantidad de trabajo o
puntos que vamos sumando al realizar más trabajo. El trabajo va disminuyendo o
quemándose hasta llegar a 0 horas o puntos de trabajo pendiente, momento en el cual toca
suelo en el eje horizontal.
10
El gráfico Burn-up es, muy similar. Pero con la diferencia de que se parte del cero, y se va
marcando la cantidad de trabajo completado al final del Sprint, por ello la curva va hacia
arriba, no hacia abajo.
En la figura de abajo, la línea verde es el objetivo y la gráfica va hacia arriba.
15. ¿Por qué decimos que uno de los beneficios de SCRUM es que se mejoran las
estimaciones?
Uno de los beneficios de SCRUM es que se mejoran las estimaciones porque se está
estimando constantemente. Además, las técnicas de estimación utilizadas permiten llegar a
consensos más rápidamente, porque no se centran en estimar teniendo en cuenta una hora,
sino que se centran a estimar comparando complejidades, es decir, se usan medidas
relativas.
11
17. Explique, por medio de un ejemplo,qué pasaría si en un proyecto ágil sólo
colaborar el equipo técnico y el scrum master.
- Si sólo colaboran el Equipo y el Product Owner, probablemente hago las cosas con calidad
y lo que el cliente quiere, pero sin respetar lo que me dice scrum (no controlo tiempo,
iteraciones, etc)
- Si sólo colaboran el Scrum Master y el Product Owner, voy a tener el producto correcto en
los tiempos adecuados, pero sin calidad.
Si en un proyecto ágil solo colaboran el equipo técnico y el scrum master; lo que pasaría es
que el software que van a diseñar para la compañía no tendrá todas las características que
debería tener; por ejemplo
La empresa quiere que le desarrollen un auto y contratan a una empresa para que lo hagan,
pero al equipo le surgen dudas como, por ejemplo, el color, el tamaño, el número de
asientos, etc. Lo que se va a terminar construyendo es un auto familiar genérico, de 4
puertas, negro etc. Pero quizás la empresa lo que quería era una camioneta 4x4 con todos
los gadgets que existen y toda pintada por fuera, pero como el product owner nunca
12
participó, no dio su opinión y el equipo hizo lo que les parecía dentro de su rango de
aplicación.
Deben ser cerradas, en periodos de tiempo pequeños, de tal forma de que se realicen en
2 o 3 días de desarrollo y deben recordar QUÉ hay que hacer, no CÓMO hay que
hacerlo. Finalmente, tienen que ser como el método INVEST. El método INVEST descrito
por Bill Wake nos ayuda a escribir historias de usuario y asegurar su calidad; consiste en
cumplir las siguientes características:
13
19. ¿Para qué sirve el método INVEST?
El método INVEST sirve para asegurar la calidad de las historias de usuario. Son un
conjunto de características que sirven para verificar si una historia de usuario está bien
escrita, ya que se parte del supuesto de que para que una historia de usuario sea correcta
debe cumplir con cada una de esas características
14
#QUE RECOMIENDAN LOS MAPAS DE HISTORIA: tener un personaje
(persona/character)
Es un método que propone priorizar las historias de usuario en función del valor aportado al
cliente.
Lo que la diferencia de otras técnicas tradicionales como por ejemplo calificar los requisitos
como de prioridad alta, media o baja es que en este caso la escala utilizada tiene un
significado intrínseco, de manera que el usuario responsable de asignar la prioridad conoce
el efecto real que producirá su elección.
M (Must): Requisito que tiene que estar implementado en la versión final del producto para
que la misma pueda ser considerada un éxito.
S (Should): Requisito de alta prioridad que en la medida de lo posible debería ser incluido
en la solución final, pero que llegado el momento y si fuera necesario, podría ser
prescindible si hubiera alguna causa que lo justificara.
W (Won’t): Hace referencia a requisitos que están descartados de momento pero que en un
futuro podrían ser tenidos de nuevo en cuenta y ser reclasificados en una de las categorías
anteriores.
15
22. ¿Qué es el MVP?
MVP es la mínima cantidad de funcionalidad que el cliente está dispuesto a pagar.
Suele ser único y evoluciona a lo largo del tiempo, pero dependiendo del tipo de producto,
se pueden tener más.
Se tiene que tener la funcionalidad que nos está pidiendo el cliente, qué es lo que él quiere
cuál es el conjunto de funcionalidades mínimas que van a formar parte de mi primer release.
Un prototipo puede ser una pantalla de un login(solo la parte gráfica). Mientras que una
release va a ser todo el sistema de login funcionando.
16
Velocidad del equipo: cantidad de puntos de historia que se pueden realizar en un
sprint. Fuerza de trabajo que puede hacer un equipo en un sprint. Es la manera de medir la
productividad de un equipo en un sprint. Se calcula sumando el número de puntos historia
(según la unidad y escala que uses) que se estimaron para cada historia de usuario que se
ha terminado durante una iteración o sprint.
Muchas veces pasa que trabajas durante mucho tiempo con personas, que sí, la conoces
del trabajo y tal, pero si te paras a pensar qué conoces de esas personas más allá del
trabajo, realmente no sabes nada, son desconocidos.
Una vez que se acabe, se puede realizar una reunión, o una quedada extraoficial o como
cada uno quiera (reunión vía Skype por ejemplo), y en esa reunión contar y presentar el
mapa de la persona que te haya tocado así el resto del equipo también le empezará a
conocer.
Uno de los beneficios o ventajas de los mapas personales es que ayudan a romper las
barreras entre lo profesional y lo personal.
#PreguntaDeParcial: Indique cuál de los principios del manifiesto ágil intenta cumplir
el análisis de costo en función del tiempo que hace Kent Beck en el libro Extreme
Programming Explained.
Curva de Boehm
Curva donde se ve el costo del cambio en función del tiempo. A medida que pasa el tiempo
de un proyecto, el costo tiende a crecer de forma exponencial, por ende, es mejor detectarlo
de forma temprana. Pensado para el modelo de vista en cascada.
17
Bohem propone invertir la curva. Si el costo del cambio aumentó lentamente con el tiempo,
actuarías de manera completamente diferente a como lo haces bajo el supuesto de que los
costos aumentan exponencialmente. Tomaría grandes decisiones lo más tarde posible en el
proceso, para diferir el costo de tomar las decisiones y tener la mayor posibilidad de que
tengan razón. Sólo implementaría lo que tenía que hacer, con la esperanza de que las
necesidades que se anticipan para mañana no se hagan realidad. Introduciría elementos en
el diseño solo porque simplificarán el código existente o simplificarán la escritura del
siguiente fragmento de código.
Si una curva de costo de cambio aplanada hace posible XP, una curva de costo de cambio
empinada hace imposible XP. Si el cambio es ruinosamente costoso, sería una locura
cobrar por adelantado sin pensarlo detenidamente. Pero si el cambio sigue siendo barato, el
valor adicional y el riesgo reducido de retroalimentación concreta temprana supera el costo
adicional del cambio temprano. Kent Beck proponía que, si bien puede ser más económico
solucionar un error antes de tirar una línea de código, una vez que comienza el desarrollo
en coste del cambio, ya con código, es constante.
La única forma de desarrollar una técnica de software ágil es teniendo una calidad técnica
muy buena.
18
#PreguntaDeParcial: Cite los 4 valores que deben seguir los proyectos ágiles que
sigan Extreme Programming indicados por Kent Beck en el libro Extreme
Programming Explained, capítulo 7.
5 Valores de XP
● Se tienen que definir el sprint goal (objetivo, descripción corta, de una o dos
oraciones, de lo que el equipo tiene previsto alcanzar durante el sprint) y el sprint
backlog (lista de ítems del product backlog que el equipo se compromete a entregar,
más la lista de tareas necesarias para cumplir con cada uno de estos ítems).
● La duración de la reunión no debe ser mayor a 8 hs (Sprint de 4 semanas).
● El PO explica el product backlog, explicando las historias de usuario que cree él que
tienen más valor, y se negocian las que pueden llegar a realizarse, ya que las
mismas deben poder realizarse entre 2 y 5 días. En caso de no poder hacerlo, se
tienen que subdividir en historias más pequeñas.
● La estimación e stá a cargo del equipo de desarrollo. Para llevarla a cabo, se usa el
método que más guste (planning poker, técnica de la camiseta, etc.) con el fin de
asignarle a cada historia de usuario cuántos puntos se le van a dar.
● Teniendo en cuenta la velocidad del equipo, el valor que le aporte al cliente y la
estimación con los puntos de historia, se realiza el sprint backlog, es decir, se van a
ver cuántas historias de usuario se van a poder realizar en un período de tiempo
determinado, determinando las tareas que se van a realizar y CÓMO se van a llevar
a cabo.
19
#PreguntaDeParcial: Explique qué sucede cuando en un equipo hay más de un
Product Owner
Se debe tener un PO por equipo, porque si tengo más de eso puede ocurrir que ninguno de
los dos se ponga de acuerdo. Cuando tengo varios proyectos, y dependiendo del tipo que
sea, si son de distintos clientes, puedo tener varios, porque el PO es un representante del
cliente. Es responsabilidad del equipo en esos casos ver qué priorizar, se dan en lo casos
en los que el equipo es muy maduro, tanto técnicamente como por equipo, asimismo
conocer las prioridades que tiene el cliente para ver qué es lo que él prefiere priorizar. Lo
ideal es que el PO lo provea el cliente.
Agile Modeling (AM) es un proceso de software basado en prácticas cuyo alcance es describir cómo
modelar y documentar de manera eficaz y ágil. Las prácticas de AM deben usarse, idealmente en su
conjunto, para mejorar otro proceso de software más completo como eXtreme Programming (XP) ,
Rational Unified Process (RUP) , Disciplined Agile Delivery (DAD) y Enterprise Unified Process (EUP)
para nombrar unos pocos. Estos procesos cubren un alcance más amplio que AM, en los primeros
tres casos, el proceso de desarrollo; y en el cuarto, el proceso de software completo que incluye tanto
el desarrollo como la producción. Aunque todos estos procesos incluyen actividades de modelado y
documentación, de una forma u otra, definitivamente hay margen de mejora. Con DAD, las prácticas
de AM se integran directamente en el marco, con XP los procesos de modelado deberían definirse
mejor, y con los procesos de modelado RUP definitivamente podrían hacerse más ágiles.
● Shu: “seguir”, hacer algo tal cual ● Ri: hacer las cosas naturalmente
me lo han dicho ● Kokoro: volver a lo básico
● Ha: ser experto en una técnica
20
#PreguntaDeParcial: Seleccione una práctica propuesta por XP y explíquela
brevemente (menos de 30 palabras)
21