presentación extreme programming
DESCRIPTION
Presentación de Alfredo Casado Bernárdez sobre Extreme Programming en #adwe_madTRANSCRIPT
Alfredo Casado BernardezeXtreme Programing
Alfredo Casado Bernardez
eXtreme Programming
Indice
- ¿Por qué XP?- ¿Qué es XP?, principios y practicas- Relación con otros métodos ágiles- Evolución- Quiero saber más!
Importancia de profesionalidad y método frente a un framework o tecnología pasajera.
Esto te puede cambiar la vida, profesional claro. No es ninguna exageración.
A mi me la ha cambiado, para mejor obviamente!.
Alfredo Casado Bernardez
eXtreme Programming
Waterfall
No funcionan:- demasiada documentación- demasiada burocracia.- separación de roles. gestores, arquitectos, programadores, testers, operaciones/sistemas...- rigidez, el cambio es un problema.- ciclo en cascada claramente no sirve.
Alfredo Casado Bernardez
eXtreme Programming
Waterfall
No funcionan:- demasiada documentación- demasiada burocracia.- separación de roles. gestores, arquitectos, programadores, testers, operaciones/sistemas...- rigidez, el cambio es un problema.- ciclo en cascada claramente no sirve.
Alfredo Casado Bernardez
eXtreme Programming
Waterfall
Alfredo Casado Bernardez
eXtreme Programming
Waterfall
Alfredo Casado Bernardez
eXtreme Programming
Waterfall
Alfredo Casado Bernardez
eXtreme Programming
Waterfall
Alfredo Casado Bernardez
eXtreme Programming
Waterfall
Alfredo Casado Bernardez
eXtreme Programming
Waterfall
Alfredo Casado Bernardez
eXtreme Programming
Waterfall
Consecuencias, dos posibilidades:- Organizaciones grandes intentan seguir métodos clasicos, el resultado son desarrollos que no satisfacen a nadie.
- Organizaciones más pequeñas que no pueden permitirse el gasto optan por no seguir estas metodologias. El resultado es ASM/caos que de nuevo no deja satisfecho a nadie.
Y lo peor no es esto, lo peor es cuando hay que hacer cambios!!
eXtreme Programming
Kent Beck, el padre de eXtreme programming
"..the problem [with software projects] isn't change, per se, because change is going to happen; the problem, rather, is the inability to cope with change when it comes."
Documentación -> la necesaria
Separación de roles -> whole team y comunicación
Mucho tiempo hasta la primera versión -> primera versión en una semana, dos como mucho.
XP no sólo es permisiva con el cambio, xp promueve el cambio. El cambio como beneficio no como problema.
Si usamos XP lo hacemos para producir software que sirva mejor a las necesidades de nuestros clientes, nunca perder esto de vista, este es el objetivo.
Alfredo Casado Bernardez
eXtreme Programming
Valores, simplicidad
El mayor enemigo de cualquier sistema software es la complejidad. en XP mantener las cosas simples es un objetivo prioritario. Diseño simple de kent beck:
- pasan los test.- código revela sus intenciones.- eliminar TODA duplicación.- reducir el número de elementos.
Alfredo Casado Bernardez
eXtreme Programming
Valores de xp, comunicación
Un proyecto software siempre se realiza en equipo, es fundamental que los canales de comunicación sean de banda ancha.
Comunicación entre:
cliente y equipo de desarrolloentres miembros del equipoentre programadores y testersentre programadores y qa
Se trata de eliminar barreras y favorecer la comunicación directa
Alfredo Casado Bernardez
eXtreme Programming
Valores de xp, feedback
Feedback continuo y temprano.
El cliente como parte del equipo esta constantemente viendo el producto y dando feedback.
Los programadores que usan TDD tienen constantemente feedback de que su trabajo es correcto
La integración continua ofrece feedback constante de que el código de todos se integra correctamente.
Se hacen iteraciones cortas, se obtiene feedback después de cada iteración.
Alfredo Casado Bernardez
eXtreme Programming
Valores de xp, coraje
Hay que echarle huevos al asunto, así de claro. Nadie dijo que esto fuera a ser fácil. nadie da duros a peseta.Los grandes beneficios sólo se obtienen a través de grandes esfuerzos.
Alfredo Casado Bernardez
eXtreme Programming
Practicas XP
TDD
Planing Game
Whole Team
PairProgramming
Feedback Continuous
CI
Design Improvement
Small releases
Shared
Simple design
System Metaphor
Collective ownership
Coding Standard
Wellfare
Sustainable Pace
Alfredo Casado Bernardez
eXtreme Programming
Whole team
El equipo cuena con todas las habilidades necesarias para cumplir con su trabajo.
El cliente forma parte del equipo de trabajo. Punto más polémico sin duda de xp (junto con PP quiza).
En scrum se relaja un poco, el clienete o product owner en terminología scrum puede ser el propio cliente o un proxy de este (algo así como un analista funcional o alguien de nuestra empresa cuyo trabajo sea representar la posición del cliente).
KB es más radical, si el cliente no quiere cederme a uno de sus trabajadores para que el proyecto pueda avanzar entonces no le interesa lo suficiente el proyecto, y en consecuencia a mi tampoco. (con dos cojo...)
Alfredo Casado Bernardez
eXtreme Programming
Planning Game y Small releases
En este punto nos reunimos con el cliente y decidimos las historias de usuario que van a entrar en la primera iteración/release.
poner fotillo de nuestro tablon.
La idea es tener lo más rapido algo que funcione para poder obtener feedback lo antes posible, todo lo contrario de lo que sucedia en proyectos clásicos.
A veces se usan practicas de scrum o kanban/lean mezcladas con xp en esta fase.
Alfredo Casado Bernardez
eXtreme Programming
System metaphor y walking skeleton
Consiste en empezar el desarrollo con un esqueleto andante que cubra todos los puntos de la arquitectura end-to-end. desde el UI hasta la bd por ejemplo en una aplicación web típica.
El termino WS me parece mucho más acertado, pertenece a alistair cockburn que lo definió como parte de su metodología crystal. (este hombre también se invento lo de la deuda técnica, un crack de las buenas metaforas :P )
Alfredo Casado Bernardez
eXtreme Programming
pair programming
Ya tenemos la planificación de lo que vamos ha hacer y una metáfora para construir la arquitectura.
El siguiente paso es ponernos ha hacer el trabajo, pero eso si, no nos ponemos solos!.
Cuatro ojos ven más que dos. PP es revisión de código llevado al extremo. Práctica polemica pero que da grandes resultados en algunos contextos.
ayuda a la visión compartidaayuda a miembros nuevos del equipoevita relajaciones, hacer PP es cansado.d
Alfredo Casado Bernardez
eXtreme Programming
TDD y simple design
Mi practica favorita, la que más me ha echo crecer como programador en mi carrera profesional.
fundamental mezclar tdd con SD. En la fase refactor seguimos las reglas de SD para mejorar nuestro código.
Algunos mitos:
- consume mucho tiempo- es muy difícil- no se pueden probar todos los casos- no me dejan hacer test
Superado el periodo de aprendizaje desaparecen los mitosAlfredo Casado Bernardez
eXtreme Programming
Integración Continua
Práctica fundamental en combinación con tdd.
Si integrar frecuentemente es bueno integrar continuamente es mejor. lógica aplastante...
Cada vez que hago un commit se compila todo el proyecto y se pasan todos los test.
Hacer commit frecuentes, si haces TDD puedes hacer commit cada vez que estes en verde.
No hacer commit-and-run, romper el build es entorpecer al resto del equipo, se castiga con dureza (comprar chucherias en nuestro caso).
Alfredo Casado Bernardez
eXtreme Programming
Collective Code Ownership
El codigo es de todos, no existen islas de conocimiento, cualquiera puede hacer cualquier tarea.
Una práctica curiosa, poner las tarjetas al reves en la pared y se escojen a boleo, evita que la gente tienda a quedarse en su zona de conform.
reduce el factor camion, ¿cuantos miembros de tu equipo tienen que ser atropellados por un camión para que tu proyecto se vaya al garete?
Alfredo Casado Bernardez
eXtreme Programming
Design Improvement
La regla de los boy scout. deja el campo más limpio de como lo encontraste.
Recuerda, el código es de todos, no vale eso de “esto esta fatal lo hizo fulanito”, no amigo, ese código es tuyo, si no te gusta lo arreglas.
Hace falta coraje.
Boy Scout rule: Always leave a place cleaner than you found it
Alfredo Casado Bernardez
eXtreme Programming
Sustainable pace
Las 40 horas.
No se puede realizar un trabajo que exige un alto de concentración y tiene un alto grado de complejidad sin estar a tope de tus facultades.
En ocasiones puede ser razonable un esfuerzo extra, eso pasa siempre y seguira pasando.
Lo que no es razonable es que ese esfuerzo “extra” se convierta en norma. Decia KB, si llevas varias semanas haciendo horas de más para resolver un problema ten una cosa clara, tienes un problema que no se resuelve con más horas!!.
Alfredo Casado Bernardez
eXtreme Programming
Nadie dijo que fuera fácilCuidado con el DIP!
Alfredo Casado Bernardez
Hay que superar la etapa de aprendizaje para realmene sacarle beneficio, lo más importante es no desanimarse.
Los beneficios que obtengas son normalmente proporcionales al esfuerzo que dedicas en algo. Exceptuando que te toque la loteria claro!.
Es importante contar con coraje para salir del bache. Otras opciones es buscar ayuda mediante coaching para pasar esta fase.
Los beneficios de verdad llegarán despues y merecen la pena el esfuerzo
eXtreme Programming
Relación con otros métodos ágiles
ver com encaja xp con otras metodologias como scrum o las ideas de lean.
No estoy muy seguro si poner esto o no, simplemente un dibujo, o algo contando que xp es el core de las practicas de ingeniería y que las practicas de gestión de proyecto se suelen realizar utilizando ideas de scrum o kanban/lean.
Alfredo Casado Bernardez
eXtreme Programming
En 10 años pasan muchas cosas...Continuous delivery
10 años son mucho tiempo:
- BDD- Continuous delivery- DevOps- Craftmanship
Alfredo Casado Bernardez
Nombre Apellidos
eXtreme Programming
En 10 años pasan muchas cosas...Behavior Driven Development
Nombre Apellidos
eXtreme Programming
Quiero más!, sobre XP
Nombre Apellidos
eXtreme Programming
Quiero más!, TDD/BDD
Nombre Apellidos
eXtreme Programming
Quiero más!, CI/CD
Nombre Apellidos
eXtreme Programming
Quiero más!, profesion
Nombre Apellidos
eXtreme Programming
Quiero más!, estándares codificación y buenas prácticas
MUCHAS GRACIAS!!!!
Alfredo Casado Bernardez
twitter: @AlfredoCasadoblog: http://weblogs.javahispano.org/artesanodeprimera/
eXtreme Programming