Los Procesos Ágiles Ing. Jorge Iván Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Procesos Ágiles Ingeniería de Software II
Los Procesos ร giles Ing. Jorge Ivรกn Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Los Procesos ร giles Ing. Jorge Ivรกn Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Los Procesos Ágiles
Contenido • Introducción • Contexto • Manifiesto Ágil • Reflexiones • Los proyectos Open Source
Ing. Jorge Iván Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Los Procesos ร giles Ing. Jorge Ivรกn Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Los Procesos Ágiles
Contexto, Metodologías tradicionales • Nandhakumar & Avison 1999 • Metodologías tradicionales de desarrollo de sistemas de información “son tratadas principalmente como una ficción necesaria para presentar una imagen de control o para proveer un estatus simbólico”. • Truex et al. 2000 • Es posible que los métodos tradicionales sean “meramente ideales inalcanzables e hipotéticos… que proveen una guía normativa a situaciones de desarrollo utópicas.” • McCauley 2001 • La filosofía en la cual se basan los métodos orientados a procesos establece que los requerimientos de un proyecto de software quedan congelados antes de que el diseño y desarrollo del software comience. Con esto no es posible contar con el nivel de flexibilidad, adaptabilidad y agilidad que permita a los desarrolladores realizar cambios tardíos en la especificación.
Ing. Jorge Iván Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Principios del manifiesto ágil
Los Procesos Ágiles
• La prioridad es satisfacer al cliente a través de la entrega temprana y continua de software con valor. • Se aceptan requisitos cambiantes, incluso en etapas avanzadas. • Se entrega software frecuentemente. • Los responsables de negocio y los desarrolladores deben trabajar juntos diariamente a lo largo del proyecto. • Para la construcción de proyectos se requieren profesionales motivados. • Se ejecutan conversaciones cara a cara. • El software que funciona es la principal medida de progreso. • Los procesos ágiles promueven el desarrollo sostenible. • La atención continua a la excelencia técnica y los buenos diseños mejoran la agilidad. • La simplicidad es esencial. • Las mejores arquitecturas, requisitos y diseños surgen de equipos que se auto-organizan. • A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo.
Ing. Jorge Iván Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Los Procesos ร giles
Valores del manifiesto รกgil
Ing. Jorge Ivรกn Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Los Procesos Ágiles
Reflexiones
• Highsmith & Cockburn 2001 • “lo que es nuevo en los procesos ágiles no son las prácticas que usan, sino que reconozcan a las personas como primeros implicados en el éxito de un proyecto, además de un intenso foco en la efectividad y la manejabilidad. Esto genera una nueva combinación de valores y principios que definen una visión ágil del mundo.”
Ing. Jorge Iván Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
… Reflexiones
Los Procesos Ágiles
• Hawrysh & Ruprecht 2000 • Una sola metodología no puede funcionar para todo el espectro de proyectos, en vez de eso el administrador de cada proyecto debería identificar la naturaleza especifica de cada proyecto y seleccionar la mejor metodología de desarrollo aplicable.
• McCauley 2001 • Hay una necesidad de ambos métodos [ágiles y orientados a procesos] ya que no hay un modelo de desarrollo que se ajuste a todos los propósitos imaginables.
Ing. Jorge Iván Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Los Procesos Ágiles
¿Cuando un método es ágil? • El desarrollo de software es • Incremental • liberaciones pequeñas y ciclos rápidos. • Cooperativo • clientes y desarrolladores trabajando juntos. • Simple y Directo • el método es fácil de aprender y modificar. • Adaptativo • es posible realizar cambios de último momento.
Ing. Jorge Iván Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Los proyectos Open Source
Los Procesos Ágiles
El término refiere en principio a una forma de licencia que debe tener fundamentalmente las siguientes características: • Libre redistribución. • Código fuente abierto. • La redistribución de modificaciones debe estar permitida.
Ing. Jorge Iván Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Proceso
Los Procesos Ágiles
Típicamente un proyecto open-source contiene las siguientes fases: ▪ Descubrimiento del problema. ▪ Búsqueda de desarrolladores voluntarios. ▪ Identificación de la solución. ▪ Implementación y testeo. ▪ Revisión de cambios en el código. ▪ Aprobación del código y de la documentación. ▪ Liberación del producto.
Estas fases se realizan en forma iterativa. Ing. Jorge Iván Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Los Procesos Ágiles
Características del Proceso ▪ Muchos desarrolladores voluntarios. ▪ El trabajo no se asigna. Cada cual elige libremente su tarea en función de su interés personal. ▪ No hay plan de proyecto, ni plazos, ni lista de entregables. ▪ Una buena división de las tareas es esencial para el éxito del proyecto. ▪ Internet como herramienta de comunicación es esencial para el desarrollo open-source. ▪ El sistema aumenta en pequeños incrementos. ▪ Los programas son testeados frecuentemente.
Ing. Jorge Iván Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Roles y responsabilidades en un proyecto Open Source
Los Procesos Ágiles
Una típica estructura de desarrollo open-source está compuesta por varios tipos de voluntarios. ▪ Líderes de Proyecto, son quienes tienen la responsabilidad general del proyecto y usualmente han escrito el código inicial. ▪ Desarrolladores voluntarios, crean y envían código para el proyecto. ▪ Personas que identifican bugs y envían reportes de problemas al usar el software. ▪ Personas que participan de newsgroups y foros de discusión.
Ing. Jorge Iván Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Open-Source vs. Procesos Ágiles
Los Procesos Ágiles
Diferencias ▪ Open-source opera generalmente en forma geográficamente distribuida. En tanto que, los métodos ágiles tradicionales recomiendan grupos de desarrollo pequeños y geográficamente cercanos. ▪ En open-source el cliente suele ser también desarrollador. ▪ En open-source cada participante elige su tarea.
Ing. Jorge Iván Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Open-Source vs. Procesos Ágiles
Los Procesos Ágiles
Similitudes ▪ Desarrollo incremental, entregas tempranas y frecuentes. ▪ El programa es frecuentemente testeado. ▪ Cooperación entre cliente y desarrollador. ▪ Open-source, no incluye ninguna norma de documentación formal predefinida. ▪ En un proceso de desarrollo open-source, los requerimientos son elaborados continuamente.
Ing. Jorge Iván Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec
Los Procesos Ágiles
Conclusiones ▪ Las prácticas ágiles están indicadas para productos cuyo detalle resulta difícil prever al principio del proyecto; y si se detallara al comenzar, el resultado final tendría menos valor que si se mejoran y precisan con retroinformación continua durante el, pues aplicaría mejor una metodología tradicional. ▪ Se ha argumentado que open-source difiere de los procesos ágiles en aspectos filosóficos, económicos y de estructura de equipos. Sin embargo, el proceso de desarrollo open-source resulta bastante cercano al de los procesos ágiles. ▪ Organizaciones dispersas geográfica y culturalmente podrían beneficiarse de las ventajas del paradigma open-source.
Ing. Jorge Iván Pincay Ponce, MSc. jorge.pincay@live.uleam.edu.ec