SlideShare una empresa de Scribd logo
1
METODOLOGÍAS AGILES
En la actualidad, todo proyecto debe entregarse lo más rápido posible y con una calidad impecable. Y el desarrollo
de software no se queda atrás. Es común que los clientes (internos o externos) soliciten aplicaciones cada vez
más complejas, tanto en su desarrollo como en su análisis. Como resultado, son muchas las ocasiones en las que
no se llegan a cumplir las necesidades de los clientes.
CONCEPTO
El desarrollo ágil de software envuelve un enfoque para la toma de decisiones en los proyectos de software, que
se refiere a métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requisitos
y soluciones evolucionan con el tiempo según la necesidad del proyecto. Así el trabajo es realizado mediant e la
colaboración de equipos auto-organizados y multidisciplinarios, inmersos en un proceso compartido de toma de
decisiones a corto plazo.
CARACTERISTICAS PRINCIPALES
Según el Manifiesto Ágil se valora:
1) Al individuo y las interacciones del equipo de desarrollo sobre el proceso y las herramientas. La gente es el
principal factor de éxito de un proyecto software. Es más importante construir un buen equipo que construir el
entorno. Muchas veces se comete el error de construir primero el entorno y esperar que el equipo se adapte
automáticamente. Es mejor crear el equipo y que éste configure su propio entorno de desarrollo en base a sus
necesidades.
2) Desarrollar software que funciona más que conseguir una buena documentación. La regla a seguir es .no
producir documentos a menos que sean necesarios de forma inmediata para tomar una decisión importante. Estos
documentos deben ser cortos y centrarse en lo fundamental.
3) La colaboración con el cliente más que la negociación de un contrato. Se propone que exista una interacción
constante entre el cliente y el equipo de desarrollo. Esta colaboración entre ambos será la que marque la marcha
del proyecto y asegure su éxito.
4) Responder a los cambios más que seguir estrictamente un plan. La habilidad de responder a los cambios que
puedan surgir a lo largo del proyecto (cambios en los requisitos, en la tecnología, en el equipo, etc.) determina
también el éxito o fracaso del mismo. Por lo tanto, la planificación no debe ser estricta sino flexible y abierta.
VENTAJAS SOBRE LAS METODOLOGÍAS TRADICIONALES
Metodologías Tradicionales Metodologías Ágiles
Basadas en normas provenientes de estándares
seguidos por el entorno de desarrollo.
Basadas en heurísticas provenientes de prácticas
de producción de código.
Cierta resistencia a los cambios.
Especialmente preparados para cambios durante el
proyecto.
Impuestas externamente. Impuestas internamente (por el equipo).
Proceso menos controlado, con pocos principios.
Proceso mucho más controlado, con numerosas
políticas/normas.
Existe un contrato prefijado.
No existe contrato tradicional o al menos es bastante
flexible.
2
El cliente es parte del equipo de desarrollo mediante
reuniones.
El cliente interactúa con el equipo de desarrollo.
Grupos grandes y posiblemente distribuidos.
Grupos pequeños (<10 integrantes) y trabajando en el
mismo sitio.
Más artefactos. Pocos artefactos.
Desarrollo individual con roles y responsabilidades
estrictas.
Transferencia de conocimiento: la programación en
grupo propicia el conocimiento colectivo.
Diseño flexible y extensible, modelos y documentación
exhaustiva.
Diseño simple: documentación mínima enfocada en la
comunicación.
Actividades de control orientadas a los hitos.
Liderazgo-Colaboración: empoderamiento y auto
organización.
Planificación predictiva y aislada.
Planificación adaptativa vista en entregas frecuentes y
colaboración del cliente.
La arquitectura del software es esencial y se expresa
mediante modelos.
Menos énfasis en la arquitectura del software.
En primer lugar, las metodologías ágiles mejoran la satisfacción del cliente dado que se involucrará y
comprometerá a lo largo del proyecto. En cada etapa del desarrollo se informará al cliente sobre los progresos del
mismo. De ese modo, el cliente puede sumar su experiencia para optimizar las características del producto final.
Se pueden evitar así numerosos malentendidos dado que el cliente poseerá en todo momento una completa visión
del estado del producto.
Asimismo, mejora la motivación e implicación del equipo de desarrollo. Pero esta mejora no es casual: las
metodologías ágiles permiten a todos los miembros del equipo conocer el estado del proyecto en cualquier
momento. Los compromisos son negociados y aceptados por todos los miembros del equipo y las ideas de
cualquiera de sus integrantes son tenidas en cuenta.
Destacar que los procesos ágiles permiten ahorrar tanto tiempo como costes. El desarrollo ágil trabaja de un modo
más eficiente y rápido que otras metodologías. Además, estos procesos ponen el foco en cumplir estrictamente el
presupuesto y los plazos pactados a la hora de definir y planificar el proyecto.
Se trabaja con mayor velocidad y eficiencia. En las metodologías ágiles se trabaja realizando entregas parciales
pero funcionales del producto. De ese modo, es posible entregar en el menor intervalo de tiempo posible una
versión funcional del producto.
Gracias a las entregas parciales (centradas en entregar en primer lugar aquellas funcionalidades que en verdad
aportan valor) y a la implicación del cliente será posible eliminar aquellas características innecesarias del producto.
Las metodologías ágiles permiten mejorar la calidad del producto. La continua interacción entre los desarrolladores
y los clientes tienen como objetivo asegurar que el producto final sea exactamente lo que el cliente quiere y
necesita. Además, este enfoque permite abrazar la excelencia tecnológica, lo que permite obtener un producto
tecnológicamente superior.
Por otro lado, esta metodología permite alertar rápidamente tanto de errores como de problemas. En la etapa de
planificación, el equipo ha presentado una hoja de ruta anticipando y dando respuesta a los principales problemas
técnicos y a la velocidad en la que se puede trabajar. Con metodologías más tradicionales, los errores no
identificados en las primeras fases del proyecto suelen acarrear costes muy altos.
Y, finalmente, las metodologías ágiles permiten rentabilizar nuestras inversiones más rápidamente. Gracias a la
realización de entregas tempranas el cliente tendrá rápido acceso a aquellas funcionalidades que en verdad
aportan valor acelerando el retorno de la inversión.
3
CICLO DE VIDA
Los ciclos de vida adaptativos, también conocidos como métodos orientados al cambio o métodos ágiles,
responden a niveles altos de cambio y a la participación continua de los interesados.
Existen dos modelos básicos para este tipo de ciclos de vida, aquellos CENTRADOS EN EL FLUJO y otros
centrados en CICLOS ITERATIVOS E INCREMENTALES. En el primer caso se establecen limitaciones muy c laras
sobre la concurrencia de actividades (Work in Progress) y en el último las iteraciones muy rápidas (entre 1 y 4
semanas) donde se realiza el trabajo (Sprint).
Habitualmente en los modelos ágiles el alcance global del proyecto será descompuesto en un conjunto de
requisitos o trabajos a realizar (en ocasiones denominado Product Backlog). Al inicio de una iteración el equipo
define las funcionalidades que serán abordadas en ese ciclo. Al final de cada iteración el producto debe estar listo
para su revisión por el cliente. Este tipo de ciclo de vida requiere de equipos muy involucrados que incluyan al
patrocinador o al cliente para proporcionar continua retroalimentación.
Generalmente se opta por los métodos ágiles en entornos que cambian rápidamente, cuando el alcance es confuso
o cuando la aportación de valor es muy cambiante y con equipos altamente involucrados.
PRINCIPALES METODOLOGÍAS AGILES
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 destacadas hasta el momento podemos nombrar:
XP – EXTREME PROGRAMMING: está 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. XP se basa en realimentación continua entre el cliente y
el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones
implementadas y coraje para enfrentar los cambios. XP se define como especialmente adecuada para proyectos
con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo técnico.
Muchas de las prácticas propuestas contribuyen a maximizar la comunicación entre las personas, permitiendo de
esa forma una mayor transferencia de conocimiento entre los desarrolladores y con el cliente, quien también es
parte del equipo. Esto es logrado en la práctica gracias a la disposición física del lugar de trabajo.
Asimismo, XP impone un alto nivel de disciplina entre los programadores. El mismo permite mantener un mínimo
nivel de documentación, lo cual a su vez se traduce en una gran velocidad en el desarrollo. Sin embargo, una
desventaja que deviene de esta falta de documentación es la incapacidad de persistir la arquitectura y demás
cuestiones de análisis, diseño e implementación, aún después de que el proyecto haya concluido.
Características:
1) Desarrollo iterativo e incremental: pequeñas mejoras, unas tras otras.
2) Pruebas unitarias continuas, frecuentemente repetidas y automatizadas, incluyendo pruebas de regresión.
Se aconseja escribir el código de la prueba antes de la codificación. Véase, por ejemplo, las herramientas
de prueba JUnit orientada a Java, DUnit orientada a Delphi, NUnit para la plataforma.NET o PHPUnit para
PHP. Estas tres últimas inspiradas en JUnit, la cual, a su vez, se insipiró en SUnit, el primer framework
orientado a realizar tests, realizado para el lenguaje de programación Smalltalk.
3) Programación en parejas: se recomienda que las tareas de desarrollo se lleven a cabo por dos personas
en un mismo puesto. La mayor calidad del código escrito de esta manera -el código es revisado y discutido
mientras se escribe- es más importante que la posible pérdida de productividad inmediata.
4
4) Frecuente integración del equipo de programación con el cliente o usuario. Se recomienda que un
representante del cliente trabaje junto al equipo de desarrollo.
5) Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer entregas frecuentes.
6) Refactorización del código, es decir, reescribir ciertas partes del código para aumentar su legibilidad y
mantenibilidad, pero sin modificar su comportamiento. Las pruebas han de garantizar que en la
refactorización no se ha introducido ningún fallo.
7) Propiedad del código compartida: en vez de dividir la responsabilidad en el desarrollo de cada módulo en
grupos de trabajo distintos, este método promueve el que todo el personal pueda corregir y extender
cualquier parte del proyecto. Las frecuentes pruebas de regresión garantizan que los posibles errores
serán detectados.
8) Simplicidad en el código: es la mejor manera de que las cosas funcionen. Cuando todo funcione se podrá
añadir funcionalidad si es necesario. La programación extrema apuesta que es más sencillo hacer algo
simple y tener un poco de trabajo extra para cambiarlo si se requiere, que realizar algo complicado y quizás
nunca utilizarlo.
SCRUM: es un modelo de referencia que define un conjunto de prácticas y roles, y que puede tomarse como punto
de partida para definir el proceso de desarrollo que se ejecutará durante un proyecto.
Scrum es un método iterativo e incremental que enfatiza prácticas y valores de project management por sobre las
demás disciplinas del desarrollo. Al principio del proyecto se define el Product Backlog, que contiene todos los
requerimientos funcionales y no funcionales que deberá satisfacer el sistema a construir. Los mismos estarán
especificados de acuerdo a las convenciones de la organización ya sea mediante: features, casos de uso,
diagramas de flujo de datos, incidentes, tareas, etc. El Product Backlog será definido durante reuniones de
planeamiento con los stakeholders. A partir de ahí se definirán las iteraciones, conocidas como Sprint en la juerga
de Scrum, en las que se irá evolucionando la aplicación evolutivamente. Cada Sprint tendrá su propio Sprint
Backlog que será un subconjunto del Product Backlog con los requerimientos a ser construidos en el Sprint
correspondiente. La duración recomendada del Sprint es de 1 mes.
Dentro de cada Sprint el Scrum Master (equivalente al Líder de Proyecto) llevará a cabo la gestión de la iteración,
convocando diariamente al Scrum Daily Meeting que representa una reunión de avance diaria de no más de 15
minutos con el propósito de tener realimentación sobre las tareas de los recursos y los obstáculos que se
presentan. Al final de cada Sprint, se realizará un Sprint Review para evaluar los artefactos construidos y comentar
el planeamiento del próximo Sprint.
La intención de Scrum es la de maximizar la realimentación sobre el desarrollo pudiendo corregir problemas y
mitigar riesgos de forma temprana. Su uso se está extendiendo cada vez más dentro de la comunidad de
Metodologías Ágiles, siendo combinado con otras – como XP – para completar sus carencias. Cabe mencionar
que
Scrum no propone el uso de ninguna práctica de desarrollo en particular; sin embargo, es habitual emplearlo como
un framework ágil de administración de proyectos que puede ser combinado con cualquiera de las metodologías
mencionadas.
Características:
1) Enfatiza valores y prácticas de gestión, sin pronunciarse sobre requerimientos, prácticas de desarrollo,
implementación y demás cuestiones técnicas
2) Hace uso de Equipos auto-dirigidos y auto-organizados.
3) Puede ser aplicado teóricamente a cualquier contexto en donde un grupo de gente necesita trabajar junta
para lograr una meta común.
4) Desarrollo de software iterativos incrementales basados en prácticas agiles
5) Iteraciones de treinta días; aunque se pueden realizar con más frecuencia, estas iteraciones, conocidas
como Sprint
5
6) Dentro de cada Sprint se denomina el Scrum Master al Líder de Proyecto quien llevará a cabo la gestión
de la iteración
7) Se convocan diariamente un “Scrum Daily Meeting” el cual representa una reunión de avance diaria de no
más de 15 minutos con el propósito de tener realimentación sobre las tareas de los recursos y los
obstáculos que se presentan. En la cual se responden preguntas como: ¿Qué has hecho desde el ultimo
encuentro? ¿Qué obstáculos hay para cumplir la meta? ¿Qué harás antes del próximo encuentro?
La metodología SCRUM es especialmente valiosa para proyectos de empresa complejos y cuya ejecución se
haga efectiva en situaciones poco habituales.
 Cuando es indispensable obtener resultados de forma inmediata.
 Cuando los requisitos son cambiantes y poco definidos.
 Cuando las entregas se alargan o los costes del plan se disparan.
 Cuando hay un alto grado de rotación del personal dentro de los equipos.
 Cuando un proyecto tradicional requiere soluciones de gestión.
