¿Cuáles son los valores y principios de Agile? Han pasado veinte años del Manifiesto ágil, la conocida declaración para transformar la forma de desarrollar software hacia métodos más flexibles y adaptables a entornos cambiantes. En la actualidad, las metodologías ágiles están ampliamente extendidas en las organizaciones, si bien muchas creen que aplican sus principios efectivamente cuando realmente solo pasan por encima de ellos. Además, el mundo del desarrollo de software ha cambiado notablemente en los últimos años. Por todo ello, en este artículo vamos a revisitar los 4 valores y 12 principios de Agile que fueron difundidos en esta declaración. Concretamente, veremos en qué consisten y qué papel siguen desempeñando en el desarrollo de software a día de hoy.
Lo que vas a ver en este post:
¿Qué es el Manifiesto ágil?
El Agile Manifesto, Manifiesto ágil o Manifiesto para el desarrollo de software ágil es una declaración de valores y principios sobre nuevas formas de desarrollar software que surgió en 2001, como reacción a los tradicionales métodos formales con los que se trabajaba entonces en la industria.
En 2001, diecisiete informáticos críticos de los métodos de desarrollo de software basados en procesos se reunieron en Utah para reflexionar sobre nuevos modos de crear software. En ese encuentro acuñaron el término “metodologías ágiles” para referirse a aquellas (Extreme Programming, Scrum, DSDM, etc.) que estaban surgiendo como alternativa a los métodos formales (como CMMI o SPICE), a los que consideraban demasiado rígidos por su carácter normativo y las planificaciones exhaustivas previas al desarrollo que requerían.
Los participantes del encuentro resumieron los fundamentos de estos nuevos métodos en el llamado Manifiesto ágil del desarrollo de software. A continuación, veremos en detalle los 4 valores y 12 principios que promulga.
Los 4 valores del Manifiesto Agile
Los impulsores del Manifiesto ágil compartían una serie de valores y promovieron modelos de organización centrados en las personas y la colaboración. Esencialmente, buscaban ofrecer buenos productos a los clientes operando en un entorno que pasase de hablar de las personas como “el activo más importante de las compañías”, a actuar como si realmente lo fueran y dejasen de ser un mero “activo”.
Estos son los 4 valores sobre los que se fundamentan las metodologías ágiles:
Individuos e interacciones por encima de procesos y herramientas
El primero de los valores que promueve el manifiesto es que las personas son lo más importante, por encima de los procesos y las herramientas, por su capacidad para ser creativas e innovar. Los procesos y las herramientas deben servir de apoyo para que las personas cumplan sus objetivos.
De este modo, este enunciado plantea que, aunque los procesos son de ayuda para guiar el trabajo, deben adaptarse a la organización, los equipos y las personas, y no al revés. Asimismo, defiende que aunque las herramientas mejoran la eficiencia, no consiguen resultados por sí solas.
Además, en una realidad cada vez más cambiante, los procesos y las herramientas deben adaptarse rápidamente. Para lo que es fundamental que las personas propongan cambios o se adapten inmediatamente.
Como veremos más adelante, son muchos los principios de Agile que se centran en las personas para conseguir el éxito en los proyectos de software.
Software funcionando por encima de documentación exhaustiva
Esta afirmación sostiene que ver cómo se comportan las funcionalidades esperadas en software funcionando es más valioso que un documento muy detallado de requisitos, que además será muy difícil de crear antes del desarrollo de un proyecto por la inestabilidad de su naturaleza.
Según este valor, es más interesante el feedback temprano que pueden dar los usuarios al interactuar con un prototipo o con el producto parcial. Ya que permitirá a los usuarios tomar decisiones sobre el producto y ayudará al equipo a tener más claro qué desarrollar.
El Manifiesto Agile no renuncia a la documentación del software (que sigue considerando interesante como soporte y en otras cuestiones), pero defiende que genera menos valor que el software en funcionamiento. Por lo que se debería reducir a lo mínimo indispensable.
Como veremos más adelante, las metodologías ágiles conciben el software en funcionamiento como la medida fundamental para conocer el progreso.
Colaboración con el cliente por encima de negociación contractual
De nada sirve entregar un producto a los usuarios que ya no es relevante para ellos. Este valor defiende que, en entornos cada vez más cambiantes, tiene más sentido ir creando el producto con una retroalimentación continua durante su desarrollo, que cumplir a rajatabla lo pactado de antemano.
En desarrollo ágil, el cliente es un miembro más del equipo. La colaboración continua con él genera más valor que el cumplimiento estricto de un contrato, que no hace más que crear barreras y delimitar responsabilidades.
Las metodologías ágiles son especialmente útiles cuando es difícil definir los requisitos del producto desde el principio, cuando hacerlo conllevaría entregar menos valor al final que si vamos enriqueciendo el producto con feedback continuo o en entornos comerciales que cambian rápidamente en los que los requisitos son muy inestables.
Respuesta ante el cambio por encima de seguir un plan
El cuarto de los valores de Agile habla de que no tiene sentido utilizar planteamientos rígidos en escenarios volátiles como el del desarrollo de software. Es más valiosa la capacidad de respuesta y adaptación a los cambios que la de seguir y asegurar el cumplimiento de los planes preestablecidos.
Las metodologías ágiles promueven la anticipación y la adaptación, frente a la planificación y el control que proponen las fórmulas de gestión tradicionales. Y, como veremos ahora en sus principios, el manifiesto lleva esta idea un paso más allá, al sugerir el aprovechamiento de los cambios como una ventaja competitiva para las organizaciones.
Estos son los cuatro valores que propone el Manifiesto ágil. Si bien, conviene aclarar que, con ellos, los firmantes de esta declaración no renuncian por completo a todos los componentes de las anteriores metodologías (procesos, documentación, contratos y planificación). Simplemente le dan más importancia a los elementos que colocan en la izquierda de estos cuatro enunciados (personas, software funcionando, colaboración y respuesta al cambio). Así, por ejemplo, están a favor de documentar pero con sentido y de planificar, pero siendo conscientes de los límites de hacerlo en entornos turbulentos.
Los 12 principios de Agile
Una vez analizados los valores que proponen las metodologías ágiles, vamos a ver los 12 principios sobre los que se desarrollan.
Satisfacer al cliente mediante la entrega temprana y continua
“Nuestra principal prioridad es satisfacer al cliente a través de la entrega temprana y continua de software con valor”.
El primero de los principios del Manifiesto ágil pone el foco en la satisfacción del cliente y en como una entrega pronta y frecuente de software valioso son fundamentales para conseguirla, al incrementar las posibilidades de satisfacer las demandas de los clientes y propiciar un retorno de la inversión más rápido.
Por una parte, en un entorno tan cambiante, si la entrega de software se demora demasiado no satisfará las demandas de los clientes. Los usuarios cada día utilizan más software para infinidad de acciones y demandan cambios cada vez más inmediatos. No están dispuestos a esperar. Por lo que el equipo de desarrollo de software debe hacer entregas más rápidas que aporten valor a los usuarios.
Por otra parte, gracias a las entregas frecuentes y en menos tiempo los clientes reciben valor por el que están pagando antes y más a menudo. Asimismo, estas acciones propician que el cliente aporte feedback a los desarrolladores desde el primer momento, lo que reduce las posibilidades de tener que realizar cambios significativos más adelante.
Aprovechar el cambio como ventaja competitiva
“Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos ágiles aprovechan el cambio para proporcionar una ventaja competitiva al cliente”.
El segundo enunciado de la declaración defiende el aprovechamiento de los cambios en beneficio del cliente, aceptando modificaciones en los requisitos hasta en las últimas fases de un proyecto.
En la gestión de proyectos tradicional, cambiar los requisitos al final del proyecto conllevaba aumentar el alcance y, por consiguiente, elevar los costes. Sin embargo, en los enfoques ágiles, los equipos son capaces de reconocer el valor que pueden tener estos cambios para los clientes y de responder a ellos de forma efectiva .
Con una realidad que cambia constantemente, es muy difícil predecir cuáles deben ser los requisitos finales de un software. Y de nada sirve a una empresa dedicar recursos en un producto que cuando es entregado a los usuarios ya no es relevante para ellos. De este modo, aceptar y aprovechar los cambios aportará al cliente una ventaja competitiva, ya que atenderá las necesidades actuales de sus usuarios.
Entregar valor frecuentemente
“Entregar software funcional frecuentemente, desde cada dos semanas hasta cada dos meses, con preferencia al periodo de tiempo más corto posible”.
El tercer principio del Manifiesto Agile profundiza en el concepto de entrega continua planteado en el primer fundamento. Concretamente se refiere a la necesidad de entregar actualizaciones del software más pequeñas cada menos tiempo.
Estas entregas menores requieren menos tiempo de planificación y reducen las posibilidades de que se produzcan errores en su desarrollo. Asimismo, más entregas se traducen en más feedback por parte del cliente, evitando que demande a los desarrolladores cambios mayores posteriormente.
Este principio no sólo sigue estando vigente en la actualidad, sino que se ha acentuado en los últimos años. Las releases se producen cada semana o incluso cada día.
Cooperación negocio-desarrolladores durante todo el proyecto
“Los responsables del negocio y los desarrolladores deben trabajar juntos día a día durante todo el proyecto”.
Este principio propone poner fin a las barreras existentes entre los equipos de negocio y de desarrollo de software, para mejorar la comprensión y colaboración mutua y conseguir mejores resultados.
Tradicionalmente, los responsables de negocio y los desarrolladores estaban separados. Otros roles trataban de traducir el lenguaje de los primeros en ideas que los segundos pudieran entender. Con este principio, los impulsores del Manifiesto ágil pretenden favorecer que ambos interactúen entre sí día a día, abordando antes los malentendidos, compartiendo feedback mutuamente y, en definitiva, alineando sus intereses.
Construir proyectos en torno a individuos motivados
“Construir proyectos en torno a individuos motivados. Hay que darles el entorno y el apoyo que necesitan y confiar en ellos para la ejecución del trabajo”.
El quinto de los principios de Agile defiende la necesidad de potenciar que los miembros del equipo de desarrollo se sientan motivados, para que sean capaces de llevar a cabo los proyectos de la mejor forma.
La segunda parte de este postulado se centra en un aspecto fundamental: la confianza en el equipo para desarrollar software de calidad por sí mismo, con el ambiente y el soporte adecuados. Si los integrantes del equipo no participan en las decisiones de los proyectos en los que trabajan, no se identificarán con el propósito de los mismos y su compromiso y desempeño se verán mermados.
Utilizar la comunicación cara a cara
“El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus miembros es la conversación cara a cara”.
El sexto enunciado del manifiesto habla de la forma de comunicación más adecuada para llevar a cabo proyectos de forma exitosa: la conversación cara a cara. De todas las formas de comunicación existentes, la cara a cara es la más efectiva, ya que reducen notablemente los tiempos de respuesta y los malentendidos.
No obstante, la forma en que trabajamos se ha transformado drásticamente desde 2001. El trabajo en remoto se ha extendido y han surgido numerosas herramientas que facilitan la comunicación y el trabajo en equipo a distancia. Pero esto no quiere decir que este principio ya no sea válido en la actualidad, sino que se ha transformado.
A día de hoy podemos entender que no solo podemos obtener una comunicación efectiva con una conversación cara a cara físicamente, sino a través de tecnologías que nos permitan llevar a cabo comunicaciones cara a cara en remoto o comunicaciones asincrónicas más rápidas y directas que intrincados hilos de correos electrónicos.
Software funcionando como medida de progreso
“El software funcionando es la medida principal de progreso”.
El séptimo principio ágil hace referencia a que la medida fundamental para que las organizaciones conozcan el progreso de un proyecto debe ser el software en funcionamiento. Aquellas acciones que el equipo de desarrollo lleva a cabo y no repercuten en la creación de un producto que atienda las demandas del cliente, poco o nada nos dicen del verdadero avance del proyecto.
Da igual cuántos errores el equipo haya corregido o cuántas líneas de código haya escrito si no lo ha hecho para conseguir un software que satisfaga las necesidades del cliente. Hoy en día, además, este principio va más lejos. Aunque el software funcione, si no es entregado al cliente, el equipo de desarrollo no ha progresado. No ha generado aún valor al cliente.
Promover y mantener un desarrollo sostenible
“Los procesos ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios deben ser capaces de mantener un ritmo constante de forma indefinida”.
La octava idea de la declaración sostiene que al operar de forma ágil se persigue optimizar la forma de trabajar para evitar sobrecargas y entregar al mercado frecuentemente soluciones de software que aporten valor a los usuarios, sin que haya que hacer esfuerzos desmesurados. Es decir, todas las partes involucradas en el proceso de desarrollo de software deben mantener un ritmo que pueda ser seguido por todos ellos, evitando tensiones o presiones excesivas.
Normalmente, este principio se entiende aplicado a un equipo de desarrollo sobrecargado a la hora de entregar nuevas funcionalidades a los usuarios. Pero también puede darse la situación opuesta. Si el equipo de desarrollo está entregando demasiadas funcionalidades nuevas a los usuarios, deberá ralentizar su producción o dedicar esfuerzos a formar a los usuarios en el uso de éstas.
La excelencia técnica mejora la agilidad
“La atención continua a la excelencia técnica y al buen diseño mejora la agilidad”.
El noveno postulado del manifiesto afirma que cuidar los aspectos técnicos a la hora de desarrollar un producto de software aporta agilidad. Será más sencillo ir actualizando el software cuando sea necesario si se ha construido cuidadosamente y cuenta con un buen diseño, que si no se ha hecho.
Las organizaciones a menudo ponen por delante el time-to-market de sus productos a la calidad del código. Esto es entendible, ya que la excelencia técnica no interesa a los usuarios finales y no genera valor para el negocio. No obstante, si se descuida, terminará afectando a la velocidad y los tiempos de entrega y a la capacidad de mejorar el producto cuando nuevas necesidades vayan surgiendo. Se perderá, por tanto, agilidad.
Una métrica muy relacionada con no primar un código de calidad es la deuda técnica. En este artículo te contamos en qué consiste y por qué debes tenerla en cuenta en tus proyectos.
La simplicidad es fundamental
“La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial”.
El décimo principio del Manifiesto ágil plantea una idea muy práctica: actuar de la forma más sencilla posible. El cliente no paga por el esfuerzo realizado, sino porque se le entregue una solución que atienda sus necesidades.
Algunas formas de evitar esfuerzos innecesarios son automatizar tareas manuales, eliminar procedimientos innecesarios y utilizar librerías. En definitiva, dedicar el tiempo y esfuerzo del equipo a acciones que realmente aporten valor.
Equipos auto-organizados para generar más valor
“Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados”.
El undécimo enunciado afirma que los equipos a los que se le da una libertad y una confianza suficientes son los que consiguen los mejores resultados.
Es un principio muy vinculado a algunos de los anteriormente planteados en el manifiesto. Para conseguir una buena comunicación y colaboración entre negocio y los desarrolladores, usar como medida el software funcionando y construir nuestros proyectos en torno a personas motivadas es fundamental que los equipos de desarrollo operen sin un control por encima excesivo y se autoorganicen en todos los aspectos del desarrollo de software.
Reflexión y ajustes frecuentes del trabajo de los equipos
“A intervalos regulares, el equipo reflexiona sobre cómo ser más eficaz para, a continuación, ajustar y perfeccionar su comportamiento en consecuencia”.
El último principio de Agile hace referencia a la idea de la mejora continua. Los equipos deben revisar frecuentemente su trabajo, para ajustarlo y mejorar su rendimiento. Es un concepto fundamental, que impulsa a las personas, equipos y organizaciones hacia el éxito, por no conformarse y buscar continuamente mejorar.
Conclusión
Las metodologías ágiles han transformado la forma de crear software, ayudando a las organizaciones a ser más flexibles, adaptarse mejor a los cambios y aprovecharlos como una ventaja competitiva. En este artículo, hemos revisado los valores y principios de Agile, que las empresas deben poner en práctica si quieren ser verdaderamente ágiles. A pesar de haber sido planteados en el Manifiesto ágil allá por 2001, hemos visto que siguen muy vigentes en la actualidad y que incluso, algunas de las ideas que plantean se han acentuado con el paso de los años.
En los últimos años, las compañías han trabajado en la optimización del desarrollo de software a través de métodos como Agile y DevOps. Pero ha llegado el momento de dar un paso más con el Value Stream Management (VSM), un conjunto de técnicas y prácticas que analizan y mejoran el flujo de valor a lo largo de todo el proceso de desarrollo de software. ¡Conoce SENTRIO, nuestra plataforma de VSM, y descubre cómo puede ayudarte!
Aprende más sobre metodologías ágiles y permanece atento de las últimas tendencias en desarrollo de software en nuestro canal de YouTube. ¡Suscríbete!