La implantación de un software empresarial se puede llevar a cabo de distintas formas, atendiendo a la implicación que la organización quiera tener en su diseño. Agile, también conocida como métodología ágil, es la preferida por muchas empresas para su project management (gestión de proyectos ).
Es una metodología iterativa, donde los requisitos presentados por la organización y las soluciones ofrecidas por el proveedor cambian con el tiempo. Cuando se instala un programa nuevo en una empresa y los usuarios empiezan a probar las funcionalidades que ofrece, puede que echen en falta algo. O quizá opinan que si se cambiase alguna característica el programa les sería mucho más útil. Es por ello que este método se basa en la colaboración y el trabajo en equipo, y se caracteriza por la capacidad de adaptación y flexibilidad.
La metodología agile puede aplicarse a cualquier proyecto que se identifique con lo expuesto en el Agile Manifesto, un texto desarrollado por un grupo de expertos de la industria del software.
Cuando se utiliza la metodología agile, los que serán los usuarios finales del software lo empiezan a probar desde el principio. De esta manera pueden ver si se ajusta a sus necesidades, si sobra algún componente al que no van a dar uso o si echan en falta alguna funcionalidad.
Ventajas de la metodología agile
- Reducción del tiempo de planificación: la redacción de la lista de requisitos no es una fase tan decisiva como en otras metodologías, ya que puede cambiarse si es necesario. Esto ahorra tiempo en las primeras fases del proyecto.
- Mejor cumplimiento de las expectativas: su empresa establece unos requisitos iniciales que el producto final debe cumplir. Éstos no sólo pueden cambiar en el tiempo, al igual que el orden de prioridad con el que desea que se desarrollen. Por lo tanto, el producto final incluirá todos los cambios que se considere oportuno incorporar mientras probaba las distintas partes del producto que el equipo desarrollador iba proporcionando.
- Flexibilidad a los cambios: el producto se va entregando por partes, lo que permite hacer cambios antes de que esté completamente terminado.
- Se centra en el usuario: los usuarios finales podrán poner a prueba las funcionalidades del producto conforme el equipo de desarrollo las va terminando. Siempre cabe la posibilidad de sugerir cambios si encuentran errores o si echan en falta alguna funcionalidad. Al fin y al cabo ellos son los que tendrán que incorporar el programa a su rutina de trabajo diaria, y saben cuáles son las herramientas que necesitan.
- Transparencia: se puede comprobar el estado de desarrollo del producto final.
- Mayor productividad: se elimina burocracia y se mejora la comunicación de los equipos. La documentación generada de un proyecto agile es mucho menos extensa que la producida en proyectos más tradicionales. El avance del proyecto se consigue con la comunicación, preferiblemente verbal, entre los desarrolladores.
- Reducción de riesgos: el producto final ha sufrido una larga lista de comprobaciones por multitud de miembros del equipo.
Por todo esto, la metodología agile gana cada vez más adeptos, especialmente en proyectos complejos o que requieren una gran inversión.
Inconvenientes de la metodología agile
No obstante, la metodología agile también presenta una serie de inconvenientes. El presupuesto de los proyectos desarrollados con esta metodología no suele estar cerrado; al igual que los requisitos, cambia con el tiempo. Después de probar una parte del software se podría llegar a la conclusión de que falta alguna herramienta que no se acordó en un principio. En principio no habría problema en añadir la nueva funcionalidad a la lista de tareas del equipo de desarrollo, pero repercutiría en el precio final del producto.
Otro problema es que la documentación derivada no suele ser muy extensa o rigurosa, lo que puede provocar problemas en la fase de mantenimiento. En esta metodología se da prioridad a la comunicación verbal y al desarrollo de software funcional sobre la redacción de documentación. Si, por ejemplo, un miembro del equipo abandona el proyecto, no habrá ningún registro sobre el proceso que ha llevado a cabo para desarrollar su parte. Suponiendo que un compañero quisiese trabajar sobre ella, podría encontrarse con problemas al no saber cómo se desarrolló. Este problema se puede resolver fácilmente decidiendo cuál es la documentación indispensable que se ha de llevar al día durante la fase de desarrollo del software.
Una manera de aplicar la metodología agile es a través de un proceso denominado Scrum . Establece unos roles y da pautas concretas para el desarrollo del software, en el cual colaboran estrechamente la organización y el equipo de desarrollo del proveedor. Por otro lado, una alternativa a esta metodología sería la conocida como waterfall o de desarrollo en cascada .