CRYSTAL CLEAR: Se trata de un conjunto de metodologías para el desarrollo de software caracterizadas por
estar centradas en las personas que componen el equipo y la reducción al máximo del número de artefactos
producidos. La Metodología Cristal se identifica con colores diferentes cada método, y su elección debe ser
consecuencia del tamaño y criticidad del proyecto, de forma que los de mayor tamaño, o aquellos en los que la
presencia de errores o desbordamiento de agendas implique consecuencias graves, deben adoptar metodologías
más pesadas. De esta forma se pretende obtener mayor rentabilidad en el desarrollo de proyectos de software.
Los métodos Crystal no prescriben prácticas concretas, porque están en continuo cambio.
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.
Es un método para gestionar el trabajo intelectual, con énfasis en la entrega justo a tiempo, mientras no se
sobrecargan los miembros del equipo. En este enfoque, el proceso, desde la definición de una tarea hasta su
entrega al cliente, se muestra para que los participantes lo vean y los miembros del equipo tomen el trabajo de una
cola.
Características:
1) Visualizar: el flujo de trabajo y hacerlo visible es la base para comprender cómo avanza el trabajo. Sin
comprender el flujo de trabajo, realizar los cambios adecuados es más difícil. Una forma común de
visualizar el flujo de trabajo es el uso de columnas. Las columnas representan los diferentes estados o
pasos en el flujo de trabajo.
2) Limitar el trabajo en curso: Limitar el trabajo en curso implica que un sistema de extracción se aplica en la
totalidad o parte del flujo de trabajo. El sistema de extracción actúa como uno de los principales estímulos
para los cambios continuos, incrementales y evolutivos en el sistema.
3) Dirigir y gestionar el flujo: Se debe supervisar, medir y reportar el flujo de trabajo a través de cada estado.
Al gestionar activamente el flujo, los cambios continuos, graduales y evolutivos del sistema pueden ser
evaluados para tener efectos positivos o negativos.
4) Hacer las Políticas de Proceso Explícitas: Configure las reglas y directrices de su trabajo. Entienda las
necesidades y asegúrese de seguir las reglas. Las políticas definirán cuándo y por qué una tarjeta debe
pasar de una columna a otra. Escríbalas. Cambie las reglas cuando la realidad cambie.
5) Utilizar modelos para reconocer oportunidades de mejora: Cuando los equipos tienen un entendimiento
común de las teorías sobre el trabajo, el flujo de trabajo, el proceso y el riesgo, es más probable que sea
capaz de construir una comprensión compartida de un problema y proponer acciones de mejora que
puedan ser aprobadas por consenso. El método Kanban sugiere que un enfoque científico sea utilizado
para implementar los cambios continuos, graduales y evolutivos. El método no prescribe un método
científico específico para utilizarlo.

