300 likes | 417 Views
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.
E N D
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.
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.
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.
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.
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.
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.
Metodologías Ágiles Personas + Agilidad = Software
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.
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.
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).
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).
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.
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.
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.
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.
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.
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
Características • 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 • 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
¿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
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.
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
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
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
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
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
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.
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.