Por su parte si existen metodologías pesadas no sería raro encontrarse con las metodologías Agiles o livianas, las metodologías Agiles sostienen que el desarrollo de software debe verse como un modelo incremental, donde se hacen entregas pequeñas de software con ciclos más cortos y rápidos, eliminando la burocracia de la documentación como lo hacen las metodologías tradicionales, de una manera más cooperativa ya que se incluye al cliente y desarrolladores para trabajar juntos y por medio de una comunicación muy cercana y fluida. el cliente es un factor de primer orden, ya que a los procesos predecibles dentro de la construcción del software requieren de componentes que se comporten de manera predecible, los clientes no son predecibles ellos son altamente inconstantes y no lineales, por ello las metodologías ágiles están más orientados a la gente y no orientados al proceso; la metodología agiles son mucho más sencillas, ya que son más fáciles de aprender y modificar, además son mucho más adaptables, dado que permiten hacer cambios de último momento. En las metodologías ágiles, la documentación más importante es el código fuente. Son defensores de la escuela Agil (MANIFIESTO AGIL 2001), Kent Beck (Beck 2009), Martin Fowler (Fowler 2000), Ron Jeffries (Jeffries 2001), Ken Schwaber (Schwaber 1995), Jeff Sutherland (Sutherland 2009), entre otros.
Como se dijo anteriormente las metodologías de desarrollo de software están relacionadas con otro concepto muy importante que las engloba: el Ciclo de Vida de Desarrollo de Software.
Es un requisito primordial que las metodologías abarquen en todo su amplitud el CVDS. Para ilustrar el concepto de CVDS, en la figura 1.1 se muestra las diferentes etapas por la que atraviesa un sistema a lo largo de su vida según el proceso de desarrollo Cascada.
Figura 1.1 - Fases del ciclo de vida de desarrollo de sistemas en la metodología Cascada
Por consiguiente podemos clasificar a las metodologías en dos grandes grupos: Las metodologías “Tradicionales” y las metodologías “Ágiles”. Cabe destacar que para llegar a las metodologías ágiles hubo un proceso de cambio filosófico el cual partió y se origino por la las falencias y falta de respuestas a algunos problemas de las metodologías tradicionales. Existen también las metodologías de “tecnología Web” y otras a las que por sus características podemos formar un tercer grupo al que denominaremos “Otras metodologías”. La tabla 1.1 resume está clasificación, dicha tabla enumera las metodologías más conocidas a qué grupo clasificatorio pertenece. La justificación de esta clasificación, una explicación detallada de las metodologías más representativas de cada grupo será explicada en las siguientes secciones. Luego se introducirá el concepto de Implementación que es el tema central básico de esta tesis y se tratará como cada una de esas metodologías lleva a cabo la fase de implementación del software.
Tabla 1.1 Tabla comparativa de Metodologías de desarrollo de software
Clasificación | Metodologías |
Tradicionales | Cascada, Modelo V,RAD, MERISSE, METRICA, SSADM |
Iterativas/Evolutivas | Prototipos, Espiral, Espiral WIN&WIN, Entrega por etapas , RUP |
Ágiles | XP, SCRUM, CRISTAL, Desarrollo Adaptable, Open Source, DSDM, Desarrollo manejado por Rasgos, Code and Fix |
Tecnología Web | OOHDM,HDM, RNA, etc |
Otras | Orientada a Aspectos, Sistemas de tiempo real, Basado en componentes |