Más contenido relacionado

La actualidad más candente

Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
Fabian Garzon
 
Adopción de una metodología agil para proyectos de software
Adopción de una metodología agil  para proyectos de softwareAdopción de una metodología agil  para proyectos de software
Adopción de una metodología agil para proyectos de software
fredarwin
 
Metodos agiles 3
Metodos agiles 3Metodos agiles 3
Metodos agiles 3
paotacuba
 
Metodologías agiles
Metodologías agilesMetodologías agiles
Metodologías agiles
Joan Sebastián Ramírez Pérez
 
El proyecto en ingenieria.pdf
El proyecto en ingenieria.pdfEl proyecto en ingenieria.pdf
El proyecto en ingenieria.pdf
alejandromartinezzan1
 
Metodologías agiles del desarrollo software
Metodologías agiles del desarrollo softwareMetodologías agiles del desarrollo software
Metodologías agiles del desarrollo softwareRicardo Mateus
 
ASD (Adaptive Software Development)
ASD (Adaptive Software Development)ASD (Adaptive Software Development)
ASD (Adaptive Software Development)
urumisama
 
Marco de trabajo para un proyecto segun su tipo
Marco de trabajo para un proyecto segun su tipoMarco de trabajo para un proyecto segun su tipo
Marco de trabajo para un proyecto segun su tipo
loreeleeii
 
Metodologias Agiles
Metodologias AgilesMetodologias Agiles
Metodologias Agilespuyol10
 
Metodologías ágiles en el desarrollo de software
Metodologías ágiles en el desarrollo de softwareMetodologías ágiles en el desarrollo de software
Metodologías ágiles en el desarrollo de softwareprinceos
 
01
0101
Metodologías agiles
Metodologías agilesMetodologías agiles
Metodologías agiles
UCATEBA
 
Programación extrema
Programación extremaProgramación extrema
Programación extrema
Brandon Betto
 
1ra presentacion metodologias agiles
1ra presentacion metodologias agiles1ra presentacion metodologias agiles
1ra presentacion metodologias agiles
Informatica Puente Alto
 

La actualidad más candente (17)

Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
 
