5. Modelo de desarrollo Ágil
El proceso de desarrollo Ágil, a menudo llamado simplemente "Agile" por su término en inglés, se caracteriza por ser iterativo, igual que RUP, y donde en cada iteración se realizan pequeñas aportaciones en todas las disciplinas del software. Es decir, en cada iteración se toma requisitos de las partes que se van a desarrollar, se diseña, se desarrolla, se prueba y se despliega.
Para la elección de los objetivos de cada iteración en el proceso ágil los gestores del proyecto se centran junto con el cliente en la creación de las partes que puedan aportar mayor valor al modelo de negocio del cliente, desarrollando al principio el mínimo posible para que la aplicación se pueda ir usando. Esto es ideal porque así en cada iteración surgen entregas de pequeñas partes del programa, que el cliente puede validar.
En las metodologías ágiles se le exige al cliente tomar parte activa del proyecto y estar más vinculado en el proceso de desarrollo. No solo debe participar para decidir qué se va a desarrollar en cada iteración, sino que además idealmente debería estar disponible en todo momento para resolver de inmediato cualquier duda sobre cómo se va a desarrollar cualquier parte de la aplicación, creándose programas que responden más a las necesidades reales del cliente.
Existen muchas diferencias entre RUP y los procesos Ágiles. Por un lado RUP es más pesado en el sentido en el que sus procesos generan más documentación y tienen una ruta más definida. Los ágiles no documentan tanto y hay disciplinas que se hacen todas a la vez, por ejemplo a medida que se programa se diseña y se prueba al mismo tiempo.
Pero lo más destacado es que en RUP las aplicaciones se realizan comenzando por las partes más difíciles y que condicionarán el desarrollo de todas las siguientes partes, mientras que los ágiles comienzan por lo que pueda aportar valor al negocio. Esta característica hace ideal el desarrollo ágil para startups que necesitan un producto mínimo viable cuanto antes, que puedan ir usando y probando sus usuarios, que son los que con sus necesidades decidirán qué partes les pueden aportar mayor valor.
Por una parte, en RUP es positivo centrarse en las partes más complejas, porque así da una noción más temprana del tiempo que se necesitará para desarrollar el proyecto completo y permitirá que, a medida que otros desarrolladores se incorporen, sea más fácil que tengan una dirección bien definida. Paralelamente si los desarrolladores no son tan experimentados no tendrán tanto problema, ya que las partes que tendrán que desarrollar serán las más sencillas y sistemáticas.
Pero por otra parte en Agile es interesante que se centren en lo que puede hacer que la aplicación sea útil desde el principio. Esto indica que en Agile será más fácil crear aplicaciones que se adaptan verdaderamente a las necesidades del cliente, pudiendo realizar los cambios en las aplicaciones a medida que se desarrollan y se van usando. El cliente debe participar más, indicando qué cosas dan más valor y qué cosas aportan menos, por lo que el presupuesto estará dirigido siempre a mejorar aquellas áreas de la aplicación que realmente están resultando útiles para el negocio.
En Agile no importa que haya que cambiar cosas con más frecuencia, ya que no hay líneas generales desde el inicio. Se exige delos desarrolladores Agile tener muchos conocimientos de todas las disciplinas y gracias a su amplia experiencia no les asustan los cambios, porque son capaces de llegar a diseños flexibles con facilidad. Además, técnicas como el refactoring son capaces de reaccionar y rediseñar el software para hacerlo más adaptable, sin que ello implique que se rompa o se cambie nada.
Comentarios
Publicar un comentario