Principales
diferencias entre Metodologías de Desarrollo Ágiles Vs. Metodologías
Tradicionales:
Para
el desarrollo de software, se requiere de diversos elementos que agrupados hacen
que el desarrollo de software sea o no exitoso.
Para
esto existen las metodologías tradicionales que se modificaron para poder
aplicarlas al desarrollo de software,
aunque durante mucho tiempo fueron la única solución al desarrollo, hizo estas
metodologías poco flexibles y muy cuadriculadas. Estas consistían en una serie
fundamentos y conceptos aplicados al desarrollo de software, documentación,
planificación y procesos. (Plantillas, técnicas de administración, revisiones,
etc.)
Ante
las dificultades de las metodologías tradicionales referentes al tiempo y
flexibilidad, aparecen las metodologías ágiles como una respuesta metodológica,
especialmente porque están orientadas a proyectos pequeños, constituyen una
solución a la medida del entorno, simplificando las prácticas y asegurando la
calidad del producto.
El
término ágil, nace en febrero de 2001 en una reunión en Utah (EEUU), aplicado
al desarrollo de software, su objetivo era idear los valores y principios que permitirían
a los equipos de desarrollo crear software rápidamente, respondiendo a los
cambios surgidos a lo largo del proyecto, ofreciendo una alternativa a los
procesos tradicionales. En dicha reunión se creó The Agile Alliance[1],
organización, sin ánimo de lucro, que promueve los conceptos relacionados con
el desarrollo ágil de software, apoyando las organizaciones para que adopten
dichos conceptos.
Según
el Manifiesto ágil, se valora al individuo y las interacciones del equipo de
desarrollo sobre el proceso y las herramientas, desarrollar software que
funciona (más que conseguir una buena documentación), la colaboración con el
cliente (más que la negociación mediante contrato), respuesta a los cambios (más que seguir
rigurosamente algún plan).
Cuadro
comparativo: Metodologías tradicionales
y ágiles:
Metodologías
Tradicionales
|
Metodologías
Ágiles
|
-
Rigidez ante los cambios, de manera lentos o moderada
- Los
clientes interactúan con el equipo de desarrollo mediante reuniones
- Grupos
de gran tamaño y varias veces distribuidos en diferentes sitios
- Dependencia
de la arquitectura de software mediante modelos
- Poco
Feedback lo que extiende el tiempo de entrega
- Mínimos
roles
- Basadas
en normas de estándares de desarrollo
- Procesos
muy controlados por políticas y normas
- Seguimiento
estricto del plan inicial de desarrollo
|
-
Flexibilidad ante los cambios del proyecto de forma moderada a rápida
- Los
clientes hacen parte del equipo de desarrollo
- Grupos
pequeños (promedio 10 participantes in situ) en el mismo lugar.
- Menor
dependencia de la arquitectura de software
- Continuo
Feedback acortando el tiempo de entrega
- Diversidad
de roles
- Basadas
en heurísticas a partir de prácticas de producción de código
- Procesos
menos controlados, pocas políticas y
normas
- Capacidad
de respuesta ante los cambios
|
Estas
diferencias, no solo afectan el proceso en sí, sino también el contexto del
equipo de trabajo y su organización
La metodología ágil XP:
Una
de las metodologías que más esta difundiéndose en la actualidad, es la Programación
Extrema (XP[2], Extreme
Programming). Esta metodología ágil está enfocada a fortalecer las relaciones
interpersonales como clave para el éxito en desarrollo de software, promoviendo
el trabajo en equipo, un buen clima laboral y preocupándose por el aprendizaje
de los desarrolladores. Kent Beck, es el padre de XP (1999), esta metodología se
basa en la retroalimentación continua entre el equipo de desarrollo y el cliente,
simplificando las soluciones implementadas y disposición para los cambios; Adecuada
para proyectos con requisitos imprecisos, cambiantes y con alto riesgo técnico.
Los
roles de acuerdo con la propuesta original de Kent Beck son:
- Programador: Escribe las pruebas unitarias y
produce el código del sistema, se recomienda la programación por parejas para
minimizar los errores ya que se revisa el código y se discute durante su
programación.
- Cliente: Escribe las historias de usuario y
las pruebas funcionales para validar su implementación, también asigna la
prioridad a las historias de usuario y decide cuáles se implementan en cada
iteración centrándose en aportar mayor valor al negocio.
- Tester o Delegado de pruebas: Ayuda al
cliente a escribir las pruebas funcionales; Ejecuta las pruebas regularmente,
difunde los resultados en el equipo y es el responsable de las herramientas de
soporte para las pruebas.
- Tracker o Encargado de seguimiento: Proporciona
retroalimentación al equipo, verifica el grado de acierto entre las
estimaciones realizadas y el tiempo real dedicado para mejorar estimaciones futuras,
también hace seguimiento del progreso de cada iteración.
- Entrenador o Coach: Responsable del proceso
global, provee guías al equipo de manera que se apliquen las prácticas XP y se
siga el proceso correctamente.
- Consultor: Miembro externo del equipo, con
conocimiento específico en algún tema necesario para el proyecto, ayuda a
resolver problemas que puedan surgir.
- Gestor o Big Boss: Es el vínculo entre
clientes y programadores, encargado de que el equipo trabaje efectivamente
creando condiciones adecuadas. Su labor principalmente es coordinación.
El
ciclo de vida de XP consiste de seis fases:
- Exploración
- Planificación de la Entrega (Release)
- Iteraciones,
- Producción
- Mantenimiento
- Muerte del Proyecto
Software libre OSS
Es
un modelo de desarrollo donde no hay un orden estricto de creación, tiene
flexibilidad y diversidad en el desarrollo, interactúan diferentes actores y no
es controlada por ningún tipo de persona o entidad, sino que prima una gran
cantidad de intereses e intercambios, los desarrolladores son de clientes y
desarrolladores a la vez, de forma colaborativa se desarrolla software de
calidad con pequeños y frecuentes incrementos, tiene una decremento de costos
mientras se incrementan la seguridad y la estabilidad, los detalles del diseño
se revisan en línea, el código es escrito por pequeños grupos de
desarrolladores agiles y las pruebas son procesos rápidos y colaborativos
teniendo una retroalimentación es abundante y rápida con pruebas testeadas y pequeñas
entregas frecuentes por la comunidad de desarrollo
Las
herramientas de desarrollo que sustentan el OSS, son principalmente Internet, por
la facilidad de colaboración.
Gracias, me ayudo mucho en una tarea :D
ResponderEliminarBuena información
ResponderEliminargracias
ResponderEliminar