Adopción de una metodología agil para proyectos de software
Adopción de una metodología agil  para proyectos de softwareAdopción de una metodología agil  para proyectos de software
Adopción de una metodología agil para proyectos de software
 
Metodos agiles 3
Metodos agiles 3Metodos agiles 3
Metodos agiles 3
 
Metodologías agiles
Metodologías agilesMetodologías agiles
Metodologías agiles
 
El proyecto en ingenieria.pdf
El proyecto en ingenieria.pdfEl proyecto en ingenieria.pdf
El proyecto en ingenieria.pdf
 
Metodologías agiles del desarrollo software
Metodologías agiles del desarrollo softwareMetodologías agiles del desarrollo software
Metodologías agiles del desarrollo software
 
ASD (Adaptive Software Development)
ASD (Adaptive Software Development)ASD (Adaptive Software Development)
ASD (Adaptive Software Development)
 
Dsdm
DsdmDsdm
Dsdm
 
Metodologiasagiles
MetodologiasagilesMetodologiasagiles
Metodologiasagiles
 
Marco de trabajo para un proyecto segun su tipo
Marco de trabajo para un proyecto segun su tipoMarco de trabajo para un proyecto segun su tipo
Marco de trabajo para un proyecto segun su tipo
 
Metodologias Agiles
Metodologias AgilesMetodologias Agiles
Metodologias Agiles
 
Metodologías ágiles en el desarrollo de software
Metodologías ágiles en el desarrollo de softwareMetodologías ágiles en el desarrollo de software
Metodologías ágiles en el desarrollo de software
 
01
0101
01
 
Metodologías agiles
Metodologías agilesMetodologías agiles
Metodologías agiles
 
Programación extrema
Programación extremaProgramación extrema
Programación extrema
 
Public3
Public3Public3
Public3
 
1ra presentacion metodologias agiles
1ra presentacion metodologias agiles1ra presentacion metodologias agiles
1ra presentacion metodologias agiles
 

Destacado

урок 32 розділові знаки в складнопідрядному реченні
урок 32 розділові знаки в складнопідрядному реченніурок 32 розділові знаки в складнопідрядному реченні
урок 32 розділові знаки в складнопідрядному реченні
Vitaliy Babak
 
Nilesh Bhagchandani,Project on Visual Basic Programming,Final Year BCA ,Dezyn...
Nilesh Bhagchandani,Project on Visual Basic Programming,Final Year BCA ,Dezyn...Nilesh Bhagchandani,Project on Visual Basic Programming,Final Year BCA ,Dezyn...
Nilesh Bhagchandani,Project on Visual Basic Programming,Final Year BCA ,Dezyn...
dezyneecole
 
Resume -Naveen Jain CA
Resume -Naveen Jain CAResume -Naveen Jain CA
Resume -Naveen Jain CACA Naveen Jain
 
Basic knowledge about auditing
Basic knowledge about auditingBasic knowledge about auditing
Basic knowledge about auditing
Mr. Md. Nahid Hasan
 
20151208 Hydrocarbon training Cyprus - Stakeholders session
20151208 Hydrocarbon training Cyprus - Stakeholders session20151208 Hydrocarbon training Cyprus - Stakeholders session
20151208 Hydrocarbon training Cyprus - Stakeholders sessionJarno Dakhorst
 
20111110 KEMA Studiemiddag NTA 8080
20111110 KEMA Studiemiddag NTA 808020111110 KEMA Studiemiddag NTA 8080
20111110 KEMA Studiemiddag NTA 8080Jarno Dakhorst
 
20100506 EBC Towards a global certification system for biomass
20100506 EBC Towards a global certification system for biomass20100506 EBC Towards a global certification system for biomass
20100506 EBC Towards a global certification system for biomassJarno Dakhorst
 
Міжнародні договори 1921 – 1929рр. Версальсько – вашингтонська система
Міжнародні договори 1921 – 1929рр. Версальсько – вашингтонська системаМіжнародні договори 1921 – 1929рр. Версальсько – вашингтонська система
Міжнародні договори 1921 – 1929рр. Версальсько – вашингтонська система
pv01com
 
Prueba ntics
Prueba nticsPrueba ntics
Prueba nticsJohaabril
 
Creating a Local Polyglot Community
Creating a Local Polyglot CommunityCreating a Local Polyglot Community
Creating a Local Polyglot Community
Alexander Ferguson
 
mi Cuento Roger Perdomo
mi Cuento Roger Perdomomi Cuento Roger Perdomo
mi Cuento Roger Perdomo
william yajue
 
урок 05 усний стислий переказ розповідного тексту
урок 05 усний стислий переказ розповідного текстуурок 05 усний стислий переказ розповідного тексту
урок 05 усний стислий переказ розповідного тексту
Vitaliy Babak
 
Synthesis of 3,6 dicarboxylate tetrazines for Inverse Electron
Synthesis of 3,6 dicarboxylate tetrazines for Inverse ElectronSynthesis of 3,6 dicarboxylate tetrazines for Inverse Electron
Synthesis of 3,6 dicarboxylate tetrazines for Inverse ElectronTyler Casselman
 
주보10 30
주보10 30주보10 30
2016 sking motors electrical vehicels and car without price(1)
2016 sking motors electrical vehicels and car without price(1)2016 sking motors electrical vehicels and car without price(1)
2016 sking motors electrical vehicels and car without price(1)sking motors
 
Contaminación parcial.
Contaminación parcial.Contaminación parcial.
Contaminación parcial.looorena123
 

Destacado (17)

урок 32 розділові знаки в складнопідрядному реченні
урок 32 розділові знаки в складнопідрядному реченніурок 32 розділові знаки в складнопідрядному реченні
урок 32 розділові знаки в складнопідрядному реченні
 
Nilesh Bhagchandani,Project on Visual Basic Programming,Final Year BCA ,Dezyn...
Nilesh Bhagchandani,Project on Visual Basic Programming,Final Year BCA ,Dezyn...Nilesh Bhagchandani,Project on Visual Basic Programming,Final Year BCA ,Dezyn...
Nilesh Bhagchandani,Project on Visual Basic Programming,Final Year BCA ,Dezyn...
 
Resume -Naveen Jain CA
Resume -Naveen Jain CAResume -Naveen Jain CA
Resume -Naveen Jain CA
 
Basic knowledge about auditing
Basic knowledge about auditingBasic knowledge about auditing
Basic knowledge about auditing
 
