10
ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE MANABÍ MANUEL FÉLIX LÓPEZ CARRERA INFORMÁTICA SEMESTRE SÉPTIMO PERÍODO ABRIL-AGOSTO/2015 METODOLOGIA AGILES MATERIA: INGENIERÍA DE SOFTWARE AUTORA: FARIAS CHICA LUISA KATERINE FACILITADORA: ING. HIRAIDA SANTANA MISIÓN Formación de profesionales íntegros que conjuguen ciencia, tecnología y valores en su accionar, comprometidos con la sociedad en el manejo adecuado de programas y herramientas computacionales de última generación. VISIÓN Ser referente en la formación de profesionales de prestigio en el desarrollo de aplicaciones informáticas y soluciones de hardware. CALCETA, ABRIL 2015

BLOC Metodologis Agiles

Embed Size (px)

DESCRIPTION

Metodologis Agiles

Citation preview

Page 1: BLOC Metodologis Agiles

ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE

MANABÍ MANUEL FÉLIX LÓPEZ

CARRERA INFORMÁTICA

SEMESTRE SÉPTIMO PERÍODO ABRIL-AGOSTO/2015

METODOLOGIA AGILES

MATERIA:

INGENIERÍA DE SOFTWARE

AUTORA:

FARIAS CHICA LUISA KATERINE

FACILITADORA:

ING. HIRAIDA SANTANA

MISIÓN

Formación de profesionales íntegros que conjuguen ciencia, tecnología y valores en

su accionar, comprometidos con la sociedad en el manejo adecuado de programas

y herramientas computacionales de última generación.

VISIÓN

Ser referente en la formación de profesionales de prestigio en el desarrollo de

aplicaciones informáticas y soluciones de hardware.

CALCETA, ABRIL 2015

Page 2: BLOC Metodologis Agiles

A Continuación le vamos hablar acerca de las metodologías agiles las cuales son importante ya

que son una serie de técnicas para la gestión de proyectos que han surgido como

contraposición a los métodos clásicos de gestión como CMMI. Aunque surgieron en el ámbito

del desarrollo de software, también han sido exportadas a otro tipo de proyectos.

Inicialmente, mucha gente asocia metodologías ágiles con falta de documentación o control

sobre el proyecto, pero esto es totalmente falso Lo que se vamos a tratar en este capítulo es

minimizar el impacto de las tareas que no son totalmente imprescindibles para conseguir el

objetivo del proyecto es por eso que debemos conocer acerca de lo que es una metodología

agiles y que importancia tiene en el mundo de desarrollos de software.

Impartir conocimientos sobre metodologías agiles para pretender aumentar la eficiencia de

las personas involucradas en el proyecto y, como resultado de ello, minimizar el costo de la

realización de aquellos .

Page 3: BLOC Metodologis Agiles

Un modelo de desarrollo ágil, generalmente es un proceso Incremental,

(pequeños y frecuentes releases o entregas con ciclos rápidos), también

Cooperativo (Clientes y desarrolladores trabajan constantemente con una

comunicación muy fina y constante), sencillo (El método es fácil de aprender y

modificar para el equipo, es bien documentado por medio de libros o la Web) y

finalmente adaptativo (capaz de permitir cambios de último momento).

Su objetivo fue esbozar los valores y principios que deberían permitir a los

equipos desarrollar software rápidamente y respondiendo a los cambios que

puedan surgir a lo largo del proyecto. Se pretendía ofrecer una alternativa a los

procesos de desarrollo de software tradicionales, caracterizados por ser rígidos

y dirigidos por la documentación que se genera en cada una de las actividades

desarrolladas. Varias de las denominadas metodologías ágiles ya estaban

siendo utilizadas con éxito en proyectos reales, pero les faltaba una mayor

difusión y reconocimiento.

Un equipo ágil reconoce que el software es desarrollado por individuos que

trabajan en equipo, y que su capacidad, su habilidad para colaborar, es el

fundamento para el éxito del proyecto.

La agilidad puede aplicarse a cualquier proceso del software. Sin embargo,

para lograrlo es esencial que éste se diseñe en forma que permita al equipo del

proyecto adaptar las tareas y hacerlas directas, ejecutar la planeación de

