¿Por qué te empeñas en seguir desarrollando según métodos predictivos?

Ene 12 2018

Si se disparan los costes de tus proyectos de desarrollo software, si no consigues adaptarte fácilmente a las necesidades reales de tus usuarios, si quieres disminuir su resistencia al cambio frente a nuevas funcionalidades, ¡acércate al mundo Agile y descubre todas sus ventajas!

 

Pedro Gago Lebrón

 

Uno de los cambios más significativos de los últimos años en lo que a desarrollo de software se refiere, no viene proporcionado por las innumerables, nuevas y potentes herramientas con las que cuentan los programadores sino por el enfoque metodológico. Me estoy refiriendo al enfoque ágil que cada vez asumen más proyectos. La filosofía Agile se ha convertido, en los últimos años, en la preferida para la ejecución de multitud de proyectos de software al aportar numerosos beneficios frente a las filosofías predictivas. Podemos considerar que, aplicada correctamente y en proyectos que le sean propicios, permite aumentar la productividad y fortaleza del equipo, reduce los costes del producto o servicio, y proporciona una mayor satisfacción al cliente. En este artículo, quiero ahondar en las características y bondades de la orientación Agile y en los beneficios que pueden obtener el cliente a través de ella. 

Las 4 características de la agilidad en el desarrollo software

El Manifiesto Agile presentado en 2001 consta de 12 principios cuyo objetivo es resaltar estos 4 elementos:

  1. Individuos e interacciones versus procesos y herramientas
  2. Software funcionando versus documentación extensiva
  3. Colaboración con el cliente versus negociación contractual
  4. Respuesta ante el cambio versus "seguir un plan".

Los equipos de desarrollo son más fuertes porque sus participantes colaboran más entre ellos, saben lo que hace todo el mundo y conocen sus límites. Además disponen de espacios que les permiten sacar a flote problemas que restan efectividad. No se trata de equipos jerárquicos tradicionales donde un responsable es el que toma todas las decisiones, sino que el equipo marca por dónde quiere trazar sus líneas en el marco del proyecto para que éste prospere convenientemente.

Agile concibe las entregas tempranas y continuas totalmente funcionales como uno de sus principales ejes, lo cual facilita la conceptualización del producto por parte del cliente y/o de los usuarios. Veremos después cómo esta característica aporta importantes ventajas en el ciclo de desarrollo del producto.

 

¿Y qué beneficios obtiene el cliente si el proyecto se aborda con un enfoque ágil?

El proyecto se adapta a las necesidades reales

La primera ventaja, muy importante, es que permite la adaptación real a las necesidades del cliente ya que puede ir modificando las historias de usuario que quiera implementar, sin incumplir ningún contrato ni compromiso con su proveedor. De esta forma, puede ajustarse a las necesidades reales observadas en los patrones de uso después de las subidas a producción. Puede alterar las prioridades del desarrollo. Por ejemplo, una tienda online planea disponer de los siguientes métodos de pago: pago con tarjeta para la primera release, transferencia bancaria para la cuarta y PayPal para la quinta. En la primera versión, se observa que los usuarios pagan por el único método disponible (pago con tarjeta), pero en el 50% de las compras indican en sus comentarios que les gustaría pagar a través de PayPal para aumentar su seguridad. Sin embargo, sólo un 5% de los compradores indica que quiere pagar mediante transferencia. En este caso, el cliente cambiará las prioridades en las historias referentes a las formas de pago para adelantar la opción PayPal al siguiente Sprint, es decir, uno o dos Sprints antes de lo previsto. Retrasará el pago con transferencia al Sprint cinco, o simplemente, cancelará este modo de pago si no existe un volumen suficiente de usuarios que lo soliciten. Esto es un ejemplo y es obvio que no todo es así de fácil. El cliente puede querer a veces algunas funcionalidades independientemente de opiniones externas, pero es importante que tengamos en cuenta la facilidad que Agile ofrece ante los cambios.

Reducimos los costes y mejoramos la eficiencia del equipo