Phrase1_Industy_Assignment
Phrase1_Industy_AssignmentPhrase1_Industy_Assignment
Phrase1_Industy_Assignment
 
20151208 Hydrocarbon training Cyprus - Stakeholders session
20151208 Hydrocarbon training Cyprus - Stakeholders session20151208 Hydrocarbon training Cyprus - Stakeholders session
20151208 Hydrocarbon training Cyprus - Stakeholders session
 
20111110 KEMA Studiemiddag NTA 8080
20111110 KEMA Studiemiddag NTA 808020111110 KEMA Studiemiddag NTA 8080
20111110 KEMA Studiemiddag NTA 8080
 
20100506 EBC Towards a global certification system for biomass
20100506 EBC Towards a global certification system for biomass20100506 EBC Towards a global certification system for biomass
20100506 EBC Towards a global certification system for biomass
 
Міжнародні договори 1921 – 1929рр. Версальсько – вашингтонська система
Міжнародні договори 1921 – 1929рр. Версальсько – вашингтонська системаМіжнародні договори 1921 – 1929рр. Версальсько – вашингтонська система
Міжнародні договори 1921 – 1929рр. Версальсько – вашингтонська система
 
Prueba ntics
Prueba nticsPrueba ntics
Prueba ntics
 
Creating a Local Polyglot Community
Creating a Local Polyglot CommunityCreating a Local Polyglot Community
Creating a Local Polyglot Community
 
mi Cuento Roger Perdomo
mi Cuento Roger Perdomomi Cuento Roger Perdomo
mi Cuento Roger Perdomo
 
урок 05 усний стислий переказ розповідного тексту
урок 05 усний стислий переказ розповідного текстуурок 05 усний стислий переказ розповідного тексту
урок 05 усний стислий переказ розповідного тексту
 
Synthesis of 3,6 dicarboxylate tetrazines for Inverse Electron
Synthesis of 3,6 dicarboxylate tetrazines for Inverse ElectronSynthesis of 3,6 dicarboxylate tetrazines for Inverse Electron
Synthesis of 3,6 dicarboxylate tetrazines for Inverse Electron
 
주보10 30
주보10 30주보10 30
주보10 30
 
2016 sking motors electrical vehicels and car without price(1)
2016 sking motors electrical vehicels and car without price(1)2016 sking motors electrical vehicels and car without price(1)
2016 sking motors electrical vehicels and car without price(1)
 
Contaminación parcial.
Contaminación parcial.Contaminación parcial.
Contaminación parcial.
 

Similar a Metodologías Agiles

Metodos3
Metodos3Metodos3
Metodos3
Brandon Betto
 
Metodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XPMetodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XP
Jose I. Honrado
 
Metodologia scrum
Metodologia scrumMetodologia scrum
Metodologia scrum
Karla Leticia Aguilar Lopez
 
SEMANA 14 METODOS ÁGILES DE INNOVACIÓN.ppt
SEMANA 14 METODOS ÁGILES DE INNOVACIÓN.pptSEMANA 14 METODOS ÁGILES DE INNOVACIÓN.ppt
SEMANA 14 METODOS ÁGILES DE INNOVACIÓN.ppt
PGNaya
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agilesmartin8730
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agilesmartin8730
 
Metodologías de Desarrollo de Software Jr
 Metodologías de Desarrollo de Software Jr Metodologías de Desarrollo de Software Jr
Metodologías de Desarrollo de Software Jr
Junior Leal
 
Articulo agiles metodos
Articulo agiles metodosArticulo agiles metodos
Articulo agiles metodos
Tito Gonzalo Chipana Huarcusi
 
Todo agilok
Todo agilokTodo agilok
Todo agilok
CRJOSE
 
TP_6 GRUPAL Metodologías ágiles FAURE-BURATTI.pptx
TP_6 GRUPAL Metodologías ágiles FAURE-BURATTI.pptxTP_6 GRUPAL Metodologías ágiles FAURE-BURATTI.pptx
TP_6 GRUPAL Metodologías ágiles FAURE-BURATTI.pptx
Andrea Alejandra Fracassi Ravier
 
Metodologias de desarrollos ágiles vs tradicionales.pptx
Metodologias de desarrollos ágiles vs tradicionales.pptxMetodologias de desarrollos ágiles vs tradicionales.pptx
Metodologias de desarrollos ágiles vs tradicionales.pptx
MargotVenegas2
 
metodologia agil.ppt
metodologia agil.pptmetodologia agil.ppt
metodologia agil.ppt
brian roa
 
Metodos agiles
Metodos agilesMetodos agiles
Metodos agiles
Raul Guadarrama
 
FACCI METODOLOGIAS AGILES
FACCI METODOLOGIAS AGILESFACCI METODOLOGIAS AGILES
FACCI METODOLOGIAS AGILESafrancoing
 
Metodologias ágiles de desarrollo_1.1_2024.pptx
Metodologias ágiles de desarrollo_1.1_2024.pptxMetodologias ágiles de desarrollo_1.1_2024.pptx
Metodologias ágiles de desarrollo_1.1_2024.pptx
JimenaRamosMamani1
 
Las metodologías usadas en el Desarrollo de SW en el Perú
Las metodologías usadas en el Desarrollo de SW en el PerúLas metodologías usadas en el Desarrollo de SW en el Perú
Las metodologías usadas en el Desarrollo de SW en el Perú
Pagina web Peru - F5mas
 
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
Ander Martinez
 
Integración de Diseño Centrado en el Usuario y metodologías ágiles en el desa...
Integración de Diseño Centrado en el Usuario y metodologías ágiles en el desa...Integración de Diseño Centrado en el Usuario y metodologías ágiles en el desa...
Integración de Diseño Centrado en el Usuario y metodologías ágiles en el desa...
Víctor Manuel García Luna
 
Informe final
Informe finalInforme final
Informe final
Sergio Montero
 
Metodologias_Agiles
Metodologias_AgilesMetodologias_Agiles
Metodologias_Agiles
JavierQuiroz51
 

Similar a Metodologías Agiles (20)

Metodos3
Metodos3Metodos3
Metodos3
 
Metodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XPMetodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XP
 
Metodologia scrum
Metodologia scrumMetodologia scrum
Metodologia scrum
 
