Metodologías ágiles y entrega continua de valor al cliente

Isidoro Alonso, Software Engineer y Scrum Master en EDICOM, nos habla de metodologías ágiles y de entrega continua de valor al cliente para adaptarse rápidamente a las condiciones cambiantes del entorno.

Durante las dos últimas décadas se ha generalizado el concepto de que las organizaciones se mueven en un entorno VUCA (Volatility, Uncertatinty, Complexity, Ambiguity). En este escenario las empresas deben adaptarse continuamente al cambio y las metodologías ágiles como Scrum encajan perfectamente.

Con la repentina aparición de la pandemia por el COVID-19, la situación ha pasado de un entorno inestable a un entorno caótico. Cualquier predicción carece de garantía de que se vaya a cumplir y hay que estar totalmente preparado para reaccionar rápidamente a esta nueva realidad. Ahora más que nunca la única constante es el cambio. Nos encontramos ante un entorno que se empieza a conocer como BANI (Brittle, Anxious, Non-linear, Incomprehensible).

Esta nueva era exige estar abiertos al cambio de forma inexorable, nos guste o no. Los proyectos tienen que evolucionar, cambiar y adaptarse continua y rápidamente a las nuevas condiciones del entorno que pueden cambiar en unas horas. Las organizaciones que se aferren a un modelo basado en un entorno VUCA están condenadas a desaparecer. Las metodologías ágiles pasan de ser una herramienta de mejora y optimización de servicios y productos a ser un herramienta indispensable para sobrevivir como organización en el entorno actual.

Dentro de este contexto, uno de los principios básicos de Scrum y uno de los más importantes es la «entrega continua de valor al cliente», ya que permite adaptarse rápidamente a las condiciones cambiantes del entorno.

La utilización de Scrum comporta la realización de entregas continuas al cliente en un tiempo muy corto y desde las primeras fases del proyecto. Estas entregas deben tener obligatoriamente valor para el cliente. No se entregan partes del proyecto sin funcionalidad o que no sean útiles para nada. Todas las entregas deben aportar valor, estar acabadas, totalmente testeadas y funcionales para pasar a producción. Además, no se trata simplemente de entregar valor, sino que hay que maximizar el valor entregado al cliente en cada sprint, centrándose en las funcionalidades de gran valor para el cliente en las primeras fases del desarrollo.

Entregas al cliente: beneficios

Al realizar entregas al cliente desde fases muy tempranas del proyecto se consiguen los siguientes beneficios:

  • Implicación del cliente. El cliente se implica en el proyecto desde el primer momento y no tiene que estar esperando meses a ver una primera versión. Esto le permite ver que su proyecto evoluciona y que no está parado, por lo que se evitan las situaciones en las que se acerca la fecha de paso a productivo, el cliente aún no ha visto nada y se empieza a poner nervioso. Esta implicación también conlleva que cuando se tiene una versión final, el cliente ya la ha validado durante toda la fase de desarrollo del proyecto, la ha ido adaptando a sus necesidades y el producto cumple totalmente sus requerimientos. Se consigue un cliente satisfecho en un ambiente de trabajo de alta confianza.
  • Flexibilidad. Aumento de la capacidad de reacción ante errores. Con Scrum tenemos una retroalimentación continua. El cliente puede evaluar si cada entrega cumple sus expectativas y en caso contrario se puede corregir/cambiar el desarrollo de forma muy rápida sin haber perdido mucho tiempo. Esto también implica un entorno de trabajo con total transparencia entre las partes.
  • Adaptabilidad. Consiste en tener la capacidad de hacer los ajustes en el proyecto para minimizar las desviaciones o para cambiar el proyecto por completo. Los proyectos deben estar abiertos al cambio. Un proyecto perfectamente definido puede dejar de ser válido para un cliente, por ejemplo, si su máximo competidor se le adelanta en el mercado o cambian las condiciones del mercado por la pandemia. En una situación así, el proyecto por completo se debe replantear por parte del cliente y el equipo de desarrollo debe ser capaz de reaccionar y adaptarse a las nuevas circunstancias del proyecto de forma rápida y eficiente.
  • Pilotos con usuarios finales en fases tempranas del proyecto. Los desarrollos los gestionan los departamentos técnicos de la empresa del cliente y de la empresa desarrolladora, pero lo habitual es que el usuario final no esté implicado en esta fase. Es muy importante implicar al usuario final cuanto antes en pilotos para obtener su feedback temprano y estar en disposición de hacer modificaciones o correcciones del software para adaptarlo a las necesidades reales del usuario final en fases iniciales de la implementación lo más rápido posible.
  • Tiempo de paso a productivo más rápido. Como en todas las entregas se está aportando valor, el proyecto puede arrancar mucho más rápido ya que puede que con un 50-60% del desarrollo del proyecto, nuestro cliente ya pueda llegar a una parte importante sus potenciales usuarios/clientes. De este modo puede realizar un arranque del proyecto por fases, adelantando el retorno de la inversión realizada y consiguiendo posibles ventajas frente a sus competidores aprovechando las oportunidades de mercado que puedan aparecer.