manera que entienda la fluidez de un enfoque ágil del desarrollo, eliminar todos

los productos del trabajo excepto los más esenciales y mantenerlos esbeltos, y

poner el énfasis en una estrategia de entrega incremental que haga trabajar al

software tan rápido como sea posible para el cliente, según el tipo de producto

y el ambiente de operación.

Page 4: BLOC Metodologis Agiles

Las metodologías tradicionales funcionan muy bien en proyectos donde el

problema es conocido y la solución al mismo está bien definida. En este

entorno es fácil analizar, diseñar y ejecutar una solución, pero totalmente

opuesto al entorno de una startup.

Una startup, por definición, es una organización temporal se mueve en un

entorno de extrema incertidumbre buscando un modelo de

negocio replicable y escalable.

Las metodologías tradicionales funcionan muy bien en proyectos donde el

problema es conocido y la solución al mismo está bien definida. En este

entorno es fácil analizar, diseñar y ejecutar una solución, pero totalmente

opuesto al entorno de una startup.

Por lo tanto, lo que debemos tener claro es que:

Los principios Lean Startup se encargan de “qué” construir.

Las metodologías ágiles se encargan de “cómo” hacerlo.

Page 5: BLOC Metodologis Agiles

Los costos de hacer que esto funcione son mínimos, y el tiempo requerido no

perjudicará el resultado del proyecto. Pero, ¿qué pasa una vez transcurridos

algunos meses? El equipo está a la mitad de las pruebas de validación (algo

que ocurre cuando el proyecto está relativamente avanzado) y un participante

de importancia solicita que se haga un cambio funcional grande. Elcambio

requiere modificar el diseño de la arquitectura del software, el diseño y

construcción de tres componentes nuevos, hacer cambios en otros cinco

componentes, diseñar nuevas pruebas, etc. Los costos aumentan con rapidez,

y no son pocos el tiempo y el dinero requeridos para asegurar que se haga el

cambio sin efectos colaterales no intencionados.

.

un proceso de software ágil debe adaptarse incrementalmente. Para lograr la

adaptación incremental, un equipo ágil requiere retroalimentación con el cliente

(de modo que sea posible hacer las adaptaciones apropiadas). Un catalizador

eficaz para la retroalimentación con el cliente es un prototipo operativo o una

porción de un sistema operativo. Así, debe instituirse una estrategia de

desarrollo incremental. Deben entregarse incrementos de software (prototipos

Page 6: BLOC Metodologis Agiles

ejecutables o porciones de un sistema operativo) en periodos cortos de tiempo,

de modo que la adaptación vaya a ritmo con el cambio (impredecible). Este

enfoque iterativo permite que el cliente evalúe en forma regular el incremento

de software, dé la retroalimentación necesaria al equipo de software e influya

en las adaptaciones del proceso que se realicen para aprovechar la

retroalimentación.

Uno de los principales focos de aplicación de las metodologías ágiles son los

proyectos tecnológicos. Cada una de ellas tiene sus fortalezas y sus

debilidades, pero no son excluyentes. En cada proyecto podemos adoptar una,

o varias, en función de las características del propio proyecto y del equipo.

Entre las metodologías ágiles más usadas se encuentran:

SCRUM. Es un marco de trabajo que nos proporciona una serie de herramientas y roles para, de una forma iterativa, poder ver el progreso y los resultados de un proyecto.

KANBAN. Se basa en una idea muy simple. Ésta es que el trabajo en curso (Work In Progress, WIP) debería limitarse y sólo deberíamos empezar con algo nuevo cuando un bloque de trabajo anterior haya sido entregado o ha pasado a otra función posterior de la cadena.

XP: Es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores y propiciando un buen clima de trabajo.

Si los miembros del equipo de software son los que van a generar las

características del proceson que van a aplicarse a la elaboración de software,

entre ellos debe existir cierto número de características clave, mismas que

debe compartir el equipo ágil como tal:

Page 7: BLOC Metodologis Agiles

Competencia. En un contexto de desarrollo ágil (así como en la ingeniería de

software), la “competencia” incluye el talento innato, las habilidades específicas

relacionadas con el software y el conocimiento general del proceso que el

