¿Qué es el desarrollo de software ágil? Todo lo que necesitas saber sobre la entrega de un código mejor, más rápido 1

El desarrollo ágil de software es más popular que nunca: aquí se explica su origen, cómo se utiliza en las principales empresas y cómo es probable que evolucione en el futuro.

¿Qué es el desarrollo ágil de software?

El desarrollo ágil de software es un conjunto de métodos y prácticas de colaboración para producir código de software de forma más rápida y eficiente. En concreto, el desarrollo ágil utiliza un enfoque iterativo, en el que los equipos revisan, inspeccionan y adaptan continuamente sus técnicas de desarrollo para entregar aplicaciones que satisfagan los requisitos del negocio de forma flexible y rápida.

¿Cuáles son los orígenes del desarrollo de software ágil?

Un grupo de desarrolladores de software creó una serie de técnicas más ligeras en respuesta a lo que percibían como los métodos pesados asociados al desarrollo en cascada, donde los proyectos se dividen en una serie de etapas secuenciales lineales.

Estos 17 desarrolladores se reunieron en Utah en 2001 para discutir estos métodos de desarrollo ligeros. Posteriormente, publicaron el Manifiesto para el Desarrollo Ágil de Software, que esboza un conjunto de valores para desarrollar software de forma flexible e iterativa.

Estos valores se centran en el auto-empoderamiento, la colaboración, la capacidad de respuesta y la creación de soluciones de software operativas -más que productos finales- que puedan perfeccionarse con el tiempo. El manifiesto ágil tiene 12 principios, que van desde la entrega continua de software, la confianza en las contribuciones individuales y hasta los procesos de equipo reflexivos.

¿Es mejor Agile que el desarrollo de software en cascada?

En casi todas las conferencias hay una sesión con líderes tecnológicos -ya sean directores de informática, directores de TI o gerentes de TI- que exponen las ventajas de la metodología ágil. Las sesiones sobre las virtudes de las técnicas tradicionales en cascada son más escasas en estos días.

Una de las explicaciones del cambio es que el desarrollo en cascada requiere un enfoque más estricto de las etapas: las pruebas se llevan a cabo una vez finalizada la fase de construcción. En Agile, las pruebas son un proceso iterativo, en el que el software se desarrolla, se utiliza y se actualiza. Muchos CIOs creen que este enfoque es adecuado para la transformación digital, algo sobre lo que volveremos más adelante.

Sin embargo, el auge de la metodología ágil no significa que la cascada esté muerta. Algunos proyectos siguen teniendo etapas y entregables claramente definidos. Si sabes exactamente lo que necesitas y cuándo, entonces un enfoque de metodología en cascada podría ser mejor. Tal vez la mejor pregunta no sea qué metodología es la mejor, sino cuál se adapta mejor a la tarea que tienes entre manos.

¿Por qué el desarrollo ágil es tan popular en los proyectos de transformación digital?

La transformación digital ha pasado de la periferia al núcleo de todas las organizaciones, ya que los líderes tecnológicos han tratado de cambiar sus modelos de negocio en respuesta a unas condiciones que cambian rápidamente.

Piensa, por ejemplo, en las empresas tradicionales que se enfrentan al reto de responder a las startups disruptivas. Piensa también en el impacto de la pandemia de coronavirus y en el rápido cambio hacia el trabajo a distancia, el comercio electrónico y el aprendizaje electrónico. Los expertos sugieren que la metodología ágil es muy adecuada para las empresas que quieren probar y desarrollar rápidamente nuevos modelos de negocio y productos.

¿Cómo utilizan las empresas el desarrollo ágil de software?

El analista tecnológico Forrester afirma que la entrega ágil es fundamental para el éxito de las transformaciones digitales, aunque las mejores empresas van más allá. El investigador afirma que sólo el 47% de las empresas con menos éxito tienen un 75% o más de sus equipos de desarrollo utilizando prácticas de desarrollo de software ágil, en comparación con el 93% de las empresas con éxito.

¿Cuáles son las principales características del desarrollo ágil de software?

Un equipo ágil se define por su enfoque colaborativo y algunos de los principales marcos asociados a la metodología son, entre otros:

  • Lean – Equipos empoderados que trabajan rápidamente para eliminar los residuos. El propio Lean tiene su origen en los procesos de fabricación ajustada, de los que fue pionero Toyota y los ciclos de producción «justo a tiempo» del siglo XX.
  • Kanban – Método lean para gestionar el trabajo en el que los elementos, como las características, las historias de usuario y los entregables, se visualizan en un tablero.
  • Scrum – Marco ágil para equipos pequeños de 10 personas o menos, que dividen el trabajo en trozos de tiempo limitado, conocidos como sprints, en los que el progreso se revisa en sesiones de scrum.

Las prácticas de desarrollo ágil más destacadas son: el backlog, que es un desglose del trabajo que debe completarse; el standup, que es una reunión diaria para comunicar los problemas; y la retrospectiva, que se celebra al final de cada iteración para considerar las lecciones aprendidas.

¿Cuál es la diferencia entre DevOps y el desarrollo ágil de software?

DevOps es una combinación de desarrollo de software y operaciones de TI. Mediante el uso de la entrega continua y las iteraciones constantes, DevOps pretende crear un software de mayor calidad. Muchas de las prácticas clave de DevOps tienen su origen en el desarrollo ágil de software.

