actividad 4. modelos ágiles de proceso. m.c. juan carlos olivares rojas syllabus...

30
Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus [email protected] May, 2009

Upload: martin-tesoro

Post on 23-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Actividad 4. Modelos ágiles de proceso.

M.C. Juan Carlos Olivares Rojas

[email protected]

May, 2009

Page 2: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Introducción• Para la ingeniería de software la agilidad

es la combinación de filosofía y el conjunto de directrices de desarrollo.

• Esta Metodología como fin último busca la satisfacción del cliente, la entrega del software de acuerdo al tiempo especificado y que el equipo de trabajo esté motivado para desarrollar su trabajo.

Page 3: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Introducción• El proceso de desarrollo de software

generalmente se asociaba con una tendencia que se enfocaba hacia el control de ese proceso de desarrollo definiendo actividades y ciertos roles del personal desarrollador del software.

• Este enfoque para el desarrollo de software ya no resultaba ser el más adecuado para muchos proyectos donde el sistema es muy cambiante y en donde el tiempo de desarrollo es muy corto.

Page 4: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Introducción• Las metodologías para el desarrollo de

software conocidas como ágiles, se caracterizan por estar orientadas para proyectos pequeños, constituyen una solución prácticamente a la medida, ofrecen la simplificación de tareas, a pesar de lo cual permite asegurar la calidad del producto de software.

• Dentro de la ingeniería de software, las metodologías ágiles representan sin duda uno de los temas emergentes.

Page 5: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Introducción• Toda la comunidad de sistemas

computacionales vive con intensidad un debate entre quienes apoyan las metodologías tradicionales y las metodologías ágiles.

• Las metodologías tradicionales va de lo general a lo particular. Su premisa fundamental argumenta que hay suficiente planeación y administración, por lo que el resultado puede predecirse y así mismo pueden evitarse los riesgos.

Page 6: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Introducción• Las características de los métodos ágiles

son que:

• Optimizan la productividad del equipo de desarrollo al contar con un equipo de desarrollo dinámico.

• Se minimizan los riesgos debido a que pueden ser detectados tiempo antes de que se presenten.

Page 7: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Introducción• Aseguran la satisfacción del usuario final

porque se cuenta con su cooperación durante el desarrollo del producto de software.

• Los clientes pueden alcanzar el retorno de su inversión en el proyecto de software, porque no les representa un gasto, sino una inversión.

Page 8: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Metodologías Ágiles• Personas + Agilidad = Software

Page 9: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Introducción - ¿ Que es Agile?• Desarrollo iterativo, con la recopilación

anticipada de requerimientos seguida por el trabajo en la codificación, y continuando con más requerimientos y más código. Este enfoque pretende dar mayor prioridad a la satisfacción del cliente a través de la entrega anticipada y continua de software valioso.

Page 10: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Introducción - ¿ Que es Agile?

• Un marco teórico de mejores prácticas que busca minimizar los riesgos de un proyecto a través de iteraciones de desarrollo muy cortas, que generalmente no exceden de 4 semanas.

Page 11: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Origen de la metodología Agile• Las metodologías ágiles tienen sus orígenes en

los años 80 y 90 con los entonces denominados métodos ligeros (lightweight methods).

Page 12: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Origen de la metodología Agile• Las prácticas de desarrollo ágil no

comenzaron a ser populares sino hasta el año 2001, cuando un grupo de representantes y entusiastas de las metodologías de Programación Extrema, Scrum, DSDM, Crystal Clear, entro otras, decidieron establecer los cimientos de metodologías orientadas a documentación y procesos pesados (heavyweight process).

Page 13: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Características dentro del enfoque de desarrollo de Agile

• Un fuerte énfasis en las pruebas sobre la aplicación que se desarrolla y una continua integración de sus componentes.

• Mantener la simpleza en el concepto, diseño y desarrollo de los componentes del software que se construye.

• Documentar solo lo estrictamente necesario y centrarse en lo más crítico del producto, que es el código fuente.

Page 14: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Características dentro del enfoque de desarrollo de Agile

• En el proceso de desarrollo iterativo, el contar con software funcionando al final de cada iteración es una buena medida del progreso.

• Durante el desarrollo de software las solicitudes pueden cambiar en cualquier punto. Esto es correcto desde el punto de vista de desarrollo; la gestión de cambios en el alcance se usa también en beneficio del cliente.

Page 15: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Características dentro del enfoque de desarrollo de Agile

• El proceso Agile pueden llevar el ciclo corto de entrega al extremo. Algunos proyectos de programación extrema, entregan en periodos realmente cortos, aun cada semana. Aunque esto pueda ser duro de gestionar, no hay nada inherentemente equivocado con esto.

• La gente de negocio y los desarrolladores trabajan juntos diariamente a lo largo del proyecto, pretendiendo con esto la satisfacción del cliente.

Page 16: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Características dentro del enfoque de desarrollo de Agile

• Para lograr la exitosa entrega de proyectos Agile considera que el mejor enfoque es integrar proyectos alrededor de gente motivada y después asegurar que cuenten con las herramientas, los procesos y habilidades  apropiadas para llevar a cabo el trabajo.

• Se recomienda conveniente que a intervalos regulares, el equipo reflexione acerca de cómo ser más efectivo, entonces realiza los ajustes y modifica su comportamiento en consecuencia.

Page 17: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Características dentro del enfoque de desarrollo de Agile

