Está en la página 1de 11

Universidad Mariano Gálvez de Guatemala

Carrera: Ingeniería en Sistemas de Información y Ciencias de la

Computación

Asignatura: Ing. De Software

Catedrático: David Rene González Camey

Jornada: Sabatina

Investigación Metodologías Ágiles y Metodologías

tradicionales

Alumno:
Jorge Alberto López Alvarado
Carne No. 0900-09-133
Fecha: Viernes 20 Febrero 2014

i1
Contenido

INTRODUCCIÓN ............................................................................................................ 3

METODOLOGÍAS ÁGILES ........................................................................................... 4

TIPOS DE METODOLOGÍAS ÁGILES ......................................................................... 5

METODOLOGÍAS TRADICIONALES ......................................................................... 8

CONCLUSIÓN .............................................................................................................. 11

2
INTRODUCCIÓN
Desarrollar software implica muchas cosas, desde su planificación hasta la
puesta en marcha se deben de seguir un sinnúmero de pasos o actividades.
Hoy en día existen diversas metodologías para hacerlo, sin embargo es
necesario definir primero la naturaleza del software antes de elegir un
determinado ciclo de vida.

En el presente trabajo se detallan los dos grandes enfoques, tanto


metodologías tradicionales y metodologías ágiles, las primeras están pensadas
para el uso exhaustivo de documentación durante todo el ciclo del proyecto
mientras que las segundas ponen vital importancia en la capacidad de
respuesta a los cambios, la confianza en las habilidades del equipo y al
mantener una buena relación con el cliente. Se verán diferencias, ventajas,
desventajas y cual puede encajar en un proyecto de software para interés del
lector.

3
METODOLOGÍAS ÁGILES
En febrero de 2001, tras una reunión celebrada en Utah-EEUU, nace el término
“ágil” aplicado al desarrollo de software. En esta reunión participan un grupo de
17 expertos de la industria del software, incluyendo algunos de los creadores o
impulsores de metodologías de software. 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. Tras esta reunión
se creó The Agile Alliance 3, una organización, sin ánimo de lucro, dedicada a
promover los conceptos relacionados con el desarrollo ágil de software y
ayudar a las organizaciones para que adopten dichos conceptos. El punto de
partida fue el Manifiesto Ágil, un documento que resume la filosofía “ágil”,
siendo sus principios:

 La prioridad es satisfacer al cliente mediante tempranas y continuas


entregas de software que le aporte un valor.

 Dar la bienvenida a los cambios. Se capturan los cambios para que el


cliente tenga una ventaja competitiva.

 Entregar frecuentemente software que funcione desde un par de


semanas a un par de meses, con el menor intervalo de tiempo posible
entre entregas.

 La gente del negocio y los desarrolladores deben trabajar juntos a lo


largo del proyecto.

 Construir el proyecto en torno a individuos motivados. Darles el entorno


y el apoyo que necesitan y confiar en ellos para conseguir finalizar el
trabajo.

 El diálogo cara a cara es el método más eficiente y efectivo para


comunicar información dentro de un equipo de desarrollo.

4
 El software que funciona es la medida principal de progreso.

 Los procesos ágiles promueven un desarrollo sostenible. Los


promotores, desarrolladores y usuarios deberían ser capaces de
mantener una paz constante.

 La atención continua a la calidad técnica y al buen diseño mejora la


agilidad.

 La simplicidad es esencial.

 Las mejores arquitecturas, requisitos y diseños surgen de los equipos


organizados por sí mismos.

 En intervalos regulares, el equipo reflexiona respecto a cómo llegar a ser


más efectivo, y según esto ajusta su comportamiento.

TIPOS DE METODOLOGÍAS ÁGILES


Aunque los creadores e impulsores de las metodologías ágiles más populares
han suscrito el manifiesto ágil, cada metodología tiene características propias y
hace hincapié en algunos aspectos más específicos. A continuación se
resumen metodologías ágiles. La mayoría de ellas ya estaban siendo utilizadas
con éxito en proyectos reales pero les faltaba una mayor difusión y
reconocimiento.

XP (Extreme Programming)

La programación extrema o Extreme Programming (XP) es un enfoque de la


ingeniería de software formulado por Kent Beck, autor del primer libro sobre la
materia, Extreme Programming Explained: Embrace Change (1999). Es el más
destacado de los procesos ágiles de desarrollo de software. 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. XP se basa en realimentación continua entre el cliente y

