Lean Software o Kanban
Idea Reducir Gastos: En software aquello que no se entrega al cliente, este método propone
concentrarse en lo que es importante para el cliente, dejando de lado distracciones y artefactos
que no agreguen valor al producto
Principios
1. Eliminar gastos No realizar trabajos que no sean verdaderamente necesarios, que no
aporten valor al producto ni sean entregables. Eliminar perdida de tiempo en los procesos,
evitando seguir regulaciones obsoletas, evitar realizar cambios o reasignaciones de tareas
y labores innecesariamente, tampoco realizar tareas que no aporten valor ni simplemente
quedarse a la espera de respuestas de otros equipos, evitar la deuda técnica y las
dependencias
2. Ampliar aprendizaje Buscar que los desarrolladores aprendan de nuevas experiencias
3. Tomar decisiones lo más tarde posible Evitar tomar decisiones a priori que incurran en
gastos más adelante, es preferible tomar decisiones cuando se cuente con toda la
información pertinente
4. Realizar entregas lo más rápido posible
5. Potenciar el equipo Evitar gerentes dictando ordenes, incentivar a l equipo para que sea
autoorganizado
6. Construir con integridad Consistencia en los diseños
7. Ver el todo Evaluar todo el entorno e identificar los aspectos importantes para optimizar el
progreso del proyecto
Técnicas provee un set de principios útiles, utiliza el Tablero de Kanban para obtener las tareas
pendientes, las que se encuentran en procesos y las terminadas,
Valores
Aceptar la condición humana
Aceptar que la complejidad y la incertidumbre son naturales para el trabajo de
conocimiento
Trabaje con vistas hacia un mejor resultado económico
Mientras se posibilita un mejor resultado de sociológico
Buscar, adoptar y cuestionar ideas de una amplia gama de disciplinas
Una comunidad basada en valores mejora la velocidad y la profundidad de cambios
positivos
Evaluación No es altamente comprendido ya que no define un paso a paso para su aplicación, el
valor de esta metodología consiste en un Set de observaciones sobre lo que es verdaderamente
importante o insignificante en un desarrollo y tomar ideas de procesos industriales y buscar la
aplicación en software
Xtreme Programming
Idea Incrementar la simplicidad: Añadir nuevas funcionalidades aplicando TDD al escribir la prueba
corregir el código para que la cumpla y hacer refactoring del código para mantenerlo simple
Principios Programación por pares
Relación cercana con el cliente
Realizar pruebas unitarias y funcionales
Mantener el código simple haciendo refactoring
Valores
simplicidad, comunicación, retroalimentación, coraje y respeto
Técnicas
Iteraciones cortas
Programación en pares
Historias de usuario
Refactoring.
Espacio de trabajo abierto
Pertenencia colectiva del código
Integración Continua
Adaptacion al cambio
TDD
Correccion de errores
Artefactos
Historias de Usuario
Puntos de Historia
Pruebas
Roles
Programadores
Cliente
Tester
TRacker
Entrenador
Consultor
Gestor
Evaluación Primeros pasos para introducir metodologías agiles en programación, busca las
mejores practicas de desarrollo en toda su extensión, es consistente, impulsa programación por
pares, introdujo la integración continua y la importancia de realizar pruebas de software siguiendo
TDD
Scrum
Idea Congelar requerimientos por iteraciones cortas aceptando cambios sin permitir que se afecta
la iteración actual
Principios Iniciación
Aplicación
Efectividad
Y todos los del manifiesto ágil: Nuestra mayor prioridad es satisfacer al cliente mediante la entrega
temprana y continua de software con valor
Aceptamos que los requisitos cambien, incluso en etapas avanzadas del desarrollo.
Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al
cliente.
Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia
al periodo de tiempo más corto posible.
Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante
todo el proyecto.
Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el apoyo
que necesitan, y confiarles la ejecución del trabajo.
El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus
miembros es la conversación cara a cara.
El software funcionando es la medida principal de progreso.
Los procesos Ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y
usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.
La atención continua a la excelencia técnica y al buen diseño mejora la Agilidad.
La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.
Las mejores arquitecturas, requisitos y diseños emergen de equipos autoorganizados.
A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a continuación
ajustar y perfeccionar su comportamiento en consecuencia.
Técnicas
Desarrollo por Iteraciones
Planeación de Sprint
Permitir cambios en los requerimientos de manera controlada
Plantear historias de usuario divididas en tareas
Seguimiento del progreso con dailys
Definir criterios de done para confirmar el progreso en lo realmente requerido
Utilizar tablero de tareas y burn down chart para evaluar la velocidad del equipo
Realizar revisión, Grooming y retrospectiva del sprint
Remover impedimentos
Planing Poker
Otros Artefactos:
Entregables
Product Backlog
Sprint backlog
Velocidad
Historias de Usuario
Puntos de Historia
Roles: Product Owner
Scrum master
Desarrorlladores
Evaluación ha conquistado la mayor parte de la industria de software por su utilidad debido a la
implementación de desarrollo por iteraciones o sprint que se están volviendo un estándar por sus
resultados rápidos y de calidad. Ha revolucionado el desarrollo de proyectos en general
Crystal
Idea Comunicación osmótica: se refiere a lograr una buena comunicación en el equipo, busca que
las preguntas y respuestas fluyen con naturalidad y sin causar disturbios dentro del equipos. Un
equipo con buena comunicación puede evitar retrasos, costos y obstáculos
Principios Entregas frecuentes de código probado y funcional a usuarios reales
Comunicación osmótica dentro del equipo
Seguridad en los miembros del equipo, quienes deben sentirse libres de hablar cuando lo
consideren necesario o quieran hacerlo
Enfoque permitir que los desarrolladores se concentren en tareas específicas, sin asignar múltiples
tareas en paralelo, un desarrollador concentrado en una tarea específica es más eficiente
Tener acceso a usuarios expertos
Entorno técnico con pruebas automatizadas, gestores de configuración e integración continua
Técnicas Su principal técnica consiste en buscar un entorno de trabajo agradable para el equipo de
desarrollo
Pertenencia Colectiva del código
Espacios abiertos
Evaluación Esta metodología tampoco es muy reconocida pues tampoco define una metodología
de paso a paso para aplicar, su valor es definir principios sabios que se deben tener en cuenta al
hacer un desarrollo de software. Lo que más distingue a Crystal de otros enfoques ágiles es su
rechazo al dogmatismo y su aceptación de algunos de los principios clásicos de ingeniería de software, su
adaptabilidad a varios tipos de proyectos