Clase 03 XP
-
Upload
demian-gutierrez -
Category
Technology
-
view
611 -
download
1
Transcript of Clase 03 XP
![Page 1: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/1.jpg)
XP(Programación eXtrema)
Universidad de los AndesDemián Gutierrez
Octubre 2012
![Page 2: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/2.jpg)
Modelos ágiles(XP)
XP (eXtreme Programing): Es una estrategia de desarrollo de software creada hace aproximadamente
hace unos diez años que ha causado gran impacto entre el colectivo de programadores del mundo
Kent Beck, su autor, es un programador que ha trabajado en múltiples empresas
Con sus teorías ha conseguido el respaldo de gran parte de la industria del software y el rechazo de otra parte
http://www.extremeprogramming.org
![Page 3: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/3.jpg)
Modelos Incrementales(Modelo Incremental)
advertenciaLa Programación Extrema (XP) y otros
métodos no significan desarrollar“sin método”
Los métodos ágiles requieren en el fondo mucha disciplina para poder ejecutarlos y mantener el orden de
forma satisfactoria
![Page 5: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/5.jpg)
uno de los mejores libros que he leído
sobre ingeniería de software
![Page 6: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/6.jpg)
Modelos ágiles(Mito: El costo del cambio)
Tomado de Extreme Programming Explained (Kent Beck)
![Page 7: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/7.jpg)
Modelos ágiles(Objetivo: El costo del cambio)
Tomado de Extreme Programming Explained (Kent Beck)
![Page 8: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/8.jpg)
Modelos ágiles(XP)
Versión inicial de la arquitectura, prototipos
para mitigar riesgos técnicos o para
comprender mejor el dominio
Iteraciones cortas1-4 semanas
Entregas frecuentes
http://www.extremeprogramming.org
Desarrollo guiado por pruebas
![Page 9: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/9.jpg)
Modelos ágiles(XP)
Daily Meeting
Valor para el cliente
Auto-organización
Transparencia
Dentro de una
Iteración
http://www.extremeprogramming.org
Importancia del Software
Funcionando
![Page 10: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/10.jpg)
Modelos ágiles(XP)
¿Suena Conocido?
Scrum
![Page 11: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/11.jpg)
¿requisitos?(¿qué debe hacer el producto?)
![Page 12: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/12.jpg)
Historias de Usuarios(Modelos ágiles – XP, SCRUM)
Una historia de usuario es una narración que describe cierta funcionalidad del sistema que tiene valor para un
usuario o comprador particular
Se recogen en unas sencillas tarjetas de forma esquemática y en un lenguaje claro y preciso.
Aprobación de nuevos usuarios
Yo como administrador del foro quisiera poder aceptar o rechazar los nuevos usuarios registrados para así poder evitar que el foro se llene de
spammers
¿quién?¿qué?
¿por qué?
![Page 13: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/13.jpg)
Historias de Usuarios(Modelos ágiles – XP, SCRUM)
Las historias de usuario sirven de “recordatorio” de la funcionalidad que es necesario implementar en el
sistema
Antes de implementar una funcionalidad en particular se produce una discusión con el usuario, se refina y extiende la información de la historia de usuario
Aprobación de nuevos usuarios
Yo como administrador del foro quisiera poder aceptar o rechazar los nuevos usuarios registrados para así poder evitar que el foro se llene de
spammers
![Page 14: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/14.jpg)
¿prácticas?
![Page 15: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/15.jpg)
Modelos ágiles(XP / Prácticas)
● El desarrollo del plan: Determinar rápidamente el alcance de
la siguiente iteración / entrega en base a las prioridades del
negocio (cliente) y los estimados técnicos. Estar dispuestos a
cambiar el plan a medida que es necesario.
● Liberar mucho, en incrementos pequeños: Poner el sistema
en producción los más rápido posible (el mínimo necesario) y
desarrollar las siguientes versiones con el ciclo lo mas corto
posible.
● Contar con una “Metáfora” para el sistema: Una historia o
una idea simple, compartida, de como funciona todo el
sistema.
![Page 16: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/16.jpg)
Modelos ágiles(XP / Prácticas)
● Diseño simple: Mantener el diseño lo más simple posible
(KISS: Keep it Simple Stup$%#id), concentrarse en el presente
y no en el futuro: (YAGNI: You ain't going to need it)
● Pruebas Unitarias (automatizadas): Sirven para evitar que
los programadores se equivoquen, para evitar las “parcelas” de
código y para validar constantemente la aplicación. Los
clientes también pueden escribir pruebas para validar /
demostrar ciertas características del sistema.
● Refactor: Los programadores reestructuran el sistema
siempre que es necesario, eliminando la duplicación,
mejorando la comunicación, simplificando o añadiendo
flexibilidad.
![Page 17: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/17.jpg)
Modelos ágiles(XP / Prácticas)
● Programación en parejas: Todo el código a ponerse en
producción es escrito en parejas. ¿Sabe usted por qué?
● Propiedad colectiva: Nadie es dueño de ninguna clase, de
ningún artefacto, de ninguna parte del código. (La prueba del
camión... ¿sabe usted cuantos desarrolladores pueden ser
atropellados por un camión antes de que el proyecto esté en
peligro?)
● Integración continua: Las características del sistema se
desarrollan y se integran a diario. Luego se corren las pruebas
y se verifica que la aplicación corra correctamente.
![Page 18: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/18.jpg)
Modelos ágiles(XP / Prácticas)
● 40 horas a la semana: Nadie. ¡NADIE! Trabaja horas extra.
¿Sabe usted porque?
● El cliente involucrado en el ambiente de desarrollo: El
cliente (o un representante) es un miembro más del equipo de
desarrollo.
● Estándares de codificación: Se definen estándares
adecuados de codificación y se respetan. Sobre todo aquellos
que enfatizan la “auto-documentación” y adecuada
documentación del código.
![Page 19: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/19.jpg)
Modelos ágiles(XP / Prácticas)
Tomado de Extreme Programming Explained (Kent Beck)
![Page 20: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/20.jpg)
Modelos ágiles(XP / Niveles de Planificación)
¿planificación a distintos niveles?
¿qué es planificar?
¿qué cosas se pueden planificar?
![Page 21: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/21.jpg)
Modelos ágiles(XP / Niveles de Planificación)
¿planificación a distintos niveles?
![Page 22: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/22.jpg)
Valores¿Por qué será esto importante?
(fix XP)
![Page 23: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/23.jpg)
Simplicidad: Es la base de la programación extrema. La idea es simplificar el diseño lo más posible para agilizar el desarrollo y
facilitar el mantenimiento.
Modelos ágiles(XP / Valores)
Tomado de Extreme Programming Explained (Kent Beck)
![Page 24: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/24.jpg)
Modelos ágiles(XP / Valores)
Comunicación: Se realiza de diferentes formas:
1) Para los programadores el código comunica mejor. La simplicidad del código hace que este sea legible. Es mejor tener “código
autodocumentado” que código con grandes cantidades de documentación, ya que la documentación corre el riesgo de quedar
desfasada con el código a medida que este es modificado.
2) Las pruebas unitarias comunican, ya que describen el diseño de las clases y métodos al mostrar ejemplos concretos de como usar su
funcionalidad.
3) Los programadores se comunican constantemente gracias a la programación en parejas.
4) La comunicación con el cliente es fluida ya que el cliente es parte del equipo.
![Page 25: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/25.jpg)
Modelos ágiles(XP / Valores)
Retroalimentación (feedback): El cliente está integrado en el proyecto de modo que su opinión sobre el estado del proyecto se
conoce en tiempo real. Como las iteraciones son muy cortas(1-4 semanas) se minimiza el tener que rehacer partes que no
cumplen con los requisitos y ayuda a los programadores a centrarse en lo que es más importante
Respeto: Todo el mundo recibe y siente el respeto que merece como miembro valioso del equipo de desarrollo. Todos en el equipo
aportan valor, aun si es simple entusiasmo. Los desarrolladores respetan la experiencia de sus clientes y viceversa. La gerencia respeta el derecho del equipo de aceptar la responsabilidad y
recibir la autoridad sobre su propio trabajo
![Page 26: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/26.jpg)
Modelos ágiles(XP / Valores)
Coraje o ValentíaHacer XP es difícil... requiere mucha disciplina
Para los gerentes, muchas de las prácticas de XP pueden parecer poco intuitivas o inclusive erradas
(programación en parejas, simplicidad, no pensar en la flexibilidad a futuro, entre otras)
Para los programadores, muchas de las prácticas de XP pueden parecer a contracorriente y poco
intuitivas (TDD, programación en parejas, propiedad colectiva, etc).
Es necesario mucho “coraje” para aceptar las prácticas y vencer los prejuicios
![Page 27: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/27.jpg)
XP y Scrum
![Page 28: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/28.jpg)
Scrum + XP
Scrum provee un marco de gestión, pero no dice nada sobre el cómo se
debería hacer el software o cuales son las prácticas técnicas que se deberían
usar
Scrum se puede usar para gestionar muchos tipos de proyectos, no sólo
proyectos de software
![Page 29: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/29.jpg)
Scrum + XP
XP provee un marco de gestión, pero hace mucho más énfasis en las
prácticas técnicas necesarias para desarrollar software
Es muy común que se utilice una combinación de Scrum + XP
![Page 30: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/30.jpg)
Scrum + XP
![Page 31: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/31.jpg)
Más Información
Extreme Programming (XP)http://www.extremeprogramming.org/
Scrumhttp://www.scrumalliance.org/
http://scrum.org/
![Page 32: Clase 03 XP](https://reader034.fdocuments.mx/reader034/viewer/2022052507/558ffd421a28abb90d8b4688/html5/thumbnails/32.jpg)
XP y el Curso
¿qué cree usted?
¿qué prácticas de XP puede aplicar en el
desarrollo del producto de este curso?