Uno de los motivos que han provocado el auge de las aproximaciones Agile es que favorecen la disminución de los costes del proyecto respecto al método predictivo. Existen varias causas que inciden en este hecho y que vemos a continuación.

  • Relacionadas con la toma de requisitos
    Obviamente, una toma de requerimientos extensiva requiere de mucho tiempo. Además reduce el marco creativo del equipo de desarrollo y por tanto su motivación. Una toma de requerimientos incompleta provocará incidencias durante el período de pruebas por no haberse contemplado todos los casos, lo cual también tendrá un consumo no despreciable de tiempo en "refactorización". Si a eso añadimos los requerimientos “por si acaso” que muchas veces no son necesarios, pero que los usuarios añaden por inseguridad, nos encontramos ante una cantidad enorme de horas de dudosa efectividad. Con Agile, no hay toma de requerimientos tal y como se conoce en el modelo predictivo, y se define y crea lo realmente necesario, tendiendo a historias de usuario no muy grandes que permiten hacer y probar con mucha eficacia.
  • Relacionadas con las entregas
    Con el enfoque predictivo, en el momento de realizar las primeras entregas para pruebas, se producen muchas discusiones entre el Project Manager del proveedor y el cliente. El primero pierde tiempo buscando documentos para encontrar las justificaciones necesarias y no cambiar una coma de lo que ya está programado, mientras que el segundo hace lo propio para obtener lo que realmente necesita (pero que no ha podido calibrar hasta la fase de pruebas). Además del tiempo perdido en estas discusiones, la aproximación Agile cosecha una mejor salubridad en el proyecto al no producirse estos encontronazos.
  • Relacionadas con la documentación
    Reducimos el tiempo dedicado a la generación de documentación ya que únicamente se realiza la indispensable. Esto no significa que no haya documentación, sino que se elabora a medida que se necesita y únicamente la considerada necesaria para las historias de usuario asignadas a los Sprints.
  • Calidad
    Otros conceptos no intrínsecos al mundo ágil se han tomado como buenas costumbres en los equipos Agile. Muchos de estos conceptos tienen que ver con la calidad o pruebas del producto. Los equipos Agile han identificado como imprescindibles la presencia de personas de Quality Assurance para participar desde el comienzo en el proyecto, lo cual significa que los errores se detectan antes y por tanto que implican menos "refactorización".

Los usuarios y el equipo se entienden mejor

Otro beneficio adyacente a la práctica Agile es que disminuye la resistencia al cambio. Esta resistencia suele aparecer cuando se comunica a los usuarios que el día X tendrán que dejar de hacer algo que tienen muy controlado para hacerlo de forma diferente. Da igual que el cambio sea pasar del papel, del Excel o de un sistema informático previo a otro sistema informático: la resistencia al cambio siempre está presente. Ciertamente acaba desapareciendo con el tiempo ya que el usuario, más tarde o temprano, visualiza las ventajas que le aporta el nuevo sistema. Pero durante el periodo en que el usuario está fuera de su zona de confort, genera ruido y problemas. Sin embargo si el cambio es progresivo, primero con una funcionalidad y luego con otra y así sucesivamente, el usuario no perderá súbitamente el control e irá asimilando el nuevo software paulatinamente.

Desaparece la oscura percepción que, en muchas ocasiones, se tiene del equipo de desarrollo. El cliente y los usuarios visualizan cada poco tiempo nuevas funcionalidades gracias a las continuas releases. Además se les tiene en cuenta de forma temprana y continua, al ser invitados a las sesiones de entrega donde pueden dar feedback y notificar errores y/o mejoras.

Y más ventajas...

El enfoque Agile permite al cliente crear un roadmap exhaustivo de actuaciones que dependan del producto que se está desarrollando: campañas de marketing, formaciones, migraciones o lo que sea necesario. Y esto se debe a que un equipo Agile puede calcular con exactitud, al cabo de pocos Sprints, su velocidad de desarrollo. Este mismo concepto permite detallar la hoja de ruta del producto en sí, es decir, cuándo estarán disponibles las funcionalidades añadidas a la lista de requerimientos.

Los equipos en las aproximaciones Agile son muy colaborativos de manera que cada componente conoce qué hace el resto de los componentes. Adicionalmente, en algunos grupos, no existe la división funcional sino que las tareas son asignadas según un sistema FIFO (First In First Out) donde el desarrollador que se queda sin faena asume la siguiente tarea independientemente del área de aplicación. En este caso conseguimos un equipo no especializado funcionalmente en el que, una baja o una ausencia concreta, no deja huérfana ninguna parte del proyecto.

Como podemos ver son muchas las ventajas como para no plantearse, al menos, la evolución hacia Agile. Por eso, en atSistemas, hemos creado la iniciativa Agile First que busca agregar el máximo valor a nuestros procesos y servicios. Formamos a nuestros equipos para que puedan asumir, en aquellos clientes donde estamos desarrollando con Agile el rol de Product Owner o Scrum Master. Y, también muy importante, nuestros Gerentes de Cuenta trabajan conjuntamente con nuestros clientes para conseguir que la concepción Agile de los proyectos vaya en aumento.

 

Pedro Gago Lebrón


Comparte este artículo

Utilizamos cookies propias y de terceros para ofrecerte una mejor experiencia y servicio, dentro de nuestra Web de acuerdo a tus hábitos de navegación. Si continúas navegando, consideramos que aceptas expresamente su utilización. Puedes obtener más información de cómo gestionar y configurar las cookies en nuestra Política de Cookies.

×

Preferencias de Cookies


Cookies esenciales
Cookies funcionales
Cookies de análisis
Cookies de marketing