martes, 5 de abril de 2016

Metodologia Tradicional vs Metodologia Agil

 METODOLOGIA TRADICIONAL:
  Esta metodología del desarrollo del software se caracteriza por:
  • basarse en un ciclo de vida de desarrollo del software en cascada ya que organiza los proyectos en etapas que se ejecutan secuencialmente.
    1. Especificación de Requisitos
    2. Análisis
    3. Diseño
    4. Desarrollo
    5. Pruebas
    6. Implantación
    7. Mantenimiento
     
  • ejecutar las etapas una sola vez, lo que se define en cada etapa es inamovible y hasta que no finaliza con éxito una etapa no se pasa a la siguiente. Ejemplo: hasta que no se aprueba el diseño del software no se inicia el desarrollo y construcción del mismo.
  • definir etapas claramente diferenciadas en las que participan distintos profesionales especializados. 


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.
 
 Desventajas:

*  Si durante una etapa del ciclo del software nos damos cuenta de que algo está mal, la vuelta a una etapa anterior no está bien definida en la metodología.

*  El usuario no ve el producto hasta el final, no puede ir validando hitos intermedios e ir verificando que lo que se ha construido es lo que necesita.

*  Si mi negocio es muy cambiante, pueden variar las necesidades desde el día que se toman los requisitos hasta el día de inicio la construcción.



METODOLOGIA AGIL:

  Esta metodología se caracteriza por:
  • se basa en un ciclo de vida de desarrollo del software iterativo e incremental. Se repiten las etapas de cada ciclo, se va añadiendo funcionalidad al producto y se comprime al máximo el tiempo de las iteraciones, son iteraciones cortas de semanas. Se hacen entregas parciales del producto para ir validando con el usuario que el producto cumple los requisitos.
  • se solapan las etapas. No siempre dentro de cada iteración tiene que haber etapas en cascada, por ejemplo, la etapa de test se fusiona con la etapa de desarrollo o la del diseño con la etapa de construcción.
  • se cambia la documentación por la interacción cara a cara con el usuario, hay equipos multidisciplinares sin separación de roles (todos pueden diseñar y programar) y se tiende a una gestión de proyecto como equipo auto organizado y colaborativo.
 Entre las principales metodologia agil encontramos:

SCRUM:es un proceso en el que se aplican de manera regular un conjunto de buenas practicas para trabajar colaborativamente, en equipo, y obtener el mejor resultado posible de un proyecto.

Como tambien realizan entregas parciales y regulares del producto final, está especialmente indicado para proyectos en entornos complejos, donde se necesita obtener resultados pronto, donde los requisitos son cambiantes o poco definidos, donde la innovación, la competitividad, la flexibilidad y la productividad son fundamentales.

Programacion Extrema (XP) :esta centrada en potenciar las relaciones interpersonales, 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, se define como especialmente adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo técnico. 

 Desventajas:
  • Existe el riesgo de entrar en un ciclo de entrega de prototipos y nunca cerrar el proyecto.
  • La gestión es más rigurosa y con menos holgura para cometer errores.



 Conclusion:
  Ambas metodologías son buenas, sólo hay que identificar cuál es la que mejor se ajusta a cada proyecto, para utilizar metodología ágil se debe poseer experiencia trabajando con metodologías tradicionales, ya que la experiencia es la que predomina en los momentos cruciales del proyecto, además debe tener la capacidad de ser equipos auto-gestionados, altamente motivados y con gran innovación, 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 es esencial al inicio en un equipo de desarrollo de software, obligan al cliente a tomar las decisiones al inicio del proyecto.
 Ejemplo: 

 * Si el proyecto es de innovación, de investigación o desarrollo de un nuevo producto aún sin definir por completo y se prevén muchos cambios-Opta por Metodología ágil.

*En cambio si tienes muy claro lo que quieres y necesitas- Metodología tradicional.

No hay comentarios.:

Publicar un comentario