5
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.

SCRUM

Desarrollada por Ken Schwaber, Jeff Sutherland y Mike Beedle. Define un


marco para la gestión de proyectos, que se ha utilizado con éxito durante los
últimos 10 años. Está especialmente indicada para proyectos con un rápido
cambio de requisitos. Sus principales características se pueden resumir en dos:

El desarrollo de software se realiza mediante iteraciones, denominadas sprints,


con una duración de 30 días. El resultado de cada sprint es un incremento
ejecutable que se muestra al cliente.

La segunda característica importante son las reuniones a lo largo proyecto,


entre ellas destaca la reunión diaria de 15 minutos del equipo de desarrollo
para coordinación e integración.

Crystal Methodologies

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. Han sido
desarrolladas por Alistair Cockburn. El desarrollo de software se considera un
juego cooperativo de invención y comunicación, limitado por los recursos a
utilizar. El equipo de desarrollo es un factor clave, por lo que se deben invertir
esfuerzos en mejorar sus habilidades y destrezas, así como tener políticas de
trabajo en equipo definidas. Estas políticas dependerán del tamaño del equipo,
estableciéndose una clasificación por colores, por ejemplo Crystal Clear (3 a 8
miembros) y Crystal Orange (25 a 50 miembros)

6
Dynamic Systems Development Method (DSDM)

Define el marco para desarrollar un proceso de producción de software. Nace


en 1994 con el objetivo de crear una metodología RAD unificada. Sus
principales características son:

Es un proceso iterativo e incremental y el equipo de desarrollo y el usuario


trabajan juntos. Propone cinco fases:

 Estudio viabilidad

 Estudio del negocio

 Modelado funcional

 Diseño y construcción

 Finalmente implementación.

Las tres últimas son iterativas, además de existir realimentación a todas las
fases

Adaptive Software Development (ASD)

Su impulsor es Jim Highsmith. Sus principales características son:

Iterativo, orientado a los componentes software más que a las tareas y


tolerante a los cambios.

El ciclo de vida que propone tiene tres fases esenciales: especulación,


colaboración y aprendizaje. En la primera de ellas se inicia el proyecto y se
planifican las características del software; en la segunda desarrollan las
características y finalmente en la tercera se revisa su calidad, y se entrega al
cliente. La revisión de los componentes sirve para aprender de los errores y
volver a iniciar el ciclo de desarrollo.

Feature -Driven Development (FDD)

Define un proceso iterativo que consta de 5 pasos. Las iteraciones son cortas
(hasta 2 semanas). Se centra en las fases de diseño e implementación del
7
sistema partiendo de una lista de características que debe reunir el software.
Sus impulsores son Jeff De Luca y Peter Coad.

Lean Development (LD)

Definida por Bob Charette’s a partir de su experiencia en proyectos con la


industria japonesa del automóvil en los años 80 y utilizada en numerosos
proyectos de telecomunicaciones en Europa. En LD, los cambios se consideran
riesgos, pero si se manejan adecuadamente se pueden convertir en
oportunidades que mejoren la productividad del cliente. Su principal
característica es introducir un mecanismo para implementar dichos cambios.

METODOLOGÍAS TRADICIONALES
Al inicio el desarrollo de software era artesanal en su totalidad, la fuerte
necesidad de mejorar el proceso y llevar los proyectos a la meta deseada,
tuvieron que importarse la concepción y fundamentos de metodologías
existentes en otras áreas y adaptarlas al desarrollo de software. Esta nueva
etapa de adaptación contenía el desarrollo dividido en etapas de manera
secuencial que de algo mejoraba la necesidad latente en el campo del
software.

Las metodologías tradicionales imponen una disciplina de trabajo sobre el


proceso de desarrollo del software, con el fin de conseguir un software más
eficiente. Para ello, se hace énfasis en la planificación total de todo el trabajo a
realizar y una vez que está todo detallado, comienza el ciclo de desarrollo del
producto software. Se centran especialmente en el control del proceso,
mediante una rigurosa definición de roles, actividades, artefactos, herramientas
y notaciones para el modelado y documentación detallada. Además, las
metodologías tradicionales no se adaptan adecuadamente a los cambios, por lo
que no son métodos adecuados cuando se trabaja en un entorno, donde los
requisitos no pueden predecirse o bien pueden variar.

