En el desarrollo de software tradicional la práctica esencial consiste en entregar productos en tiempo y forma, pero parece que hoy se necesita algo más. Las organizaciones buscan desarrollar productos y servicios que les permitan tener un claro diferenciador de sus competidores. El desarrollo de software ha demostrado ser un habilitador de ventaja competitiva, pero: ¿existe la visión en los encargados de desarrollar software para entregar ese plus que será la ventaja que los ayude a liderar el mercado?
Los resultados son lo importante
Durante varios proyectos en los que he tenido la oportunidad de participar, me he encontrado que, para ser tomado en cuenta en el desarrollo de software de primer nivel, se necesitan ciertas acreditaciones o certificaciones en modelos de procesos que rara vez se alinean con el comportamiento del cliente, pues en el área de negocios los resultados son lo único. Esto sin duda entra en contradicción, ya que tales acreditaciones son requisitos obligados para “jugar”, pero al parecer no son consideradas para verificar el resultado. Al llegar la hora de rendir cuentas o auditar los productos, resulta que a nadie le interesa la metodología y la documentación, ¡solamente los resultados!; y no me refiero sólo al cliente, sino también al equipo de desarrollo. Cuando después de 96 horas semanales de trabajo forzado durante la fase de pruebas de aceptación ocurre que se debe actualizar la especificación funcional de lo que se acaba de modificar, el desarrollador se encontrará ante la decisión: “¿corregir la especificación o liberar la funcionalidad?” La segunda opción es la más socorrida, ya que a fin de cuentas lo que el cliente necesita es el software funcionando … luego encontraremos tiempo de completar la documentación, primero hay que entregar el producto…
El time-to-market es esencial
Ahora, imaginemos el caso hipotético de una organización donde este tipo de situaciones no suceden, ya que cuenta con un proceso de desarrollo de software sumamente maduro, el cual es soportado por las más rigurosas practicas de administración de proyectos; no hay sorpresas ni desvíos de los planes originales. Supongamos entonces, que un cliente tiene un proyecto en puerta para un nuevo negocio, y que por lo tanto, requiere un nuevo sistema de información: lo encarga a dicha organización, se define la funcionalidad, se construye la aplicación, el cliente la acepta y todo se libera para competir en el mercado, pero sucede que desde que el cliente solicitó el sistema hasta que se ha puesto en producción han pasado al menos 12 meses. Hoy en día, ¡12 meses es muchísimo tiempo! No podemos esperar tanto por un sistema.
En 12 meses la competencia ha presentado un nuevo producto, el congreso ha aprobado alguna nueva ley, los teléfonos ahora son touch screen, se dejaron de vender las playeras del Manchester por vender las de Barcelona por ganar la Champions League, etcétera. Pues bien, razones como las que he mencionado, han sido causas que me llevaron a replantear el cómo nos conducimos al proveer servicios de desarrollo de software en el mercado, y la mejor solución con la que me encontrado, usado y recomendado, es: los métodos ágiles.
El uso de los métodos ágiles me ha permitido visualizar el orden en el que las necesidades de mi cliente deberán resolverse dentro de periodos de tiempo donde se puede aceptar el cambio, cambios a nivel de mercado que nos obligan a entregar cuatro números frecuentes para el celular en vez de sólo tres… son esos cambios los que nos debe interesar resolver en lo inmediato, ya que no podemos esperar 12 meses a que el sistema esté completo. Porque es casi seguro que sólo una de los cientos de funcionalidades solicitadas sea la prioridad. Si podemos hacer iteraciones cortas que nos permitan ir liberando nuevas versiones y mejores funcionalidades, podremos ofrecer esa ventaja competitiva antes mencionada. Parecería algo radical, pero no lo es, únicamente los resultados lo son...¿cuántas versiones del teléfono celular que tenemos hemos visto llegar?... soóo en la función de la cámara tenemos incremento continuo en la cantidad de pixeles, luego detección de rostro, que dispare la foto cuando sonríes; casi de inmediato salió otro que se acuerda de los rostros y mañana no sabemos… la clave está en iterar… y hacerlo rápido.
Las ventajas de los métodos ágiles
La naturaleza de los métodos ágiles nos permite el desarrollo iterativo de versiones, estableciendo el beneficio de la entrega de aquella funcionalidad que es crítica para el cliente, e inmediatamente después de haberla entregado, avanzar con la siguiente o inclusive con la aplicación completa; y todo esto con calidad incluida, pues parte fundamental del desarrollo ágil es la integración de las pruebas de forma continua durante el ciclo de desarrollo, lo que conlleva el asegurar la calidad del trabajo tan pronto como se está desarrollando. Lo anterior se traduce en libertad para el cliente para solicitar “ajustes” sin que el equipo resienta el costo de la calidad.Otra gran ventaja es la participación activa del usuario final, pues la alta visibilidad que se le inyecta al producto, así como la promoción de aceptar los cambios, incrementan sin lugar a duda la satisfacción del cliente, trasladándose en relaciones de negocios más duraderas. Por si fuera poco, el equipo de desarrollo adquiere una habilidad intrínseca para construir el producto adecuado, pues el producto que se construye está bajo continua revisión por parte del cliente, lo que rara vez sucede con en el desarrollo de software tradicional que requiere largos periodos de tiempo para entregar resultados, lo cual tiene como consecuencia común el encontrarse con decepciones al no entregar lo que se esperaba. Los métodos ágiles te llevan de la mano a construir lo que el cliente necesita y espera.
Los métodos ágiles nos acercan al desarrollo de proyectos como productos. Nos olvidamos de la idea de que tenemos que construir un sistema que haga de todo en una primera versión, y que el cliente no puede cambiar de opinión porque para eso nos firmó con sangre una especificación de requerimientos y hasta pedimos testigos para que no se fuese a retractar. Hoy necesitamos aceptar el cambio en el momento preciso y los métodos ágiles nos preparan para aceptar y promover el cambio. No nos deberá molestar que el cliente diga: “no, no podemos ejecutar la funcionalidad de Honduras pues la situación político/económica nos impide tomar decisiones, continuaremos con Nicaragua”. Ni modo que respondamos: “¡No, eso no decía el plan!”. Claro que no, el sentido común te invita a aceptar el cambio, de no hacerlo, seremos reemplazados por alguien que sí lo haga.
Definitivamente puedo asegurarte que adoptar los métodos ágiles ha ayudado a mi equipo de desarrollo a entregar ventajas competitivas, pero el adoptarlos no quiere decir que mágicamente las cosas van a cambiar. No. Hoy las organizaciones esperan que alguien les diga que con una inversión de 9,999 USD más gastos de envió, recibirán una serie de formatos preestablecidos que los llevarán al paraíso del desarrollo y no es así. El adoptar ágil en tu organización implica apertura, comunicación efectiva y un gran compromiso tanto del equipo como del cliente...
A pesar de todo, las ventajas competitivas que proponen los métodos ágiles son bastante concretas y perceptibles. Inténtalo, asegúrate de que está siendo implementado correctamente y los resultados serán tu mejor carta de presentación.
Acerca del Autor
Adalberto González Ayala es consultor en Softtek donde participa en proyectos para el sector financiero global. Entre sus funciones se encuentran el seguimiento e implantación de CMMi y Agile así como el diseño y construcción de herramientas automatizadas para la extracción y análisis de datos.
adalberto.gonzalez@softtek.com