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.
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.
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.
Bueno, tras analizar las metodologías ágiles se pueden enumerar y analizar las ventajas que tienen.
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.