8
Entre las principales metodologías tradicionales tenemos los ya tan conocidos
RUP y MSF entre otros, que centran su atención en llevar una documentación
exhaustiva de todo el proyecto y centran su atención en cumplir con un plan de
proyecto, definido todo esto, en la fase inicial del desarrollo del proyecto.

Otra de las características importantes dentro de este enfoque tenemos los


altos costos al implementar un cambio y al no ofrecer una buena solución para
proyectos donde el entorno es volátil.

Las metodologías tradicionales (formales) se focalizan en documentación,


planificación y procesos. (Plantillas, técnicas de administración, revisiones, etc.)

Entre las metodologías tradicionales o pesadas podemos citar:

RUP (Rational Unified Procces)

RUP fue creado por Grady Booch (creador del método Booch), Ivar Jacobson y
JamesJacobson (Creador de la Técnica de Modelado de Objetos), la misma
aparece en Junio de1998 con el acrónimo RUP 5.0 y puesto a la disposición
del público a inicios de 1999 y sufuncionamiento se centraba en las personas,
los procesos y las herramientas.Es un modelo que permite el desarrollo de
software a gran escala, mediante un procesocontinuo de pruebas y
retroalimentación, garantizando el cumplimiento de ciertosestándares de
calidad. Aunque con el inconveniente de generar mayor complejidad en
loscontroles de administración del mismo. Sin embargo, los beneficios
obtenidos recompensanel esfuerzo invertido en este aspecto.

MSF (Microsoft Solution Framework)

MSF es una flexible e interrelacionada serie de conceptos, modelos y mejores


prácticas de uso que controlan la planificación, el desarrollo y la gestión de
proyectos tecnológicos. MSF se centra en los modelos de proceso y de equipo
dejando en un segundo plano las selecciones tecnológicas. En el escenario de
modelos de mejora para la producción de software, se ha marcado dos
tendencias cada una de ellas con un contraste muy definido. Por un lado se

9
encuentran aquellos procesos que tienen gran cantidad de información ya que
así han sido impuestas por organismos internacionales y son muy apreciados
por grandes corporaciones o industrias de software. Por otro lado se
encuentran los modelos ágiles con procesos más rápidos y sencillos de
desarrollo, lo que ahora más llama la atención es la aparición de Microsoft en el
ámbito de los modelos de desarrollo de software, parecía mantenerse al
margen de esto ya que ellos han permanecido defendiendo sus propios
métodos y condenando errores ajenos

Iconix

Es una metodología de desarrollo de software, basada en la complejidad de


análisis de la metodología RUP (Rational Unified Processes) y la practicidad
para desarrollar de la metodología XP (Extreme Programming). Unifica un
conjunto de métodos de orientación a objetos, con el objetivo de abarcar todo
el ciclo de vida de un proyecto. Se considera un enfoque “minimalista”, ya que
comprende el conjunto mínimo de medidas que son necesarias para el
proyecto de desarrollo. Fue elaborado por Doug Rosenberg, y Kendall Scott a
partir de una síntesis del proceso unificado de los “3 amigos” Booch,
Rumbaugh y Jacobson. Es una metodología de desarrollo de software basada
en UML

10
CONCLUSIÓN
 El retrasar las decisiones en un proyecto de software permite potenciar
el valor del producto tanto para el cliente como al equipo o empresa que
desarrolla

 Para que un grupo de desarrollo adopte una metodología ágil debe


poseer experiencia trabajando con metodologías tradicionales, ya que la
experiencia es la que predomina en los mementos cruciales del
proyecto, además debe tener la capacidad de ser equipos auto-
gestionados, altamente motivados y con gran innovación

 Las metodologías tradicionales son pesadas y que suponen


obligatoriamente un “todo o nada”.

 Las metodologías ágiles son más modernas y mejores que cualquiera


de las tradicionales.

 Las actividades “de calidad” son inútiles y sólo funcionan en equipos


grandes, no se adaptan a nuestros proyectos. Cualquier cosa que nos
quite tiempo de tareas técnicas (programar, etc.) es una pérdida de
tiempo.

 El uso de metodologías tradicionales es esencial al inicio en un equipo


de desarrollo de software

 Las metodologías ágiles se deberían aplicar en proyectos donde exista


mucha incertidumbre donde el entorno es volátil, donde los requisitos no
se conocen con exactitud, mientras que las metodologías tradicionales
obligan al cliente a tomar las decisiones al inicio del proyecto.

11

También podría gustarte