SEMANA 14 METODOS ÁGILES DE INNOVACIÓN.ppt
SEMANA 14 METODOS ÁGILES DE INNOVACIÓN.pptSEMANA 14 METODOS ÁGILES DE INNOVACIÓN.ppt
SEMANA 14 METODOS ÁGILES DE INNOVACIÓN.ppt
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
 
Metodologías de Desarrollo de Software Jr
 Metodologías de Desarrollo de Software Jr Metodologías de Desarrollo de Software Jr
Metodologías de Desarrollo de Software Jr
 
Articulo agiles metodos
Articulo agiles metodosArticulo agiles metodos
Articulo agiles metodos
 
Todo agilok
Todo agilokTodo agilok
Todo agilok
 
TP_6 GRUPAL Metodologías ágiles FAURE-BURATTI.pptx
TP_6 GRUPAL Metodologías ágiles FAURE-BURATTI.pptxTP_6 GRUPAL Metodologías ágiles FAURE-BURATTI.pptx
TP_6 GRUPAL Metodologías ágiles FAURE-BURATTI.pptx
 
Metodologias de desarrollos ágiles vs tradicionales.pptx
Metodologias de desarrollos ágiles vs tradicionales.pptxMetodologias de desarrollos ágiles vs tradicionales.pptx
Metodologias de desarrollos ágiles vs tradicionales.pptx
 
metodologia agil.ppt
metodologia agil.pptmetodologia agil.ppt
metodologia agil.ppt
 
Metodos agiles
Metodos agilesMetodos agiles
Metodos agiles
 
FACCI METODOLOGIAS AGILES
FACCI METODOLOGIAS AGILESFACCI METODOLOGIAS AGILES
FACCI METODOLOGIAS AGILES
 
Metodologias ágiles de desarrollo_1.1_2024.pptx
Metodologias ágiles de desarrollo_1.1_2024.pptxMetodologias ágiles de desarrollo_1.1_2024.pptx
Metodologias ágiles de desarrollo_1.1_2024.pptx
 
Las metodologías usadas en el Desarrollo de SW en el Perú
Las metodologías usadas en el Desarrollo de SW en el PerúLas metodologías usadas en el Desarrollo de SW en el Perú
Las metodologías usadas en el Desarrollo de SW en el Perú
 
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
 
Integración de Diseño Centrado en el Usuario y metodologías ágiles en el desa...
Integración de Diseño Centrado en el Usuario y metodologías ágiles en el desa...Integración de Diseño Centrado en el Usuario y metodologías ágiles en el desa...
Integración de Diseño Centrado en el Usuario y metodologías ágiles en el desa...
 
Informe final
Informe finalInforme final
Informe final
 
Metodologias_Agiles
Metodologias_AgilesMetodologias_Agiles
Metodologias_Agiles
 

Último

PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 

Último (6)

PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 