• El método más efectivo y eficiente para transmitir información hacia y entre el equipo de desarrollo, es la conversación cara a cara, auque en ocasiones será necesario emplear otro medio.

Page 18: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Características

Evitar los enrolladas metodologías tradicionales.

Pretenden ser adaptables en lugar de predecibles:

₪Tradicionales: tienden a planear el proceso.

₪Agile: El cambio es Bienvenido.(cliente) Son orientados a la gente no al proceso

₪Tradicionales: se pretende definir un proceso

₪El papel del proceso es apoyar

Page 19: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Maneja tiempo de entrega frecuente: Revisiones regulares frecuentes Reunión corta Ideas para cambiar el proceso

Excelencia, técnica y buen diseño Personas factor No. 1

Características

Page 20: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Son menos orientados al documento Están orientados al código Menor tiempo de entrega Prioridad más alta la satisfacción del cliente

Mayor calidad Menor costo

Características

Page 21: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

¿Cuando elegir metodologías Ágiles?

• Los requerimientos son poco claros • Se desea fomentar la mejora continua del

proceso

• El cliente entiende el proceso

• Son ideales para pequeños grupos

• Se tienen canales de comunicación

Page 22: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

SCRUM

Scrum es una metodología ágil de desarrollo de proyectos que toma su nombre y principios de los estudios realizados sobre nuevas prácticas de producción por Hirotaka Takeuchi e Ikujijo Nonaka a mediados de los 80.

SCRUM es una forma de gestionar proyectos de software. No es una metodología de análisis, ni de diseño, como podría ser RUP, es una metodología de gestión del trabajo.

Scrum es una metodología de desarrollo muy simple, que requiere trabajo duro porque no se basa en el seguimiento de un plan, sino en la adaptación continua a las circunstancias de la evolución del proyecto.

Page 23: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

SCRUM

Scrum es una metodología ágil, y como tal:

Es un modo de desarrollo de carácter adaptable más que predictivo. Orientado a las personas más que a los procesos. Emplea la estructura de desarrollo ágil: incremental basada en iteraciones y revisiones.

http://www.ingenierosoftware.com/equipos/scrum.php

Page 24: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

CRYSTAL

Crystal Methodologies, fue propulsado por Alistair Cockburn.

¿En qué consiste la metodología Crystal?Crystal da vital importancia a las personas que componen el

equipo de un proyecto, y por tanto sus puntos de estudio son:

• Aspecto humano del equipo • Tamaño de un equipo (número de

componentes) • Comunicación entre los

componentes • Distintas políticas a seguir • Espacio físico de trabajo

www.dsic.upv.es/asignaturas/facultad/lsi/trabajos/282002.ppt

Page 25: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

CRYSTAL

Características del equipo Crystal

•Crystal aconseja que el tamaño del equipo sea reducido (Pocos <-componentes).

•La mejora de la comunicación entre los miembros del equipo del proyecto:Mismo lugar de trabajo Disminuye el coste de la

comunicación

Los principios detrás de Crystal se basan en:- “El equipo puede reducir artefactos intermedios a medida que produzca código funcionando más frecuentemente y/o use canales de comunicación más ricos entre las personas”- “Cada proyecto es único y evoluciona lo largo del tiempo.

www.dsic.upv.es/asignaturas/facultad/lsi/trabajos/282002.ppt

Page 26: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

FDD (Feature Driven Development)

• Desarrollo orientado a la funcionalidad.

“Énfasis en el diseño y la construcción”- No cubre todo el proceso de desarrollo- Orientado a “Critical Systems”

¿Dónde se Usa?

Aplicaciones financieras (finales 90’)- Recomendado para nuevos proyectos o segundas versiones- Es recomendado comenzar gradualmente- Driver: CALIDAD- “Critical Systems” online

http://www-2.dc.uba.ar/materias/isoft2/2005_02/clases/AGILE_IS2_10112005_6.pdf

Page 27: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

eXtreme Programming

-Las raíces surgieron en la comunidad Smalltalk; de la colaboración de Kent Becky Ward Cunningham a fines de los ’80.

-En 1996 Beck fue llamado a Chrysler para inspeccionar el progreso de un proyecto de liquidación de sueldos de la empresa.

- Debido a la baja calidad del código entregado, Beck sugirió desechar todo el códigoy empezar de cero.

-Allí empezó a poner en marcha una serie de prácticas aprendidas anteriormente, y las fue refinando hasta lo que se convertirían en las bases de XP.

VALORES

- Comunicación- Feedback- Simplicidad- Coraje

http://www-2.dc.uba.ar/materias/isoft2/2005_02/clases/AGILE_IS2_10112005_6.pdf

Page 28: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Conclusiones• No hay metodología que funcione de manera

universal, de hecho cada vez más las metodologías se conciben como 'marcos' metodológicos que es necesario ajustar para cada organización y tipo de proyecto. Realizar este ajuste es algo que necesita de una experiencia y un conocimiento previo. El problema con la implantación de una metodología es que no se suele tener una segunda oportunidad.

Page 29: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Referencias• Curso de Proyecto Integrador de Software

Básico, Universidad TecMilenio, 2009

• Olivares, J. (2008), Unidad 1 Comunicación, Curso de Ingeniería de Proyectos, Universidad Vasco de Quiroga, Morelia, Michoacán, México.

Page 30: Actividad 4. Modelos ágiles de proceso. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009

Questions?