METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software...
Transcript of METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software...
![Page 1: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/1.jpg)
METODOLOGÍAS ÁGILES
DE DESARROLLORubby Casallas
Departamento de Ingeniería de Sistemas y Computación
Universidad de los Andes
1
![Page 2: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/2.jpg)
Principios 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 tardías 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
2
![Page 3: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/3.jpg)
Principios del Manifiesto Ágil (2)
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
3
![Page 4: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/4.jpg)
Principios del Manifiesto Ágil (3)
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 auto-organizados
4
![Page 5: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/5.jpg)
Principios del Manifiesto Ágil (4)
A intervalos regulares el equipo reflexiona sobre
cómo ser más efectivo para a continuación ajustar y
perfeccionar su comportamiento en consecuencia
5
![Page 6: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/6.jpg)
The Paradox of Process
“An agile process creates plans as needed and allows
teams to self organize directly around a problem. We
must trust our process to keep our project on track,
but there is a paradox associated with any process: If
you don't use your process it can't help you; if your
process doesn't help, you won„t use it.”
Tomado de: http://www.agile-process.org/process.html
6
![Page 7: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/7.jpg)
XP- EXTREME
PROGRAMMINGRubby Casallas
Departamento de Ingeniería de Sistemas y Computación
Universidad de los Andes
7
![Page 8: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/8.jpg)
Agenda
¿Qué es XP?
12 Prácticas
Actividades Principales:
Planeación
Diseño
Codificación
Testing
Conclusiones
Referencias
8
![Page 9: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/9.jpg)
¿Qué es XP?
Extreme Programming, o XP, es un proceso de
software liviano (lightweight process) (pocas reglas,
pocas prácticas)
Basado en los siguientes principios:
Simplicidad: buenos diseñadores (eXtreme good
designers)
Comunicación: Trabajo en equipo (eXtreme teamwork)
Feedback: Participación del cliente (eXtreme customer
participation)
Coraje: Iteraciones, Refactoring, Testing (eXtreme
iterations, eXtreme refactoring, eXtreme testing)
9
![Page 10: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/10.jpg)
¿Qué es XP? (2)
XP está diseñado para ser usado en pequeños
equipos de desarrollo.
10
![Page 11: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/11.jpg)
12 Prácticas11
Diseño simple.
Un programa construido con XP debe ser el más
simple que satisfaga los requerimientos.
No se desarrolla “para el futuro”. Se hace énfasis en lo
que tiene valor para el cliente.
Testing.
Programadores desarrollan software escribiendo
primero las pruebas.
Clientes proveen pruebas de aceptación para
asegurarse que los aspectos que ellos requieren son
provistos por el software.
Refactoring.
Equipos XP mejoran constantemente el diseño del
sistema haciendo refactoring.
Esfuerzo por mantener el sistema sin código
duplicado, simple, cohesivo, etc.
Pair Programming.
Codificación en parejas, dos programadores en la
misma máquina.
![Page 12: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/12.jpg)
Testing
Es más fácil y más rápido escribir el código si
primero se han hecho las pruebas unitarias
Esto ayuda al desarrollador a escribir el código
que realmente se necesita
Esto ayuda a tener inmediata retroalimentación
12
![Page 13: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/13.jpg)
Testing
Todo el código debe tener pruebas unitarias
Todo el código debe pasar las pruebas unitarias
antes de que sea liberado
Se deben crear nuevas pruebas cuando un
defecto es encontrado
Las pruebas de aceptación se ejecutan
frecuentemente
13
![Page 14: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/14.jpg)
Testing: Unit Test Framework
http://xprogramming.com
http://www.junit.org/
14
![Page 15: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/15.jpg)
Diseño Simple
Usar cartas CRC para las sesiones de diseño
Crear soluciones prototipo para reducir riesgo
La funcionalidad se adiciona sólo cuando se
necesite no pensando en el futuro
Nunca adicionar funcionalidad antes de que sea
requerida
15
![Page 16: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/16.jpg)
Diseño: CRC16
Class: Collaborates with ..
Responsibilities
![Page 17: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/17.jpg)
Refactoring
Remover redundancia,
Eliminar funcionalidad no utilizada, y
Rejuvenecer diseños obsoletos
Mantener el código claro y conciso
17
![Page 18: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/18.jpg)
Pair programming
Un equipo es más flexible si todos saben lo
suficiente de todas las partes del sistema y
pueden trabajar sobre ellas
La estrategia es rotar los desarrolladores para
evitar perdidas de conocimiento y cuellos de
botella
18
![Page 19: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/19.jpg)
Pair programming
Todo el código que será incluido en producción
debe ser producido por dos personas que
trabajan juntas en un computador:
Una persona escribe u piensa tácticamente sobre el
método que se está creando
Mientras que la otra persona piensa
estratégicamente sobre cómo el método se integra
con el resto de la clase y chequea que:
sea correcto
se entienda
uso de estándares
19
![Page 20: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/20.jpg)
12 Prácticas20
![Page 21: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/21.jpg)
Metáfora del sistema
Usar un sistema de nombres y una descripción
común.
Vocabulario común
21
![Page 22: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/22.jpg)
Estándar de codificación
Todos los programadores deben escribir y
documentar el código en la misma manera.
22
![Page 23: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/23.jpg)
Propiedad colectiva del código
Integración continua
Equipos XP integran y construyen el sistema múltiples
veces por día.
23
![Page 24: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/24.jpg)
Integración continua
Equipos XP integran y construyen el sistema múltiples
veces por día.
24
![Page 25: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/25.jpg)
Construcción de équipo sostenible
40-horas por semana
Programadores cansados cometen más errores.
Programadores XP no trabajan tiempo excesivo durante
largos periodos, ellos se mantienen frescos, saludables y
efectivos.
El cliente en el sitio de trabajo de los
desarrolladores
EL cliente trabaja a la par con los desarrolladores
determinando los requerimientos, prioridades y
respondiendo preguntas.
25
![Page 26: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/26.jpg)
12 Prácticas26
![Page 27: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/27.jpg)
Pruebas de Aceptación (Customer Test)
Las pruebas de aceptación son pruebas de caja
negra
Cada prueba representa algún aspecto
esperado del sistema
Clientes son responsables por verificar si la
prueba falló o no
Las pruebas de aceptación también se deben
ejecutar cuando se hacen pruebas de regresión
antes de liberar un nuevo release
27
![Page 28: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/28.jpg)
Codificación : Integración secuencial
frecuente
Problemas de integración:
Solución XP: integración estrictamente secuencial
realizada por los mismos desarrolladores
Sólo integra un par a la vez, prueba y libera el
depósito del código
29
![Page 29: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/29.jpg)
Diseño: Soluciones prototipo
Programación simple para explorar soluciones
Propósito:
Reducir riesgos
Refinar estimaciones
Estas soluciones pueden echar a la basura
31
![Page 30: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/30.jpg)
Planeación
El proyecto está dividido en iteraciones
El resultado de una iteración es un pequeño release
Cada iteración tiene su propio plan
El calendario para el release está basado en:
Historias de usuario
velocidad del proyecto
32
![Page 31: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/31.jpg)
Planeación : Historias de usuario
Son escritas por los clientes y usuarios como cosas
que ellos necesitan que el sistema haga
Propósito:
Crear estimados de tiempo de desarrollo
Conducir la creación de las pruebas de aceptación
33
![Page 32: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/32.jpg)
Planeación: Reunión de la planeación
del release
El propósito es crear el plan del release
El plan del release se usa para crear el plan de
la iteración
El plan del release tiene un conjunto de reglas
para negociar el cronograma de cada individuo
y negociar los compromisos.
Los estimados para el desarrollo de cada
historia, se hacen en términos de semanas ideales
de trabajo
34
![Page 33: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/33.jpg)
Planeación: Reunión de la planeación
del release
Hay cuatro variables para cuantificar el
proyecto:
Alcance: cuánto será hecho
Recursos: cuánta gente hay disponible
Tiempo: cuanto tiempo se tiene disponible para el
release
Calidad: qué tan bueno se requiere que sea el
software y que tantas pruebas debe tener.
35
![Page 34: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/34.jpg)
Planeación: Reunión de la planeación
del release
Los clientes definen las prioridades
Se define el alcance de la iteración
Se detalla el cronograma
Se estima el tiempo de desarrollo usando la
métrica de velocidad del proyecto
36
![Page 35: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/35.jpg)
Conclusiones
Principales suposiciones:
participación del cliente y negociación
iteraciones
Pequeños incrementos
Testing
integración
Buenos diseñadores (Simplicidad)
Trabajo en equipo
37
![Page 36: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/36.jpg)
Conclusiones
XP es un proceso: actividades, entregables,
responsables, métodos, …
Principales actividades: Planeación, diseño,
codificación, pruebas
XP no es para hackers
XP no es sinónimo de “Programación Heroica”
XP requiere disciplina
38
![Page 37: METODOLOGÍAS ÁGILES DE DESARROLLOisis... · mediante la entrega temprana y continua de software con valor Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.](https://reader030.fdocuments.es/reader030/viewer/2022040909/5e80d7410611ee6681591977/html5/thumbnails/37.jpg)
Referencias
Beck, Extreme Programming Explained, Addison Wesley, 1999,
ISBN 0- 201- 61641- 6
Beck & Fowler, Planning Extreme Programming, Addison
Wesley, 20001, ISBN 0- 201- 71091- 9
Fowler, Refactoring, Addison Wesley, 1999, ISBN 0- 201
48567- 2
Jeffries, Anderson & Hendrickson, Extreme Programming
Installed, Addison Wesley, 2001, ISBN 0- 201- 70842- 6.31
http:// www. extremeprogramming.org/
http:// www. xprogramming. com/
http:// www. martinfowler. com/
39