Desarrollo ágil de software: Qué es y qué se obtiene de él
Agile 101
¿Qué es el desarrollo ágil de software?
Breve reseña
Todo esto tiene sentido, ¿verdad? Entonces, ¿por qué existe Ágil?
Breve historia
En los años 80 y 90, el método de gestión de proyectos predominante era el modelo de cascada. Muy utilizado en proyectos de construcción y fabricación, exigía mucho papeleo, un diseño fijo y la entrega del producto final sólo al final de la fase de construcción.
Dado que el desarrollo de software es una actividad compleja, en lugar de una actividad complicada como la construcción y la fabricación, muchos proyectos de software se salían del plazo y del presupuesto y no satisfacían las intenciones y requisitos del cliente.
Un ejemplo paradigmático fue proyecto informático del Servicio Nacional de Salud del Reino Unido, que costó más de 10.000 millones de libras y no funcionó.
Algo tenía que cambiar y varios enfoques diferentes surgieron a finales de los 80 y los 90.
Por ejemplo, la creación de prototipos, el método de desarrollo dinámico de software (o de sistemas), Scrum y la programación extrema (XP).
Entonces, en 2001, un grupo de 17 desarrolladores de software, polémicos pero con éxito, se reunieron para discutir mejores métodos de desarrollo de software.
Estuvieron de acuerdo en que el desarrollo de software debía ser adaptable al cambio, orientado al cliente y orientado al valor. Resumieron sus discusiones en un manifiesto que enumeraba 4 valores y 12 principios esenciales para el éxito del desarrollo de software: el Manifiesto Ágil.
A día de hoy, el manifiesto sigue siendo el estándar al que hay que aspirar.
¿Cómo funciona?
Todo comienza con la mentalidad ágil y la promesa que encierra.
La Mentalidad
Ya lo decía Aristóteles:
“«El placer en el oficio pone la perfección en el trabajo.””
La promesa de Agile: soluciones a los problemas
Aplicar esa mentalidad al trabajo en ingeniería de software promete ofrecer resultados como estos:
Los clientes y los desarrolladores lo adoran.
Conseguirlo requiere un esfuerzo intencionado y no siempre es fácil de mantener.
El panorama ágil más amplio
Extensión a DevOps y DevSecOps
Gestión ágil de proyectos
Las habilidades de proyecto utilizadas en el desarrollo ágil de software se transfieren fácilmente a otros tipos de desarrollo de productos. Rudi Schenker escribe sobre su aplicación a otros campos de la ingeniería, como la química, la eléctrica, el control y la instrumentación, entre otros.
Culturas empresariales ágiles
Pero volvamos al desarrollo ágil de software.
Ciclo de vida del desarrollo de software ágil
El ciclo de vida del desarrollo ágil de software comienza con un cliente que quiere resolver un problema con un nuevo software.
El equipo o equipos que desarrollarán el software colaborarán con los profesionales de la empresa del cliente para averiguar qué necesitan los usuarios finales que haga el software.
Juntos, determinan y priorizan las características necesarias del producto y deciden las características que conformarán un producto mínimo viable, es decir, las características esenciales que se entregarán en la primera versión.
A partir de ahí, se pasa a un desarrollo iterativo e incremental durante toda la vida del producto.
Desarrollo y entrega iterativos e incrementales
El desarrollo y la entrega en ágil son iterativos. El trabajo se realiza en iteraciones cortas, que suelen durar una o dos semanas, y a veces hasta cuatro. A veces, hasta 4. También es incremental porque en cada iteración se construyen pequeñas porciones de software funcional que pueden valerse por sí mismas.
Aquí hay más información sobre este proceso. Desarrollo iterativo e incremental: Negarse a elegir
Las mini cascadas siguen siendo cascadas
La mayoría de las organizaciones comienzan su viaje ágil acortando la cascada a su longitud de iteración. Básicamente, ejecutan mini cascadas en una corta sucesión.
Aunque hacer esto tiene sus ventajas, también tiene muchos inconvenientes:
Colaboración ágil
Mantener el ritmo
Si bien la agilidad se centra en la entrega de valor al cliente antes, eso no significa que haya que eliminar las buenas prácticas de ingeniería. Sí, a corto plazo, eso puede acelerar la entrega de valor, pero a largo plazo te hará tropezar, ya que el código se «pudre» y rápidamente se vuelve más y más difícil de cambiar.
Esto conduce a más errores, más informes de fallos y más tiempo dedicado a arreglar problemas que a entregar nuevo valor.
Por eso todo marco o metodología ágil debe incorporar buenas prácticas de desarrollo. Por ejemplo, mediante la adopción de la Programación Extrema , el «Ágil del desarrollador».
Reducir los residuos para acelerar, de forma sostenible
La aceleración no se consigue haciendo que la gente trabaje más duro o más rápido. No se consigue recortando gastos. Al menos no a largo plazo.
Convertirse en ágil es como ir al gimnasio: se trata de recortar la grasa de los procesos.
Por eso muchos marcos ágiles, como LeSS and SAFe, y SAFe, han tomado una página del libro de Lean Manufacturing y han adoptado la teoría de gestión de flujos y colas para ayudarte a tomar decisiones sobre tu proceso.
Considere estos ejemplos
Similitudes y Diferencias
Funciones y responsabilidades clave
Al examinar cualquier marco de trabajo ágil, reconocerá las siguientes funciones clave, aunque pueden tener nombres ligeramente diferentes.
En muchos marcos ágiles, los directores de línea y los directores de proyecto no tienen ningún papel. Por eso puedes esperar una resistencia abierta y no tan abierta, a menos que les ayudes a redefinir su papel y su valor en un entorno ágil. LeSS tiene consejos específicos al respecto.
Reuniones clave, ciclos y cadencias de entrega
Una cadencia de entrega es la frecuencia con la que se lanza una nueva versión a los clientes. Una iteración, o ciclo, es el tiempo que un equipo trabaja antes de hacer una pausa, reflexionar y planificar los siguientes pasos.
Las reuniones en ágil tienen propósitos específicos, aunque pueden tener diferentes nombres en cada marco. Las reuniones en una iteración son:
Puede haber reuniones similares para coordinar el trabajo de muchos equipos, especialmente cuando la cadencia de entrega difiere de la duración de la iteración.
Métodos y técnicas
Hay muchos otros marcos, herramientas y técnicas que se utilizan en el trabajo ágil, y continuamente aparecen nuevos productos. Pruebe estos boletines para estar al día.
Errores comunes: Por qué Ágil no siempre funciona
Google sigue utilizando algunas metodologías en cascada y Amazon se describe como Lean pero no ágil. Pero se puede aprender mucho de los escollos que a veces hacen fracasar a los ágiles.
La mayor razón de los fracasos ágiles es cuando la gente sigue los pasos. Por ejemplo, realizar las reuniones prescritas, pero no adoptar la mentalidad, los valores y los principios, o no hacerlo completamente. A veces ni siquiera las buenas prácticas de ingeniería. Esto se conoce como «hacer» ágil en lugar de convertirse en ágil.
Es necesario que la dirección esté a bordo y participe en los procesos. No contar con el apoyo de la dirección es una forma segura de desincentivar a todo el mundo para que solucione los obstáculos del trabajo ágil.
Los equipos no se convierten en ágiles o autogestionados por declararlos así. No ayudar a un equipo en este proceso es una trampa común.
Aunque la agilidad y el cumplimiento de las normas no se excluyen mutuamente, los sistemas altamente regulados, como la sanidad, no se prestan fácilmente al trabajo ágil.
La forma ágil de trabajar exige un cambio radical que a menudo choca con los intereses creados y con las estructuras organizativas y los sistemas de recompensa de toda la vida. Sobre todo en las grandes empresas y gobiernos, acostumbrados a contratos rígidos y a una dirección vertical.
Recuerda que puedes seguir utilizando tu mentalidad ágil y algunos marcos ágiles incluso si un cliente insiste en un enfoque en cascada, como costes fijos y plazos de entrega fijos. Por ejemplo, así es como Kanban puede ayudar.
Empezando
La clave para ser ágil es adoptar la mentalidad y las prácticas que facilitan la entrega de un producto valioso y mantenerlo en forma para poder responder rápidamente a los cambios en los requisitos de los clientes, el entorno empresarial y las necesidades de los usuarios finales.
Llegar a ese punto es un viaje y ganarse los corazones y las mentes es la clave para seguir adelante. Aquí tiene algunos pasos para ponerse en marcha.
Reconozca que llevará tiempo realizar todos los cambios necesarios para pasar a un modelo de negocio totalmente ágil. Dependiendo de la escala de la adopción de Agile en su empresa, hay varias herramientas disponibles que apoyarán su viaje – puede ver las herramientas de Digite aquí ( https://www.digite.com/products/).
Más información
Libros y artículos
Metodologías ágiles en profundidad: Sudiptar Malakar.
Guía rápida de gestión de proyectos ágiles: Ed Stark.
La Guía de Scrum: Ken Schwaber y Jeff Sutherland.
Scrum Product Ownership: Navigating the Forest and the Trees: Bob Galen.
Desbloqueando la Agilidad: An Insider’s Guide to Agile Enterprise Transformation: Jorgen Hesselberg
Entrenamiento y formación
Digité ofrece tanto formación como servicios de consultoría Ágil y puede ayudarle rápidamente a usted y a su equipo a ponerse al día.
Certificación y acreditación
Desenredar la terminología ágil
He aquí una guía rápida de la terminología ágil (que puede resultar muy confusa para los recién llegados).
Qué es la mentalidad ágil
La mentalidad ágil es una forma de pensar en el desarrollo de productos (de software) basada en los valores y principios ágiles establecidos en el Manifiesto Ágil.
¿Qué son los métodos ágiles de desarrollo de software?
Los métodos ágiles de desarrollo de software son otra forma de referirse a las metodologías, técnicas y prácticas utilizadas para desarrollar software de forma ágil.
Qué es la metodología ágil
Una metodología ágil consiste en las prácticas que un equipo utiliza para realizar una tarea. Cada equipo se basa en diferentes marcos, técnicas, herramientas y prácticas para desarrollar su propia metodología para un proyecto concreto. Recurrir a una serie de metodologías le ayuda a ser ágil sin reinventar la rueda. Para más información, lea Qué es la metodología ágil.
¿Qué son los marcos?
Los marcos te dicen qué hacer, pero no dicen mucho sobre cómo hacerlo. Los equipos y las organizaciones tienen que completar estos marcos con buenas prácticas para todas las actividades del desarrollo de software.
Campeón del desarrollo ágil de software
El desarrollo ágil de software es deseable y no es una ilusión.
A pesar de los fracasos y decepciones que se pueden leer, hay muchas empresas que están cosechando los beneficios.
Sólo hay que tener en cuenta que no se llega a ser ágil de la noche a la mañana.
Es un proceso. Hay mucho que aprender y mucho que desaprender.
Pero también hay mucho que disfrutar.
Al trabajar en colaboración, te sientes apoyado. Sabes cómo obtener ayuda. Puedes divertirte y trabajar juntos. Confías en el proceso y en tus compañeros. Te encanta que entregues más valor antes. Te sientes mucho más productivo y orgulloso de tus logros.
Así que, ¡a por ello!
Comienza tu viaje para convertirte en ágil. Adopte la mentalidad ágil y trabaje para conseguir equipos más felices y productivos que puedan responder mejor a sus clientes de forma sostenible.