MindMap Gallery Extreme programming
A mind map about Extreme programming.
Edited at 2021-02-28 02:42:52Extreme Programming
Flujo de trabajo
El cliente diseña nueva funcionalidad y concretarla en una historia de usuario clara y delimitada.
El cliente incluye el criterio de aceptación. Al tener claros los objetivos, los pasos requeridos para implementar la funcionalidad.
Ordena las historias de usuario por prioridades la cuales presenta las al resto de grupo para evaluar las más viables.
Teniendo claras las historias de usuario
Fase de planificación
El equipo las examina para aclarar la factibilidad de ellas.
Seleccionan las historias que se van a implementar.
Los ítems utilizados están sujetos al cambio siempre y cuando no afecten el alcance del proyecto.
Implementación técnica de las historias y estiman el tiempo y el esfuerzo, se asignan las tareas.
Comenzar subdividiendo las historias en tareas específicas.
Fase de implementación
Es aquella requerida para cumplir con prácticas y valores.
Utiliza programación en pares
Desarrollo dirigido por pruebas unitarias que evalué la funcionalidad
Buscar la solución más simple posible para cualquier problema
Fase de análisis y adaptación del equipp
Hacen retrospectivas que se usan como retroalimentación de los procesos: El equipo examina aciertos y errores, examinan causas y las consecuencias que tienen.
Retroalimentación entre miembros del equipo.
Retroalimentación en la información en el código.
El cliente verifica el código.
El equipo incorpora los cambios que el usuario requiere.
Fase de publicación del producto
Entregas pequeñas en la entrega del producto.
Pocas historias, poco riesgo, menos costo.
Permite aumentar la frecuencia de publicación, que permite más retroalimentación por parte del usuario y mayor tiempo de respuesta
Roles
Cliente
El cliente dirige, define el proyecto y define los objetivos. Entre más se incluye en el equipo más tiende a ser exitoso el producto.
Cliente identificar las características desde la perspectiva de los usuarios. A partir elaborar historias de usuarios.
Asegurarse que el software tenga las características más valiosas. El rol del cliente tiene la última palabra.
Derechos
Maximiza la inversión eligiendo las historias de usuario que se pueden desarrollar,
Cambiar alcance del proyecto.
Medir el progreso del proyecto
Detener el proyecto sin perdidas
Obligaciones
Confiar en el dominio de los programadores
Elegir las historias con el máximo valor con precisión.
Trabajar con el equipo proporcionando orientaciones y recibiendo retroalimentaciones precisas
Desarrollador
Convertir las historias del usuario en elementos de software funcionalidades.
Aporta conocimiento, experiencia y comprensión de los problemas que tiene el proyecto.
Trabaja en conjunto con el cliente logra una mayor comprensión del producto generando un mejor producto.
Derechos
Capacidad de estimar su trabajo
Decisiones técnicas con la implementación de tareas
Trabajar en un horario razonable.
Acceso y disponibilidad del cliente a cualquier momento
Evitar el tomar decisiones de negocio
Responsabilidades
Seguir direcciones del equipo
Implementar solo lo necesario
Comunicarse constantemente con el cliente
Código que satisfaga al cliente a través de pruebas.
Roles complementarios
Coach
Hace el seguimiento del proyecto, la velocidad de este y el equipo y estado de este. Cambios de la velocidad del proyecto, mide la cantidad de horas extras y determinan el progreso.
Debe estar pendiente a través de la pregunta a los desarrolladores cuales tareas ha realizado en 2 semanas.
Tracker
Guía y orienta al grupo. Su experiencia es la virtud. Ayuda al equipo a aprender sobre la programación extrema.
Practicas Externas
Paso sustentable
Bienestar de los miembros del equipo.
La velocidad del equipo debe ser precisas, al trabajar más horas hace que el desempeño del equipo y así mismo del producto disminuya.
rectificar y reajustar las tareas
Mantener el tiempo de estabilidad en cada iteración, que permite el equilibrio entre la capacidad de los programadores y la calidad del producto.
PRACTICAS EXTREMAS DEL CONOCIMIENTO COMPARTIDO
Estandares de código
Exige a los desarrolladores que se apeguen a estándares, buenas prácticas, etc. Se crean estándares adicionales para mejorarlos. Auto documentación constante y relevante.
Propiedad colectiva del código
Cualquier desarrollador puede hacer un cambio de código. El código es público en el grupo. Acelera tiempo de desarrollo
Diseño simple
No complicar las cosas. el código lo más simple posible metáfora del sistema: Cada miembro del equipo debe ser capaz de comprender claramente el código.
Procesos continuos
Elementos
Integración continua
: El equipo siempre debe trabajar en la última versión de los programas. Evita retrasos de problemas de integración.
Refactorización
Desarrollar lo que se necesita y estar abiertos para mejorar partes del programa, para que el código se mantenga en evolución.
Pequeños lanzamientos de software
Muestras del progreso del proyecto para que el cliente pueda sentirse integrado en el producto y así pueda dar opiniones sobre esta.
Retroalimentación
Juego Planificacion
Se divide en:
PLANIFICACION DE ITERACION: Las tareas de los desarrolladores
Fase de exploración
Los requerimientos se dividen
Fase compromiso
Las tareas son asignadas
Fase dirección
Se implementan las tareas
PLANIFICACION DE LANZAMIENTO: Incluye al cliente
Fase de exploración.
Se recolectan los requerimientos
Fase de compromiso
Se escogen los requerimientos viables
Fase dirección
Cambio de requerimientos y verificación de estos.
Pruebas unitarias
Se refiere a
Desarrollo orientado a pruebas del mismo código a través de pruebas unitarias.
Pasos
1
Crear prueba
2
rutina de prueba: asegurarse que la prueba funciona.
3
Crear el código
4
Volver a ejecutar y verificar.
Programación en pares
Se refiere a
código producido por dos o más programadores en un solo ordenador. mutua retroalimentación.
Entorno
Ventajas
Simplicidad
: Crear en poco tiempo código simple escalabre
Ahorro dinero
solución de proyecto a través de otros miembros del equipo
Ahorro tiempo
entrega puntual del proyecto.
Comunicación
comunicación constante con el cliente
Compromiso con la calidad
A través de pruebas de calidad.
Desventajas
Centra en el código más que en el diseño.
Se enfoca en el presente y la simplicidad del código, deriva en incertidumbres para resolución de problemas futuros.
Scrum Vs Extreme programming
SCRUM
El scrum determina la secuencia en la que se realizan las prioridades.
Permite libertad de paradigma y técnicas que consideren efectivas
SCRUM usa Sprints : iteraciones largas, no permiten cambios durante estos. No permiten cambios durante los sprints.
Extreme programming
La programación extrema prioriza las características a realizar por el cliente.
La programación extrema requiere practica de ingeniería estricta
Principios
Trabajo de calidad
Producir algo de lo que nos sentamos orgullosos. Muchas pruebas unitarias.
cambio incremental
grandes cambios de golpe no funcionan, solucionar a través de pequeños cambios. Evitar planificar todo el proyecto de una vez, ir adaptando el proyecto, evolucionar la relación entre los miembros. Mejora constante.
Aceptar el cambio
Parte integral de la implementación.
Asumir simplicidad
Cada programa puede ser resuelto fácilmente. Proyecciones. Calidad y objetivo, sin cosas innecesarias.
Retroalimentación rápida
Mejorar aprender e incorporar, puede llegar desde varios canales. Clientes, código a través de pruebas unitarias.
Valores
Respeto
Respetar el esfuerzo entre colegas, nunca enviar cambios que retrasen el trabajo de los demás. Comprometiéndose es respetarse.
Coraje
No temer a arriesgar e incorporar nuevas cosas.
Retroalimentación
Hacer preguntas y aprender de las respuestas.
Comunicación
comunicación entre el equipo. Todos los miembros trabajan juntos, trabajo colectivo.
Simplicidad
buscar lo funcional y lo simple, hacer aquello para lo que fue creada: mantenibilidad y escalabilidad.