equipo haya elegido aplicar.

Enfoque común. Aunque los miembros del equipo ágil realicen diferentes

tareas y aporten habilidades distintas al proyecto, todos deben centrarse en

una meta: entregar al cliente en la fecha prometida un incremento de software

que funcione.

Colaboración. La ingeniería de software (sin importar el proceso) trata de

evaluar, analizar y usar la información que se comunica al equipo de software;

crear información que ayudará a todos los participantes a entender el trabajo

del equipo; y generar información (software de cómputo y bases de datos

relevantes) que aporten al cliente valor del negocio.

Capacidad para resolver problemas difusos. Los gerentes de software

deben reconocer que el equipo ágil tendrá que tratar en forma continua con la

ambigüedad y que será sacudido de manera permanente por el cambio.

Confianza y respeto mutuos. El equipo ágil debe convertirse en lo que

DeMarco y Lister[DeM98] llaman “pegado” (véase el capítulo 24). Un equipo

pegado tiene la confianza y respeto que son necesarios para hacer “su tejido

tan fuerte que el todo es más que la suma de sus partes” [DeM98].

Organización propia. La organización propia tiene cierto número de

beneficios técnicos, pero, lo que es más importante, sirve para mejorar la

colaboración y elevar la moral del equipo. En esencia, el equipo sirve como su

propio gerente. Ken Schwaber [Sch02] aborda estos aspectos cuando escribe:

“El equipo selecciona cuánto trabajo cree que puede realizar en cada iteración,

y se compromete con la labor.

Los métodos ligeros o agiles son otra opción para el desarrollo, muy aplicado y además presenta adeptos y gurús en contra, algunos expertos mencionan que los procesos agiles son una moda y quedaran ahí, sin embargo existen empresas que desde hace tiempo utilizan y han evolucionado gracias a dichos métodos.

A continuación un gráfico con una lista importante de empresas que usan metodologías de desarrollo ágil en algunos de sus proyectos.

Page 8: BLOC Metodologis Agiles

Debido a que muchas organizaciones adoptan sólo un subconjunto de prácticas XP, debilitan la eficacia de todo el proceso. Los defensores contradicen esto al afirmar que la XP está en evolución continua y que muchas de las críticas que se le hacen han llevado a correcciones conforme maduran sus prácticas. Entre los aspectos que destacan algunos críticos de la XP están los siguientes.

Desde el surgimiento de estas revolucionarias metodologías que no solo nacen para el desarrollo de sistemas software sino para el management o desarrollo de productos los incrementos en adeptos se presentan gradualmente con el tiempo y las tecnologías.

Volatilidad de los requerimientos.

•Los defensores afirman que esto pasa sin importar el proceso que se aplique y que la XP proporciona mecanismos para controlar los vaivenes del alcance.

Necesidades conflictivas del cliente.

•En XP, el equipo mismo tiene la tarea de asimilar las necesidades de distintos clientes, trabajo que tal vez esté más allá del alcance de su autoridad.

Los requerimientos se expresan informalmente.

•Los defensores contraatacan diciendo que la naturaleza cambiantede los requerimientos vuelve obsoletos esos modelos y especificaciones casi tan pronto como se desarrollan.

Page 9: BLOC Metodologis Agiles

Las metodologías agiles ayudan bastante en la elaboración de proyectos de

software como podemos ver en la imagen e arriba muchas personas de las

cuales usan estas metodologías son para reducir el tiempo de desarrollo

además de mejorar la calidad del producto o proyecto no tan solo eso sino

también para reducir costos y no solo estas serían las razones existen un sin

número de razones por los cuales muchos de los programadores utilizan

metodologías agiles y esto se debe a la ayuda de la ingeniería de software.

Page 10: BLOC Metodologis Agiles

Reynoso B. s.f. Métodos Agiles en Desarrollo de Software, Introducción a

la Arquitectura de Software. Universidad de Buenos Aires: PDF. Consultado: 26

Abril 2015. Disponible en: http://www.microsoft.com/spanish/msdn/arquitectura.

Pressman. R. 2010. Ingeniería del Software Un Enfoque Práctico. 7ma ed.

University of Connecticut. McGraw-Hill Interamericana Editores, S.A.