You are on page 1of 36

eXtreme Programing

Alfredo Casado Bernardez

eXtreme Programming

Indice
Por qu XP? Qu es XP?, principios y practicas Relacin con otros mtodos giles Evolucin Importancia de profesionalidad y mtodo Quiero saber ms! frente a un framework o tecnologa pasajera.
Esto te puede cambiar la vida, profesional claro. No es ninguna exageracin. A mi me la ha cambiado, para mejor obviamente!.
Alfredo Casado Bernardez

eXtreme Programming

Waterfall

Alfredo Casado Bernardez

No funcionan: - demasiada documentacin - demasiada burocracia. - separacin de roles. gestores, arquitectos, programadores, testers, operaciones/sistemas... - rigidez, el cambio es un problema. - ciclo en cascada claramente no sirve.

eXtreme Programming

Waterfall

No funcionan: - demasiada documentacin - demasiada burocracia. - separacin de roles. gestores, arquitectos, Alfredo Casado Bernardez programadores, testers, operaciones/sistemas... - rigidez, el cambio es un problema. - ciclo en cascada claramente no sir ve.

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 mtodos clasicos, el resultado son desarrollos que no satisfacen a nadie. - Organizaciones ms pequeas 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!!

Alfredo Casado Bernardez

eXtreme Programming

Kent Beck, el padre de eXtreme programming


Documentacin -> la necesaria Separacin de roles -> whole team y comunicacin "..the problem [with software

projects] Mucho tiempo isn'tla primera versin -> se, because una hasta change, per primera versin en change is semana, dos como mucho.to happen; the problem, rather, going is the con el cambio, topromueve with change inability xp cope el cambio. El XP no slo es permisiva when it comes." cambio como beneficio no como problema.
Si usamos XP lo hacemos para producir soft ware 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 soft ware es la complejidad. en XP mantener las cosas simples es un objetivo prioritario. Diseo simple de kent beck: - pasan los test. - cdigo revela sus intenciones. - eliminar TODA duplicacin. - reducir el nmero de elementos.

Alfredo Casado Bernardez

eXtreme Programming

Valores de xp, comunicacin


Un proyecto soft ware siempre se realiza en equipo, es fundamental que los canales de comunicacin sean de banda ancha. Comunicacin entre: cliente y equipo de desarrollo entres miembros del equipo entre programadores y testers entre programadores y qa Se trata de eliminar barreras y favorecer la comunicacin 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 integracin continua ofrece feedback constante de que el cdigo de todos se integra correctamente. Se hacen iteraciones cortas, se obtiene feedback despus de cada iteracin.
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 fcil. nadie da duros a peseta. Los grandes beneficios slo se obtienen a travs de grandes esfuerzos.

Alfredo Casado Bernardez

eXtreme Programming

Practicas XP Feedback TDD Planing Game Whole Team Pair Programming


Alfredo Casado Bernardez

Continuous CI Design Improvement Small releases

Shared Simple design System Metaphor Collective ownership Coding Standard

Wellfare

Sustainable Pace

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 ms polmico sin duda de xp (junto con PP quiza). En scrum se relaja un poco, el clienete o product owner en terminologa 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 posicin del cliente). KB es ms 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 iteracin/release. poner fotillo de nuestro tablon. La idea es tener lo ms rapido algo que funcione para poder obtener feedback lo antes posible, todo lo contrario de lo que sucedia en proyectos clsicos. 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 aplicacin web tpica. El termino WS me parece mucho ms acertado, pertenece a alistair cockburn que lo defini como parte de su metodologa crystal. (este hombre tambin se invento lo de la deuda tcnica, un crack de las buenas metaforas :P )

Alfredo Casado Bernardez

eXtreme Programming

pair programming
Ya tenemos la planificacin de lo que vamos ha hacer y una metfora para construir la arquitectura. El siguiente paso es ponernos ha hacer el trabajo, pero eso si, no nos ponemos solos!. Cuatro ojos ven ms que dos. PP es revisin de cdigo llevado al extremo. Prctica polemica pero que da grandes resultados en algunos contextos. ayuda a la visin compartida ayuda a miembros nuevos del equipo evita relajaciones, hacer PP es cansado. d
Alfredo Casado Bernardez

eXtreme Programming

TDD y simple design

Mi practica favorita, la que ms 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 cdigo. Algunos mitos: - consume mucho tiempo - es muy difcil - no se pueden probar todos los casos - no me dejan hacer test
Alfredo Casado Bernardez

Superado el periodo de aprendizaje desaparecen los mitos

eXtreme Programming

Integracin Continua
Prctica fundamental en combinacin con tdd. Si integrar frecuentemente es bueno integrar continuamente es mejor. lgica 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 prctica 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 camin para que tu proyecto se vaya al garete?

Alfredo Casado Bernardez

eXtreme Programming

Design Improvement
La regla de los boy scout. deja el campo ms limpio de como lo encontraste. Recuerda, el cdigo es de todos, no vale eso de esto esta fatal lo hizo fulanito, no amigo, ese cdigo es tuyo, si no te gusta lo arreglas. Hace falta coraje.

Alfredo Casado Bernardez

Boy Scout rule: Always leave a place cleaner than you found it

eXtreme Programming

Sustainable pace
Las 40 horas. No se puede realizar un trabajo que exige un alto de concentracin 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 ms para resolver un problema ten una cosa clara, tienes un problema que no se resuelve con ms horas!!.
Alfredo Casado Bernardez

eXtreme Programming

Nadie dijo que fuera fcil Cuidado con el DIP!


Hay que superar la etapa de aprendizaje para realmene sacarle beneficio, lo ms 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 llegarn despues y merecen la pena el esfuerzo
Alfredo Casado Bernardez

eXtreme Programming

Relacin con otros mtodos 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 ingeniera y que las practicas de gestin de proyecto se suelen realizar utilizando ideas de scrum o kanban/lean.

Alfredo Casado Bernardez

eXtreme Programming

En 10 aos pasan muchas cosas... Continuous delivery


10 aos son mucho tiempo: - BDD - Continuous delivery - DevOps - Craftmanship

Alfredo Casado Bernardez

eXtreme Programming

En 10 aos pasan muchas cosas... Behavior Driven Development

Nombre Apellidos

eXtreme Programming

Quiero ms!, sobre XP

Nombre Apellidos

eXtreme Programming

Quiero ms!, TDD/BDD

Nombre Apellidos

eXtreme Programming

Quiero ms!, CI/CD

Nombre Apellidos

eXtreme Programming

Quiero ms!, profesion

Nombre Apellidos

eXtreme Programming

Quiero ms!, estndares codicacin y buenas prcticas

Nombre Apellidos

eXtreme Programming

MUCHAS GRACIAS!!!!
Alfredo Casado Bernardez twitter: @AlfredoCasado blog: http://weblogs.javahispano.org/artesanodeprimera/

You might also like