Razones para adoptar agile en tus proyectos
Al inicio de la era del desarrollo de software todo era desarrollo en cascada, una pila de actividades, no iniciaba una si la otra no estaba completada, una producción lineal que quizá en la industria automotriz se ha probado como la mejor opción, pero aquí en la industria del software era un desperdicio de tiempo y recursos enorme. Entonces es cuando las cosas fueron tomadas mejor en cuenta y se dio una ola de metodologías que peleaban por ser la mejor para implementar, es cuando entre todo este caos surgieron los frameworks de Agile, siendo Scrum el más popular entre los marcos ágiles y su gestión a través de los distintos roles como Scrum Master , Scrum Developer y Product Owner.
Algunos de los beneficios son:
1.- Mejor manejo de errores de análisis y diseño
Bajo un enfoque de desarrollo tradicional, los errores no identificados en primeras fases del proyecto tienden a ser muy costosos. Con frecuencia, estos errores ocasionan re trabajo e incumplimiento de las fechas de entrega, típicamente sucede que los errores son encontrados previo a liberar en producción nuestro software, con los tiempos ya prácticamente quemados.
Esto ocurre debido a que el período entre que se realiza el levantamiento de las necesidades y en la que se recibe un primer producto tangible es muy largo, por lo que cualquier error en el entendimiento por parte del equipo de desarrollo se identifica muy tarde, recordemos que en una metodología tradicional el alcance se conoce perfectamente después de mucho tiempo de planeación y el control de cambios tiene que hacerse de una manera muy lineal y extremadamente controlada, no necesariamente enfocándonos en el valor.
Los enfoques de desarrollo ágil promueven entregas al área de negocio o usuario de forma rápida, por lo que el cliente recibe desde el principio un producto tangible y puede identificar de forma temprana errores de análisis, cuando su corrección requiere poco esfuerzo, es decir, en etapas tempranas del desarrollo lo cual reduce los costos de manera significativa.
También, esto ayuda a evitar situaciones en las que el usuario diga “esto no era lo que se necesitaba” al final del proyecto, aquí es cuando ya no estamos entregando valor al cliente y el trabajo que implica el desarrollo de software se limita a “entregar en el tiempo comprometido, cueste lo que cueste y sea como sea”.
2.- Mejor gestión de cambios
La ventaja de los métodos ágiles es que incorpora el cambio a sus procesos, en lugar de simplemente gestionarlos, eliminando la burocracia existente entre identificar un cambio y decidir qué hacer al respecto. Bajo un enfoque ágil, al final de cada iteración los cambios son incorporados a la lista de cosas por hacer (product backlog) y priorizado junto con los demás requerimientos para hacer el grooming de dicha pila de pendientes para enfocarnos en lo que genera más valor al cliente.
3.- Mayor motivación y desempeño del equipo de trabajo
Los enfoques de desarrollo ágil se basan en el empoderamiento (Empowerment) del equipo de trabajo, abandonando el enfoque tradicional de comando y control centralizado en una figura suprema semi-divina llamado Project Manager, por un enfoque de mayor colaboración y autogestión, lo cual da como resultado personas más motivadas e implicadas con el proyecto (la naturaleza humana es que no le gusta sentirse reprimido o dominado).
Sin embargo, este tipo de enfoque no es para todo el mundo, y no nos referimos a lo que con frecuencia se dice que el desarrollo ágil requiere de un equipo de alto nivel en habilidades y experiencia, sino también al cambio de paradigma que debe ocurrir entre los Jefes de Proyecto, Gerentes y Directivos de la organización, quienes deben tener una mente abierta, estar predispuestos al cambio y anteponer el éxito colectivo al individual, típicamente en mi experiencia este tema resulta vital y de mucha complicación para las empresas que buscan emprender al desarrollo ágil.
Los Gerentes y Directivos tradicionales favorecen la estructura rígida de comando y control, mentalidad que si no cambia puede condenar al fracaso al desarrollo ágil. En algunos cursos de capacitación me ha tocado ver cómo las personas que vienen de metodologías tradicionales tienden a sufrir mucho en las dinámicas de integración y entendimiento de conceptos ágiles.
Es por eso que nuestra metodología de adopción de procesos ágiles implica un cambio en el maindset organizacional.
4.- Mayor calidad
La calidad se define como el grado en que un producto satisface las expectativas de la persona que lo utiliza. Como se puede ver, el término depende del punto de vista y de quien la perciba.
Desarrollar iteraciones en poco tiempo y demostrar a los usuarios (el cliente) el producto frecuentemente, a medida en que se va fabricando, les permite ponerse de acuerdo y coincidir en que el producto cumple con las necesidades, en caso de no hacerlo, se pueden hacer cambios de manera oportuna, a un costo mínimo y con un alto grado de satisfacción del cliente.
Las prácticas ágiles se enfocan en priorizar los componentes del producto que proporcionen “mayor valor” a los usuarios, donde valor significa cumplir sus necesidades u objetivos de negocio. Al proporcionar mayor valor al usuario, en cuanto a cubrir sus necesidades, también se está maximizando la calidad, con esto se eliminan algunos vicios del desarrollo de software tradicional como “entregar lo más rápido de desarrollar para cumplir los entregables” o “entregar un cascarón para calmar los ánimos del cliente”
Además, las prácticas de desarrollo ágil fomentan el trabajo colaborativo y la autogestión, lo que produce personas más motivas e implicadas con el proyecto y por ende mayor calidad del software producido.
5.- Mayor velocidad y eficiencia.
El desarrollo ágil se basa en el concepto de realizar entregas parciales tempranas, complementados con entregas incrementales posteriores, donde se priorizan las funcionalidades que dan mayor valor al usuario cliente (que es muy diferente a lo más rápido o lo más fácil).
Esto resulta en que obtienen las funcionalidades más esenciales lo antes posible, resultando en mayor velocidad y menor “time to market”, asegurando que el mejor producto es el que se envía al cliente.
El desarrollo ágil no implica que la totalidad de las funcionalidades del producto se obtendrán más rápido, es decir, agilidad no significa rapidez, significa entregar al cliente las funcionalidades esenciales lo más rápido posible, pero el tiempo total seguirá siendo el mismo (muchas empresas tienen el concepto equivocado de que agile significa que no hay tiempos comprometidos, lo cuál es falso, un principio es el Time-Boxing) .
Es importante tener esto en cuenta para no crear falsas expectativas respecto al desarrollo ágil.
¿Cómo aprender acerca de agilidad? Certifícate en SCRUM con nuestros instructores genios y expertos en la industria para que lo implementes en tu trabajo
Más información
¡Estamos para servirte!
No Comments