Mientras que el método ágil se centra en sprints que pueden durar semanas o meses, DevOps se centra en lanzamientos hiperrápidos que duran días o incluso horas. Tanto DevOps como Agile pueden utilizarse conjuntamente, ya que se complementan.

¿Y el aumento de las técnicas de liderazgo ágil?

La pandemia de coronavirus ha sido en muchos sentidos una prueba beta para el despliegue a gran escala del desarrollo ágil. Los empleados autodirigidos simplemente tuvieron que trabajar de forma socialmente distanciada para completar los proyectos y desarrollar productos lo más rápidamente posible.

Muchos CIO informan de que Agile se ha adaptado muy bien a la nueva normalidad laboral, y han adoptado enfoques de liderazgo para apoyar este cambio. Esta forma flexible de liderazgo -conocida como gestión ágil de proyectos o liderazgo ágil- implica la aplicación de los principios del desarrollo ágil de software a las tareas de gestión, y se basa en la toma de decisiones descentralizada.

La gestión ágil produce beneficios de dos maneras clave: da a los trabajadores el empoderamiento que la investigación sugiere que anhelan, y libera a los líderes para que se centren en tareas de mayor nivel, como perfeccionar la estrategia y desarrollar nuevos modelos de negocio.

¿Cuáles son las desventajas del desarrollo ágil?

Jeff Bezos, de Amazon, cree que todo equipo interno debe ser lo suficientemente pequeño como para poder alimentarlo con dos pizzas. Otros expertos sugieren que Agile funciona mejor en grupos pequeños, pero existe el peligro de que, al pasar Agile del departamento de TI a la empresa en general, se aplique de forma demasiado amplia y se diluyan sus beneficios.

A los ejecutivos, que están hartos del letargo de los procesos que socava a muchas grandes empresas, les suele gustar el sonido de los equipos autodirigidos. Pero lo que pueden conseguir -si no aplican Agile con cuidado- es el caos. El analista Gartner se refiere al peligro de la corrupción, cuando los valores fundamentales de Agile se degradan por la incomprensión.

Incluso en el departamento de TI, no todo es de color de rosa. La naturaleza colaborativa de la metodología significa que la interacción cara a cara es a menudo esencial, algo que ha sido imposible últimamente. En muchos sentidos, no estamos viendo el verdadero Agile en su totalidad.

«Lo que más echo de menos es la creatividad, el poder estar en una habitación con un trozo de papel marrón y un montón de notas adhesivas y discutir y debatir hasta que consigues la solución a un problema», dice el CIO de Boots, Richard Corbridge, que es un gran defensor de las técnicas ágiles.

¿Cuáles son las perspectivas a largo plazo del desarrollo ágil?

A medida que las empresas vayan entrando en la era post-COVID, será interesante ver qué piensan los líderes empresariales de los productos que ha creado el equipo de desarrollo de software ágil.

¿Reflexionarán sobre el rápido proceso de transformación digital de 2020 y concluirán que Agile simplemente ayudó a la empresa a trabajar de forma eficaz en un momento muy complejo? ¿O el cambio a Agile -tanto dentro del departamento de TI como en la empresa en general- se convertirá en una transición permanente?

Hasta ahora, las pruebas sugieren que los directores de informática y sus equipos han ganado mucho con el cambio a Agile y que la técnica se adaptará bien a la mezcla híbrida de trabajo en la oficina y en casa que probablemente definirá la era post-COVID.

El CIO de Johnson Matthey, Paul Coby, afirma que los CIO llevan hablando de la importancia de las metodologías ágiles desde hace más de 15 años. Pero en la competitiva era post-COVID, dice que la agilidad será crucial para apoyar la transformación casi continua del negocio: «Necesitan una TI ágil, en el mejor sentido de la palabra, para apoyarla».

Nota: este post es una traducción de este artículo.

¿Qué es Velneo?

Velneo es una plataforma low-code que cubre el ciclo completo: está diseñada para hacer más rentable el desarrollo, implantación y mantenimiento, en la que los programadores disponen de código empresarial abierto reutilizable y personalizable, como el vERP. Y además la plataforma, el código y todos los recursos formativos están en español.

¿Cómo puede Velneo apoyar el trabajo ágil?

El desarrollo y la sencilla puesta en marcha de aplicaciones empresariales con una plataforma low-code, como Velneo, tiene muchas ventajas para los equipos ágiles. A continuación detallo algunas:

  • Se pueden utilizar los bloques o módulos pre-programados para construir aplicaciones rápidamente y en pasos sencillos para el equipo
  • Para los requisitos especiales de un proyecto, Velneo permite crear elementos propios con su propio lenguaje o con JavaScript.
  • La gran transparencia de la base de datos y lo fácil que se entiende cualquier desarrollo en Velneo permiten el trabajo ágil y la auto-organización en un equipo, de modo que la inteligencia colectiva de los expertos puede utilizarse de forma óptima.
  • Gracias a las posibilidades de automatización de las aplicaciones y a la fácil integración de software externo mediante APIs, se ahorra un tiempo valioso, por ejemplo, durante las actividades de documentación
  • Por otro lado elhistorial de versiones, que permite ver proyectos pasados y futuros, es muy beneficiosa para el aprendizaje y la mejora continua para los desarrolladores.