martes, 5 de abril de 2016

LAS DIFERENCIAS ENTRE LAS METODOLOGÍAS ÁGILES Y TRADICIONALES

METODOLOGÍAS TRADICIONALES Y ÁGILES

Para desarrollar un software de calidad primero debemos seguir ciertos pasos que nos permitan cumplir con todo lo que el software necesita satisfacer a nuestro cliente, donde la decisión mas importante desde mi punto de vista sería escoger la metodología apropiada para un equipo en un determinado proyecto.
Las metodologías se pueden clasificar en dos grupos. Las metodologías tradicionales, que buscan siempre  una fuerte planificación y documentación durante todo el desarrollo, y las metodologías ágiles, en las que se enfoca al desarrollo de software el cual es incremental, cooperativo, sencillo y adaptado.

Metodologías tradicionales

Método de cascada, método considerado base de los otros tradicionales

Las metodologías tradicionales o denominadas a veces como metodologías pesadas.
buscan siempre llevar una documentación exhaustiva de todo el proyecto y en cumplir con un plan de proyecto al pié de la letra, definido todo esto, en la fase inicial del desarrollo del proyecto.
Otra de las características importantes dentro de este las tradicionales, es el alto costos que significaría  realizar un cambio a nuestro proyecto y la falta de flexibilidad en proyectos donde el entorno es cambiante.
Las metodologías tradicionales centran su atención en la documentación, planificación y procesos.

Metodologías ágiles

Ciclo de entrega general de las metodologías ágiles

las metodologías ágiles nacen como respuesta a los problemas que se presentan en  las metodologías tradicionales y se basa en dos aspectos fundamentales, retrasar las decisiones y la planificación adaptativa. las metodologías están basadas en adaptabilidad de los procesos de desarrollo.
Las metodologías ágiles ven mas importante la capacidad de adaptarse a los cambios que el seguir una plan estricto de desarrollo.

Diferencias entre las metodologías ágiles y tradicionales.

ciclos de vida de las metodologías tradicionales y ágiles



Metodologías ágiles Metodologías tradicionales
Están preparadas para cambios durante el proyecto Son poco flexibles a los cambios
Proceso menos controlado, con pocos principios Proceso mucho más controlado, con numerosas normas
No existe contrato tradicional o al menos es bastante flexible Existe un contrato prefijado
El cliente es parte activa en el proceso de desarrollo El cliente interactúa con el equipo solo mediante reuniones de entregas
Grupos pequeños, 10 integrantes o menos y trabajando en el mismo sitio en el cual todos tienen conocimiento sobre todo el proceso de desarrollo Grupos grandes y posiblemente distribuidos donde a cada interante se le asignan tareas especificas
Menos énfasis en la arquitectura del software La arquitectura del software es esencial y se expresa mediante modelos




Ventajas/Desventajas de las metodologías ágiles

Ventajas



Bueno, tras analizar las metodologías ágiles se pueden enumerar y analizar las ventajas que tienen.

  • La primera y la que mas resalta sobre las metodologías tradicionales es que ofrecen una rápida respuesta a cambios de requisitos a lo largo del desarrollo del proyecto gracias a su proceso iterativo, ya que es tan importante el realizar un buen análisis de requisitos, como tener la posibilidad de modificarlos de forma rápida   evitando grandes pérdidas en cuanto a costes, motivación, tiempo…
  • El cliente puede colaborar, puede observar como va avanzando el proyecto y dar sus opiniones sobre su evolución gracias a las interacciones frecuentes del equipo con el cliente. Esto le da tranquilidad.
  • basándose en las 2 ventajas anteriores, se puede descubrir una nueva ventaja, que al utilizar las metodologías ágiles, los cambios que el cliente quiera aplicar al proyecto van a causar menos trabajo adicional que en las tradicionales, ya que se va a entregar en un corto plazo de tiempo una pequeña versión funcional del proyecto al cliente, y si éste quiere cambiar algo, solo se habrá perdido unas semanas de trabajo. Con las  tradicionales las entregas se realizaban después de haber avanzado bastante en el proyecto, eso quiere decir que el equipo ha estado trabajando meses para que despues un cambio que quiera realizar el cliente, ocacione la pérdida de todo ese trabajo.
  • Buscan la simpleza a la hora de tranajar para así eliminar el trabajo innecesario y ahorrar tiempo.

Desventajas


Está claro que en la vida todo tiene ventajas y desventajas, aunque las ventajas sean muy llamativas a la hora de inclinarse por una metodología ágil antes que una tradicional, estas metodologías ágiles también presentan inconvenientes que hay que asumir cuando se decide trabajar con ellas. Estos son:
  • Se tiene poca documentación del diseño. Al no haber documentación es el código (y los comentarios que hagamos en el) lo que se toma como documentación.
  • Problemas que se presentan a partir de la comunicación oral. ya que si tenemos un contrato escrito, no se puede borrar, cuando el contrato es hablado es muy fácil caer en la ambigüedad de lo que el cliente o el equipo de trabajo dijo y lo que su contra parte puede interpretar.
  • Se presenta gran dependencia de las personas.
  • Al no tener mucha documentación se hace muy difícil la re-utilización del código
  • Restricciones en cuanto a tamaño de los proyectos, ya que si es un proyecto q conlleva mucho tiempo las ágiles están enfocadas a proyectos q se puedan hacer de forma rapida..
  • Problemas derivados del fracaso de los proyectos ágiles. Si un proyecto fracasa se tiene poco documentación, la cual sería de vital importancia si se busca saber la causa del fracaso, La comprensión del proyecto y todo su funcionamiento queda en las mentes de los desarrolladores.