Metodologías Agiles

  • 1. 1 METODOLOGÍAS AGILES En la actualidad, todo proyecto debe entregarse lo más rápido posible y con una calidad impecable. Y el desarrollo de software no se queda atrás. Es común que los clientes (internos o externos) soliciten aplicaciones cada vez más complejas, tanto en su desarrollo como en su análisis. Como resultado, son muchas las ocasiones en las que no se llegan a cumplir las necesidades de los clientes. CONCEPTO El desarrollo ágil de software envuelve un enfoque para la toma de decisiones en los proyectos de software, que se refiere a métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan con el tiempo según la necesidad del proyecto. Así el trabajo es realizado mediant e la colaboración de equipos auto-organizados y multidisciplinarios, inmersos en un proceso compartido de toma de decisiones a corto plazo. CARACTERISTICAS PRINCIPALES Según el Manifiesto Ágil se valora: 1) Al individuo y las interacciones del equipo de desarrollo sobre el proceso y las herramientas. La gente es el principal factor de éxito de un proyecto software. Es más importante construir un buen equipo que construir el entorno. Muchas veces se comete el error de construir primero el entorno y esperar que el equipo se adapte automáticamente. Es mejor crear el equipo y que éste configure su propio entorno de desarrollo en base a sus necesidades. 2) Desarrollar software que funciona más que conseguir una buena documentación. La regla a seguir es .no producir documentos a menos que sean necesarios de forma inmediata para tomar una decisión importante. Estos documentos deben ser cortos y centrarse en lo fundamental. 3) La colaboración con el cliente más que la negociación de un contrato. Se propone que exista una interacción constante entre el cliente y el equipo de desarrollo. Esta colaboración entre ambos será la que marque la marcha del proyecto y asegure su éxito. 4) Responder a los cambios más que seguir estrictamente un plan. La habilidad de responder a los cambios que puedan surgir a lo largo del proyecto (cambios en los requisitos, en la tecnología, en el equipo, etc.) determina también el éxito o fracaso del mismo. Por lo tanto, la planificación no debe ser estricta sino flexible y abierta. VENTAJAS SOBRE LAS METODOLOGÍAS TRADICIONALES Metodologías Tradicionales Metodologías Ágiles Basadas en normas provenientes de estándares seguidos por el entorno de desarrollo. Basadas en heurísticas provenientes de prácticas de producción de código. Cierta resistencia a los cambios. Especialmente preparados para cambios durante el proyecto. Impuestas externamente. Impuestas internamente (por el equipo). Proceso menos controlado, con pocos principios. Proceso mucho más controlado, con numerosas políticas/normas. Existe un contrato prefijado. No existe contrato tradicional o al menos es bastante flexible.
  • 2. 2 El cliente es parte del equipo de desarrollo mediante reuniones. El cliente interactúa con el equipo de desarrollo. Grupos grandes y posiblemente distribuidos. Grupos pequeños (<10 integrantes) y trabajando en el mismo sitio. Más artefactos. Pocos artefactos. Desarrollo individual con roles y responsabilidades estrictas. Transferencia de conocimiento: la programación en grupo propicia el conocimiento colectivo. Diseño flexible y extensible, modelos y documentación exhaustiva. Diseño simple: documentación mínima enfocada en la comunicación. Actividades de control orientadas a los hitos. Liderazgo-Colaboración: empoderamiento y auto organización. Planificación predictiva y aislada. Planificación adaptativa vista en entregas frecuentes y colaboración del cliente. La arquitectura del software es esencial y se expresa mediante modelos. Menos énfasis en la arquitectura del software. En primer lugar, las metodologías ágiles mejoran la satisfacción del cliente dado que se involucrará y comprometerá a lo largo del proyecto. En cada etapa del desarrollo se informará al cliente sobre los progresos del mismo. De ese modo, el cliente puede sumar su experiencia para optimizar las características del producto final. Se pueden evitar así numerosos malentendidos dado que el cliente poseerá en todo momento una completa visión del estado del producto. Asimismo, mejora la motivación e implicación del equipo de desarrollo. Pero esta mejora no es casual: las metodologías ágiles permiten a todos los miembros del equipo conocer el estado del proyecto en cualquier momento. Los compromisos son negociados y aceptados por todos los miembros del equipo y las ideas de cualquiera de sus integrantes son tenidas en cuenta. Destacar que los procesos ágiles permiten ahorrar tanto tiempo como costes. El desarrollo ágil trabaja de un modo más eficiente y rápido que otras metodologías. Además, estos procesos ponen el foco en cumplir estrictamente el presupuesto y los plazos pactados a la hora de definir y planificar el proyecto. Se trabaja con mayor velocidad y eficiencia. En las metodologías ágiles se trabaja realizando entregas parciales pero funcionales del producto. De ese modo, es posible entregar en el menor intervalo de tiempo posible una versión funcional del producto. Gracias a las entregas parciales (centradas en entregar en primer lugar aquellas funcionalidades que en verdad aportan valor) y a la implicación del cliente será posible eliminar aquellas características innecesarias del producto. Las metodologías ágiles permiten mejorar la calidad del producto. La continua interacción entre los desarrolladores y los clientes tienen como objetivo asegurar que el producto final sea exactamente lo que el cliente quiere y necesita. Además, este enfoque permite abrazar la excelencia tecnológica, lo que permite obtener un producto tecnológicamente superior. Por otro lado, esta metodología permite alertar rápidamente tanto de errores como de problemas. En la etapa de planificación, el equipo ha presentado una hoja de ruta anticipando y dando respuesta a los principales problemas técnicos y a la velocidad en la que se puede trabajar. Con metodologías más tradicionales, los errores no identificados en las primeras fases del proyecto suelen acarrear costes muy altos. Y, finalmente, las metodologías ágiles permiten rentabilizar nuestras inversiones más rápidamente. Gracias a la realización de entregas tempranas el cliente tendrá rápido acceso a aquellas funcionalidades que en verdad aportan valor acelerando el retorno de la inversión.
  • 3. 3 CICLO DE VIDA Los ciclos de vida adaptativos, también conocidos como métodos orientados al cambio o métodos ágiles, responden a niveles altos de cambio y a la participación continua de los interesados. Existen dos modelos básicos para este tipo de ciclos de vida, aquellos CENTRADOS EN EL FLUJO y otros centrados en CICLOS ITERATIVOS E INCREMENTALES. En el primer caso se establecen limitaciones muy c laras sobre la concurrencia de actividades (Work in Progress) y en el último las iteraciones muy rápidas (entre 1 y 4 semanas) donde se realiza el trabajo (Sprint). Habitualmente en los modelos ágiles el alcance global del proyecto será descompuesto en un conjunto de requisitos o trabajos a realizar (en ocasiones denominado Product Backlog). Al inicio de una iteración el equipo define las funcionalidades que serán abordadas en ese ciclo. Al final de cada iteración el producto debe estar listo para su revisión por el cliente. Este tipo de ciclo de vida requiere de equipos muy involucrados que incluyan al patrocinador o al cliente para proporcionar continua retroalimentación. Generalmente se opta por los métodos ágiles en entornos que cambian rápidamente, cuando el alcance es confuso o cuando la aportación de valor es muy cambiante y con equipos altamente involucrados. PRINCIPALES METODOLOGÍAS AGILES 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 destacadas hasta el momento podemos nombrar: XP – EXTREME PROGRAMMING: está 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. XP se basa en realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los cambios. XP se define como especialmente adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo técnico. Muchas de las prácticas propuestas contribuyen a maximizar la comunicación entre las personas, permitiendo de esa forma una mayor transferencia de conocimiento entre los desarrolladores y con el cliente, quien también es parte del equipo. Esto es logrado en la práctica gracias a la disposición física del lugar de trabajo. Asimismo, XP impone un alto nivel de disciplina entre los programadores. El mismo permite mantener un mínimo nivel de documentación, lo cual a su vez se traduce en una gran velocidad en el desarrollo. Sin embargo, una desventaja que deviene de esta falta de documentación es la incapacidad de persistir la arquitectura y demás cuestiones de análisis, diseño e implementación, aún después de que el proyecto haya concluido. Características: 1) Desarrollo iterativo e incremental: pequeñas mejoras, unas tras otras. 2) Pruebas unitarias continuas, frecuentemente repetidas y automatizadas, incluyendo pruebas de regresión. Se aconseja escribir el código de la prueba antes de la codificación. Véase, por ejemplo, las herramientas de prueba JUnit orientada a Java, DUnit orientada a Delphi, NUnit para la plataforma.NET o PHPUnit para PHP. Estas tres últimas inspiradas en JUnit, la cual, a su vez, se insipiró en SUnit, el primer framework orientado a realizar tests, realizado para el lenguaje de programación Smalltalk. 3) Programación en parejas: se recomienda que las tareas de desarrollo se lleven a cabo por dos personas en un mismo puesto. La mayor calidad del código escrito de esta manera -el código es revisado y discutido mientras se escribe- es más importante que la posible pérdida de productividad inmediata.
  • 4. 4 4) Frecuente integración del equipo de programación con el cliente o usuario. Se recomienda que un representante del cliente trabaje junto al equipo de desarrollo. 5) Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer entregas frecuentes. 6) Refactorización del código, es decir, reescribir ciertas partes del código para aumentar su legibilidad y mantenibilidad, pero sin modificar su comportamiento. Las pruebas han de garantizar que en la refactorización no se ha introducido ningún fallo. 7) Propiedad del código compartida: en vez de dividir la responsabilidad en el desarrollo de cada módulo en grupos de trabajo distintos, este método promueve el que todo el personal pueda corregir y extender cualquier parte del proyecto. Las frecuentes pruebas de regresión garantizan que los posibles errores serán detectados. 8) Simplicidad en el código: es la mejor manera de que las cosas funcionen. Cuando todo funcione se podrá añadir funcionalidad si es necesario. La programación extrema apuesta que es más sencillo hacer algo simple y tener un poco de trabajo extra para cambiarlo si se requiere, que realizar algo complicado y quizás nunca utilizarlo. SCRUM: es un modelo de referencia que define un conjunto de prácticas y roles, y que puede tomarse como punto de partida para definir el proceso de desarrollo que se ejecutará durante un proyecto. Scrum es un método iterativo e incremental que enfatiza prácticas y valores de project management por sobre las demás disciplinas del desarrollo. Al principio del proyecto se define el Product Backlog, que contiene todos los requerimientos funcionales y no funcionales que deberá satisfacer el sistema a construir. Los mismos estarán especificados de acuerdo a las convenciones de la organización ya sea mediante: features, casos de uso, diagramas de flujo de datos, incidentes, tareas, etc. El Product Backlog será definido durante reuniones de planeamiento con los stakeholders. A partir de ahí se definirán las iteraciones, conocidas como Sprint en la juerga de Scrum, en las que se irá evolucionando la aplicación evolutivamente. Cada Sprint tendrá su propio Sprint Backlog que será un subconjunto del Product Backlog con los requerimientos a ser construidos en el Sprint correspondiente. La duración recomendada del Sprint es de 1 mes. Dentro de cada Sprint el Scrum Master (equivalente al Líder de Proyecto) llevará a cabo la gestión de la iteración, convocando diariamente al Scrum Daily Meeting que representa una reunión de avance diaria de no más de 15 minutos con el propósito de tener realimentación sobre las tareas de los recursos y los obstáculos que se presentan. Al final de cada Sprint, se realizará un Sprint Review para evaluar los artefactos construidos y comentar el planeamiento del próximo Sprint. La intención de Scrum es la de maximizar la realimentación sobre el desarrollo pudiendo corregir problemas y mitigar riesgos de forma temprana. Su uso se está extendiendo cada vez más dentro de la comunidad de Metodologías Ágiles, siendo combinado con otras – como XP – para completar sus carencias. Cabe mencionar que Scrum no propone el uso de ninguna práctica de desarrollo en particular; sin embargo, es habitual emplearlo como un framework ágil de administración de proyectos que puede ser combinado con cualquiera de las metodologías mencionadas. Características: 1) Enfatiza valores y prácticas de gestión, sin pronunciarse sobre requerimientos, prácticas de desarrollo, implementación y demás cuestiones técnicas 2) Hace uso de Equipos auto-dirigidos y auto-organizados. 3) Puede ser aplicado teóricamente a cualquier contexto en donde un grupo de gente necesita trabajar junta para lograr una meta común. 4) Desarrollo de software iterativos incrementales basados en prácticas agiles 5) Iteraciones de treinta días; aunque se pueden realizar con más frecuencia, estas iteraciones, conocidas como Sprint
  • 5. 5 6) Dentro de cada Sprint se denomina el Scrum Master al Líder de Proyecto quien llevará a cabo la gestión de la iteración 7) Se convocan diariamente un “Scrum Daily Meeting” el cual representa una reunión de avance diaria de no más de 15 minutos con el propósito de tener realimentación sobre las tareas de los recursos y los obstáculos que se presentan. En la cual se responden preguntas como: ¿Qué has hecho desde el ultimo encuentro? ¿Qué obstáculos hay para cumplir la meta? ¿Qué harás antes del próximo encuentro? La metodología SCRUM es especialmente valiosa para proyectos de empresa complejos y cuya ejecución se haga efectiva en situaciones poco habituales.  Cuando es indispensable obtener resultados de forma inmediata.  Cuando los requisitos son cambiantes y poco definidos.  Cuando las entregas se alargan o los costes del plan se disparan.  Cuando hay un alto grado de rotación del personal dentro de los equipos.  Cuando un proyecto tradicional requiere soluciones de gestión. CRYSTAL CLEAR: Se trata de un conjunto de metodologías para el desarrollo de software caracterizadas por estar centradas en las personas que componen el equipo y la reducción al máximo del número de artefactos producidos. La Metodología Cristal se identifica con colores diferentes cada método, y su elección debe ser consecuencia del tamaño y criticidad del proyecto, de forma que los de mayor tamaño, o aquellos en los que la presencia de errores o desbordamiento de agendas implique consecuencias graves, deben adoptar metodologías más pesadas. De esta forma se pretende obtener mayor rentabilidad en el desarrollo de proyectos de software. Los métodos Crystal no prescriben prácticas concretas, porque están en continuo cambio. 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. Es un método para gestionar el trabajo intelectual, con énfasis en la entrega justo a tiempo, mientras no se sobrecargan los miembros del equipo. En este enfoque, el proceso, desde la definición de una tarea hasta su entrega al cliente, se muestra para que los participantes lo vean y los miembros del equipo tomen el trabajo de una cola. Características: 1) Visualizar: el flujo de trabajo y hacerlo visible es la base para comprender cómo avanza el trabajo. Sin comprender el flujo de trabajo, realizar los cambios adecuados es más difícil. Una forma común de visualizar el flujo de trabajo es el uso de columnas. Las columnas representan los diferentes estados o pasos en el flujo de trabajo. 2) Limitar el trabajo en curso: Limitar el trabajo en curso implica que un sistema de extracción se aplica en la totalidad o parte del flujo de trabajo. El sistema de extracción actúa como uno de los principales estímulos para los cambios continuos, incrementales y evolutivos en el sistema. 3) Dirigir y gestionar el flujo: Se debe supervisar, medir y reportar el flujo de trabajo a través de cada estado. Al gestionar activamente el flujo, los cambios continuos, graduales y evolutivos del sistema pueden ser evaluados para tener efectos positivos o negativos. 4) Hacer las Políticas de Proceso Explícitas: Configure las reglas y directrices de su trabajo. Entienda las necesidades y asegúrese de seguir las reglas. Las políticas definirán cuándo y por qué una tarjeta debe pasar de una columna a otra. Escríbalas. Cambie las reglas cuando la realidad cambie. 5) Utilizar modelos para reconocer oportunidades de mejora: Cuando los equipos tienen un entendimiento común de las teorías sobre el trabajo, el flujo de trabajo, el proceso y el riesgo, es más probable que sea capaz de construir una comprensión compartida de un problema y proponer acciones de mejora que puedan ser aprobadas por consenso. El método Kanban sugiere que un enfoque científico sea utilizado para implementar los cambios continuos, graduales y evolutivos. El método no prescribe un método científico específico para utilizarlo.