METODOLOGIAS AGILES Y MODELOS DE DESARROLLO


Las metodologias agiles ayudan al mejor desarrolo de proyectos enfocados en adecuarse a las necesidades del cliente. Es decir, una metodología ágil es una innovadora forma de trabajar y organizar flujos, que divide los proyectos en partes, permite adaptarse sobre la marcha, complementa y resuelve etapas en poco tiempo.

Las metodologias agiles ofrecen varias ventajas aparte de ayudar a una mejor orgaizacion de los proyectos, estas metodologias agiles nos ayudan a agilizar las entregas rapidas y de forma continua, se mejora la calidad del producto, estimula el trabajo colectivo y aunmneta la motivacion. 

Los modelos de desarrolo de software  son una colección de técnicas y sistemas organizacionales para crear software de computadora. El objetivo de los diversos enfoques es estructurar equipos de trabajo para que puedan construir las funcionalidades del programa de la manera más eficiente posible.

Existen varias metodologias agiles y modelos de desarrollo para eligir, la mejor forma de determinar cual es el adecuado para su proyecto es teniendo en cuenta el valor de la calidad, la rapidez, la innovacion, entre otras cosas.

A continuacion evidenciaremos algunos de estos modelos.


MODELO DE CASCADA

Este fue el primer modelo propuesto y sigue siendo el padre de los demás modelos de procesos, cuando los requerimientos de un sistema están claramente definidos con anticipación y no se espera que cambien en el transcurso de las demás etapas es conveniente su aplicación.


 
Su ventaja es que contempla toda la funcionalidad del sistema desde un principio. Su desventaja es que los cambios posteriores o inclusión de nuevos requerimientos son muy costosos porque impactan todas las fases llevadas a cabo con anterioridad. Por otra parte toma tiempo importante del equipo la formalización o documentación de cada actividad una vez se finaliza. 


   MODELOS INCREMENTALES

Este modelo está pensado para cuando se requiere entregar un producto de software con una funcionalidad reducida que posteriormente se va incrementando hasta llegar finalmente a la versión deseada del producto. Los requerimientos nuevos que se van agregando en cada entrega se denominan incrementos.




La ventaja es que se cuenta con un producto básico pero funcional en un tiempo menor comparado con el modelo en cascada. La desventaja es que algunos clientes temen que este proceso evolutivo de entregas se salga de control.


MODELO DE EVOLUCION POR PROTOTIPOS

Este modelo se apoya en los llamados prototipos o versiones primarias del producto de software al cual se quiere llegar. Estos prototipos evolucionan o se mejoran cada vez que se aplican las actividades del proceso de software: especificación, planeación, modelado, desarrollo, implantación. Lo anterior es llamado una iteración


La diferencia con el modelo incremental es que un prototipo se puede descartar por completo e iniciar con uno nuevo en cualquier etapa del proceso evolutivo o iterativo. Su ventaja es que desde el primer prototipo ya se puede tener la realimentación del cliente y se pueden corregir en etapas muy tempranas cualquier falencia que se Plan rapido Modelado diseño rapido Construcción del prototipo Desarrollo entrega y retroalimentación Comunicación 20 presente. Su desventaja es que no se puede estimar fácilmente el tiempo de finalización del proyecto.


MODELOS AGILES

Recientemente se han popularizado los modelos ágiles que combinan las estrategias de los modelos en cascada, incremental y prototipos. Un ejemplo es el modelo SCRUM que está basado en el modelo incremental, pero plantea, entre otros, unas técnicas o criterios para determinar cuándo pasar a una siguiente versión del producto de software.




Estos modelos son apropiados cuando se anticipa que van a surgir cambios en los requerimientos a lo largo del proyecto y pretenden disminuir este impacto por un lado haciendo más liviano o ligero la formalización de las etapas del proceso del software y por otro haciendo énfasis en equipos de trabajo bastante cohesionados y motivados. PRESSMAN, (2010). La desventaja es que estas metodologías requieren un entrenamiento y disciplina en los equipos de trabajo que no es accesible para todas las empresas.


MODELO BASADO EN COMPONENTES

Este modelo se apoya en software previamente desarrollado que se puede incorporar, parametrizar o configurar al proyecto en desarrollo y de esta forma disminuir la cantidad de código a producir.

Algunos softwares modernos como SAP, ORACLE, SIESA, entre otros, suministran componentes para una amplia gama de procesos de negocio (contabilidad, nómina, inventarios, entre otros) los cuales se configuran de acuerdo a las necesidades específicas del cliente. Lo anterior evita que la actividad de desarrollo se haga desde cero y los desarrollos se realizan para llenar las brechas o “gaps” entre la funcionalidad que requiere el cliente y lo ofrecido por el proveedor. Los componentes también pueden ser proporcionados a través de “frameworks” o librerías que también son código ya elaborado y que puede ser configurado, utilizado y en algunos 20 casos modificado en esta fase de desarrollo. Ejemplo de estos frameworks son J2EE, Microsoft .Net, Laravel (PHP), AngularJS, entre otros. Una desventaja es que no siempre el componente o módulo cumple con todos los requerimientos del cliente y en algunos casos las empresas limitan o disminuyen los requerimientos en favor de una mayor prontitud en la entrega del producto de software especificado

Este proceso se basa en los modelos tradicionales ya expuestos como son cascada, prototipos e incrementales y hace énfasis en la utilización de casos de uso apoyados en el lenguaje UML para modelar los requerimientos del cliente. PRESMAN, (2010). Está compuesto por cuatro fases: Concepción, elaboración, construcción y transición. Al igual que los modelos ágiles el proceso unificado también afronta el desafío del cambio constante de los requerimientos y requiere de un entrenamiento al equipo de proyecto que no todas las empresas pueden acceder

PROCESO UNIFICADO 

Este proceso se basa en los modelos tradicionales ya expuestos como son cascada, prototipos e incrementales y hace énfasis en la utilización de casos de uso apoyados en el lenguaje UML para modelar los requerimientos del cliente (PRESMAN, 2010). Está compuesto por cuatro fases: Concepción, elaboración, construcción y transición. Al igual que los modelos ágiles el proceso unificado también afronta el desafío del cambio constante de los requerimientos y requiere de un entrenamiento al equipo de proyecto que no todas las empresas pueden acceder

Comentarios