METODOLOGÍAS ÁGILES DE DESARROLLO. Rubby Casallas Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes

1 METODOLOGÍAS ÁGILES DE DESARROLLO Rubby Casallas Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes Principios del Man

4 downloads 53 Views 347KB Size

Recommend Stories


Universidad de los Andes
!"#$%#&'(')#*#&#&+',%-#)#&.'/%0!"1"232 '('1451#/1"45#&'2#!'1%#)/4' ('#!'*#&6"24'#5'74$468.'9:;*'2N##O#P%-/*-#("#"2/"#*)/"--'.%)/",#"2/"#%-/L+!$'# *)(%

UNIVERSIDAD DE LOS ANDES
UNIVERSIDAD DE LOS ANDES FACULTAD DE CIENCIAS ECONOMICAS Y SOCIALES ESCUELA DE CONTADURIA MERIDA. ESTADO MERIDA BACHILLER: Soto. Melissa C.I:18579577

Luis Fernández Departamento de Matemáticas Universidad de los Andes
Algebra Luis Fern´ andez Departamento de Matem´ aticas Universidad de los Andes Cap´ıtulo 1 N´ umeros y operaciones 1.1. Conjuntos de n´ umeros y

Desarrollo y Sociedad ISSN: Universidad de Los Andes Colombia
Desarrollo y Sociedad ISSN: 0120-3584 [email protected] Universidad de Los Andes Colombia Clavijo, Sergio; Janna, Michel; Mu

Story Transcript

1

METODOLOGÍAS ÁGILES DE DESARROLLO Rubby Casallas Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes

Principios del Manifiesto Ágil 2







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

Principios del Manifiesto Ágil (2) 3









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

Principios del Manifiesto Ágil (3) 4









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

Principios del Manifiesto Ágil (4) 5



A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a continuación ajustar y perfeccionar su comportamiento en consecuencia

The Paradox of Process 6





“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

7

XP- EXTREME PROGRAMMING Rubby Casallas Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes

Agenda 8

 



¿Qué es XP? 12 Prácticas Actividades Principales:  Planeación  Diseño  Codificación  Testing

 

Conclusiones Referencias

¿Qué es XP? 9





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)

¿Qué es XP? (2) 10



XP está diseñado para ser usado en pequeños equipos de desarrollo.

12 Prácticas 11

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.

Testing 12







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

Testing 13

 





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

Testing: Unit Test Framework 14

 

http://xprogramming.com http://www.junit.org/

Diseño Simple 15

 





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

Diseño: CRC 16

Class: Responsibilities

Collaborates with ..

Refactoring 17

Remover redundancia,  Eliminar funcionalidad no utilizada, y  Rejuvenecer diseños obsoletos  Mantener el código claro y conciso 

Pair programming 18





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

Pair programming 19



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

12 Prácticas 20

Metáfora del sistema 21

 Usar

un sistema de nombres y una descripción común.  Vocabulario común

Estándar de codificación 22



Todos los programadores deben escribir y documentar el código en la misma manera.

Propiedad colectiva del código 23



Integración continua  Equipos

XP integran y construyen el sistema múltiples veces por día.

Integración continua 24

 Equipos

XP integran y construyen el sistema múltiples veces por día.

Construcción de équipo sostenible 25



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.

12 Prácticas 26

Pruebas de Aceptación (Customer Test) 27









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

Codificación : Integración secuencial frecuente 29



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

Diseño: Soluciones prototipo 31



Programación simple para explorar soluciones



Propósito: Reducir riesgos  Refinar estimaciones 



Estas soluciones pueden echar a la basura

Planeación 32



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

Planeación : Historias de usuario 33





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

Planeación: Reunión de la planeación del release 34

 





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

Planeación: Reunión de la planeación del release 35



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.

Planeación: Reunión de la planeación del release 36

 

 

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

Conclusiones 37



Principales suposiciones:  participación

del cliente y negociación

 iteraciones  Pequeños

incrementos

 Testing  integración  Buenos

diseñadores (Simplicidad)  Trabajo en equipo

Conclusiones 38





  

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

Referencias 39









  

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/

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.