RESUMEN ENFOQUE LEAN AGIL
RESUMEN ENFOQUE LEAN AGIL
RESUMEN ENFOQUE LEAN AGIL
INTRODUCCIÓN
Antes que nada, vamos a responder la siguiente pregunta: ¿Qué es una metodología?
PPA1 - SOFTWARE
Software: set de programas de computación que corre sobre una plataforma de
hardware y documentación que lo acompaña. Existen 3 tipos básicos de software:
Un software es mas que codigo o un programa que corre sobre una plataforma, hay
informacion alrededor del mismo que tiene que ser gestionada y también forma parte
de el, es decir que toda la info y conocimiento que se genera al crearlo es también
parte del sistema. Para lograr un producto de software de calidad tenemos que tener
una visión amplia del mismo ósea que debemos entenderlo
Los enfoques agiles nos permiten lograr un producto de calidad teniendo en cuenta
todas estas complejidades.
El problema está cuando aceptamos un trabajo con un bajo presupuesto prometiendo una cosa
y entregamos otro peor acorde a ese presupuesto. Intentar nivelar lo que el cliente se imagina
y lo que obtiene al final del proceso.
Saber programar NO es suficiente: aunque haya que saber programar software de
calidad no solo alcanza con eso
❖ Principales diciplinas:
Pueden ser:
● Definidos: esta todo bien estipulado, orden de fases, que entra y que sale,
puedo estimar resultados. Tienen marcadas para cada una de las etapas que lo
integran los roles, intervienen artefactos que se generan. Se espera lograr
cierta responsabilidad ahí es donde difiere con los otros procesos. EJ: PUD
● Empíricos: Se basan en la experiencia. ¿pero de quién? Asumo una situación,
rápidamente construyo algo para mostrar y con eso obtengo realimentación del
cliente y saber si voy bien, que cambiar y empiezo el ciclo otra vez. Se va
ganando experiencia como equipo, deben generar su propia experiencia. Lo
que me paso antes no es una garantía de lo que va a suceder en el próximo
proyecto.
La restricción triple:
● Objetivos de proyecto: ¿que está el proyecto tratando de alcanzar?
● Tiempo: ¿cuánto tiempo debería llevar completarlo?
● Costos: ¿cuánto debería costar?
Es responsabilidad del Líder de proyecto balancear estos tres objetivos
Cuando no se tiene control de ninguna de las 3 sale software de mala calidad. Tenes
que tener algo para negociar, por ejemplo, el cliente te pide un determinado tiempo
pero te libera los otros recursos. Necesitas tener control en al menos una de las
variables.
Definición de alcance:
Definir un ciclo de vida: Los proyectos se dividen en fases. El conjunto de esas fases
se conoce como ciclo de vida del Proyecto. ciclo de vida define como voy a ejecutar el
proceso, que tanto de cada fase voy a hacer. Debemos elegir el ciclo de vida y adaptar
el proceso que elegimos a las características del proyecto. El PUD recomienda el ciclo
de vida iterativo e incremental, pero puede tomar el PUD y usar un ciclo de vida en
cascada.
Estimaciones de software:
Una estimación es una predicción que se hace respecto a una característica del
proyecto. La problemática de los requerimientos es compleja debido a que hay que
comunicarse con el cliente y entender que quiere, las estimaciones se basan en esos
requerimientos por lo tanto también es complejo hacerlas. Implica estimar lo siguiente
en el orden determinado:
● Tamaño: Tamaño del producto que se va a construir, el problema es que el
software es intangible. Tomamos los requerimientos y les damos un “peso”. Se
elige una unidad para estimar el tamaño. La primera unidad elegida eran líneas
de código, pero es muy arbitrario. Se pensó en estimar con algo más cercano a
los requerimientos ej.: en puntos de objetos, cantidad de métodos en las
clases, etc. De ahí se estima el tamaño del producto. ¿Qué voy a construir? Lo
más complejo de desarrollar software es decidir qué software se quiere hacer.
El 80% de los fracasos de software, es por problemas de requerimientos.
● Esfuerzo: Medidas de horas persona lineales, son horas ideales, lo que
significa que se considera el escenario feliz, sin interrupciones, sin descansar.
Cuantas horas necesita una persona para hacer una cosa, el esfuerzo es la
“bola” de horas. ¿Cuánto trabajo significa ese qué?. Se deriva del tamaño.
● Calendario: ¿Cuándo tendré el producto? Se sestean condiciones, cuantas
personas trabajan, cuantas horas, que dependencias hay entre las tareas. Se
ponen las horas en un calendario. La herramienta más utilizada es gamp y
Microsoft Project. Se deriva del esfuerzo.
● Costo: Se deja para el final porque puede cambiar, capaz se necesite horas
extra, etc. Si quiero algo rápido sale mas caro, pero hay tiempos que no se
pueden adelantar.
● Recursos Críticos: Se asume que no tienen la disponibilidad que uno espera.
No siempre es necesario. Cosas que escasean. Ej.: controladores fiscales de
afip, se lo pide prestado al cliente, el cual te lo presta cierto día. Licencia de
software, ancho de banda. El pc no es un recurso crítico
Gestión de riesgos
¿Qué es un riesgo? – posible ocurrencia de un problema, problema
esperando a suceder, para encarar el riesgo hay diferentes formas
RIESGO es un evento o condición incierto que, si ocurre, tiene efecto en al menos un
objetivo del proyecto
● Primera etapa:
o Los requerimientos tienen micho que ver con el objetivo del cliente, con
el valor de negocio.
o Como en el manifiesto ágil, dice que hay que dejarlo contento al cliente
por sobre la documentación extensiva. se valora mas el software
funcionando antes de la documentación extensiva. es decir, dejar
contento al cliente entregándole software que funcione.
o ¿Tenemos que pensar para que el cliente quiere lo que quiere?, par qué
lo quiere?, cual es el valor de negocio que nosotros en nuestro producto
le va a generar al cliente.
● Segunda etapa:
o Para retroalimentar rápido, usamos algo para poder mostrar algo para
minimizar la brecha entre saber que es lo quiere el cliente y lo que
nosotros pensamos qe el cliente necesita. Todo lo que haya se utiliza.
utilizamos ciertos modelos.
● Tercera etapa:
● Hay que evitar el síndrome del bruf. se evita tratando de no desarrollar el 100%
de los requerimientos con anticipación. Cumplimentar lo justo y necesario.
● Dice que evitemos desarrollar para especificar el producto completo, y después
no usarlo, es un desperdicio.
● Uno de los puntos a ver es cómo desarrollar lo suficiente
Just in time: Surge en la industria automotriz. La idea era tener la materia prima en
la punta de la línea de la producción. debemos tener en el momento que
quisiéramos/que lo necesitemos, la materia prima. Si lo llevamos al software. analizar
lo necesario, los requerimientos que vamos a tratar, los que van a entrar en desarrollo
son los que vamos a especificar. no los vamos a especificar a todos. Especificar los
requerimientos en el momento en el que se lo necesito. en el momento. no especificar
todo de antemano. Evitamos desperdicio. Hay que ir encontrando de alguna manera
que es lo suficiente y con eso arrancar, y con eso solucionamos y vamos iterando
(iterativo e incremental)
Tradicional vs AGIL
Ágil da vuelta la historia del enfoque
tradicional, no sigo un plan porque no
sé qué requerimientos voy a tener.
Damos vuelta el triángulo, dejamos
fijo el tiempo (duraciones de iteración
fijas) y los recursos fijos (eligiendo y
trabajando con un equipo fijo). Lo
variable son los requerimientos,
acuerdo con el cliente cuantos
requerimientos le puedo entregar en
este tiempo con estos recursos. Si no
se tiene un cliente que quiera hacer
ágil es muy difícil.
Tipos de requerimientos:
User Story: Una User story es una necesidad que tiene el product owner. No es un
requerimiento de software. Están en un nivel más alto que los requerimientos y están
escritos en términos del negocio. El enfoque apunta a gestionar requerimientos, no a
especificarlos. El usuario nos cuenta sus necesidades. Una US tiene 3 partes, algunas
son más visibles que otras. Las 3 C (Card, conversation, confirmation). La más
importante de las tres es la conversación, y esta no queda en ningún lado.
¿Cómo es?
TARJETA/CARD:
Contenedor de un recordatorio
de esa reunion/conversacion
que tuvimos con el product
owner, donde hablamos y el
cliente conto su historia. como
una toma de nota.
en la card reflejamos las
partes mas importantes de esa
conversaciones.
lo as importante de la card es
que refleja el VALOR.
¿Qué definen?
✔ Definen una intención, no una solución. Ej.: El usuario debe elegir al menos
una cuenta para operar
✔ Son independientes de la implementación
✔ Relativamente de alto nivel, no es necesario que se escriba cada detalle
Pruebas de aceptación:
De los criterios de aceptación se derivan las pruebas de aceptación. Son las confirmaciones. Hay
que identificar que pruebas de usuario se deben hacer para que en función de estas el usuario
acepte la implementación de la user story. No se prueba todo lo que se debería porque el
testing exhaustivo es muy costoso.
Se debe poner si las pruebas son positivas o negativas, ver qué pasa cuando el usuario hace
algo que no se supone que debe hacer. Pensar en ambos tipos de escenario.
En los equipos Agile, las features/stories son estimadas usando una medida de
tamaño relativo conocida como story points (SP). Las medidas relativas no son
absolutas. Story Points no es una medida basada en tiempo.
Son relativas y NO absolutas porque como humanos somos mas hábiles dando
medidas relativas(Este es mas alto que este, realizamos comparaciones) estimamos
con bastante certeza en el ambiente de la estimación.
medida basada en tiempo. medida que utilizamos en los enfoques agiles para
determinar con bastante certeza que tan grande o que tan compleja, es decir, para
estimar el tamaño de una user, de una características. hay ciertos conceptos que
tenemos que usar para definir e tamaño de la user, de una característica.
Como las personas en si por su naturaleza somos más hábiles haciendo
comparaciones, entonces el agilismo se basa en eso, utilizan la forma de medir el
tamaño de una característica por esa comparación y estimaciones relativas.
Tamaño En este contexto no tenemos que pensar en tamaño como se pensaba antes
que era en líneas de código.
no podemos asignar una medida directa de la calidad ni del tamaño del software. (por
ejemplo: no se puede medir en litros o en metros, no hay una unidad de medida) por
eso exige todo esto para estimar el tamaño.
¿Y como hago con un proyecto?: ¿Si estimo User Storys cómo hago para
estimar un proyecto? La duración de un proyecto no se “estima”, se deriva tomando el
número total de story points de sus US y dividiéndolo por la velocidad del equipo. La
velocidad nos ayuda a determinar un horizonte de planificación apropiando. La
estimación en story points separa completamente la estimación de esfuerzo de la
estimación de la duración.
→ ?: Spike
→ 20: Cuál es la razón de negocio que justifica semejante story y más fuerte aún,
por qué no se puede dividir?.
→ 40: no hay forma de hacer esto en un sprint.
MVP: Producto mínimo viable (Minimal viable product): Tiene la idea de aprendizaje,
en entender y determinar si estamos construyendo el producto correcto, apunta a eso,
a realizar un análisis para encontrar las características mínimas del cliente, son las
que primero deben salir. nos sirve para validar si el producto que estamos haciendo es
el correcto en el sentido que nos ayuda a determinar si va a haber un inversor que
quiera poner dinero para desarrollar o determinar si los clientes usan la aplicación o
Supuestos saltos de FE: Los elementos más riesgosos del plan / concepto de un
startup (es decir, las partes de las que todo depende) se denominan supuestos de
salto de fe.
Trabajamos con dos premisas en el ciclo. Apunta a fiarse de una hipótesis que da la
viabilidad de que va a ser comprado. Están sustentados en dos hipótesis:
Hipótesis del valor
● Prueba si el producto realmente está entregando valor a los clientes después
de que
comienzan a usarlo.
● Una métrica de prueba: tasa de retención. Compre el celular, por ejemplo, y lo
uso o no lo uso. Si lo compras y no te dura mucho no supera la tasa de
retención. Otro ejemplo: si descarga una app, la uso 15 minutos y la desinstalo.
Facebook en cambio, mucha gente ya no lo usa pero lo sigue teniendo
instalado.
Hipótesis de crecimiento
● Prueba cómo nuevos clientes descubrirán el producto
● Una métrica de prueba: tasa de referencia o Net Promoter Score (NPS).
Cuantos usuarios tengo usando el producto, cuantos quiero tener y cuantos
voy teniendo a lo largo del tiempo.
PPA5 – SCRUM
FRAMEWORK PARA GESTION AGIL DE PROYECTO. no es una metodologia. es un
framwork, un marco dd trabajo, un enfoque. le falta mucho para ser una metodologia.
Scrum se basa en el:
Valores de Scrum:
Principios:
● Desarrollo iterativo: Adherimos a ciclos de vida iterativos porque queremos
generar la experiencia en entregables que se le dan al cliente. No se puede
hacer scrum con cascada.
● Time-boxing: el tiempo es fijo, pero no solo para el sprint, se aplica a todas las
ceremonias de scrum.
● Auto-organización: es requerida para que
funcione esto de no tener un jefe para que diga
que debo hacer, que hacer primero, porque eso
al equipo lo resuelve solo. Al líder lo eligen los
compañeros, el líder emerge, al jefe lo elige la
empresa. El que asumen de scrum master no siempre va a ser la misma
persona. Puede ir cambiando.
● Colaboración: si tengo un problema debo tener la libertad de comunicarle al
resto.
● Priorización basada en el valor: es un proceso de ordenamiento, estamos
ordenando con criterio de que lo más importante es el valor para el cliente. Se
pregunta cómo hacer para darle más valor al cliente. El encargado de priorizar
es el product owner, porque es el que conoce el negocio, es el que mejor va a
poder priorizar.
Características
● Auto -organizado: internamente deciden quién hace qué, cuándo y cómo
● Funcionalmente Transversal
● Multifuncional: los miembros tienen todas las habilidades necesarias para
crear valor en cada Sprint.
● Habilidades en forma de “T”: Cada uno puede tomar una US y empezarla y
terminarla.
● Muy buena comunicación
● Tamaño correcto: suficientemente pequeño como para permanecer ágil y lo
suficientemente grande como para completar un trabajo significativo dentro de
un Sprint. Entre 7+-2. Que el grupo se puede conformar en un equipo y
mantenerse en el tiempo, por eso habla de larga vida. Los equipos más
pequeños se comunican mejor y son más productivos, si se vuelven demasiado
grandes, se debe considerar la posibilidad de reorganizarse en varios equipos
Scrum cohesionados.
● Focalizado y comprometido
● Larga vida
● Trabajo en clima de paz sostenible
Actitud de Mosquetero: funcionamos como equipo
● Técnicos (informaticos)
● No técnicos (producto owner)
Product Owner: Es responsable de maximizar el valor del producto resultante del
trabajo del equipo de Scrum. Puede representar las necesidades de muchas partes
interesadas en el trabajo pendiente del producto. Para que los Propietarios de
Productos tengan éxito, toda la organización debe respetar sus decisiones.
Scrum Master: El scrum master se ve como un líder que emerge del equipo, tiene un
rol técnico porque si es necesario trabaja
Sprint: El sprint tiene que asociarse a un objetivo y este objetivo debe estar alineado
al producto. Lo que nos comprometemos al inicio del sprint es lo que vamos a realizar,
no cambios! Dentro del sprint no se modifica nada. Se recomiendan que sean cortos
por la retroalimentación temprana, ir reduciendo errores y hacerlos mas controlables,
es mas facil planificar porque son caracteristicas mas reducidas. Son de duracion fija
por el timeboxing (tiempo fijo, tiempo en una caja) lo ideal es que el equipo logre
definir una cantidad fija de dias del sprint, y que esta sea para todos los sprints. si el
tamaño de todos los sprints es igual, al cliente le genera más confianza. al equipo
tambien le beneficia porque le permite al equipo ir midiendo sus avances. Lo que se
mueve es el alcance. puede suceder que le asignemos menos puntos de historias de
lo que realmente le correspondia a una user, la subestimamos. Cuando el equipo ve
que no llega…
El equipo no deberia permitir que el cliente agregue mas caracteristicas cuando el
sprint está corriendo. El equipo entrega lo comprometido.
Daily Scrum:
● Propósito: inspeccionar el progreso hacia el objetivo del Sprint y adaptar el
Sprint Backlog si es necesario. Sincronización, para ver que necesidades y
objetivos hay en ese dia.
● Misma hora y lugar, todos los días hábiles
● Para desarrolladores
● Duración: 15 minutos máximo
● Si PO y SM trabajan activamente en IPB’s, participan como Desarrolladores. Si
el SM y el po tienen asignaciones de trabajo, SM trabajo de desarrollador, van
a la daily, sino no van.
Beneficios:
- Mejora la comunicación
- Elimina necesidad de otras reuniones identifica y remueve obstáculos
- Promueve toma de decisiones rápidas
- Mejora el conocimiento
Artefactos:
● Sprint Backlog
Puede tener tareas o
no. Tablero básico: to
do, doing, done.
Las user se estiman en
puntos de historia y las
tareas en horas
ideales, esfuerzo.
Significa que no tienen
interrupción, se saca el
tiempo que almuerzo,
que voy al baño etc.
Dos US pueden tener
los mismos puntos de
historia no significa que
tengan las mismas horas ideales. Cada persona que toma una user puede
necesitar esfuerzos distintos para hacer el trabajo.
Una de las entradas es la velocidad promedio, y, si no la tengo, se estima la
capacidad, es recomendable hacerlo igual, aunque tenga velocidad. Se les
pregunta a los miembros cuanto tiempo van a tener disponible y se tienen en
cuenta situaciones particulares, la capacidad es una métrica de trabajo
disponible, mide cuanto trabajo puede el equipo completar en una iteración, se
estima
A cada US se las descompone en tareas, y a las tareas se las estima en horas
ideales. Al final obtengo la cantidad de horas necesarias para cumplir todas las
tareas que implica la implementación de las US.