Pros y Contras de utilizar metodologías ágiles

#SEOySEM

Las metodologías ágiles son la última tendencia en desarrollo de software, pero ¿cuáles son las ventajas y desventajas que representan desde las perspectivas de un cliente y un proveedor? El desarrollo de software es un proceso complejo desde ambos puntos de vista y es importante comprender los pros y contras, problemas comunes y cuándo es conveniente utilizar estas metodologías.

 Originalmente publicado en ingles - Agile Methodology – Advantages and Disadvantages

Traducido por Florencia Lewis, Mobydigital.com

El desarrollo de software es algo que todas las compañías alrededor del mundo están adoptando. Pero cómo adquieren los servicios de software desarrollado a medida es la clave para el éxito. Al momento de comprar productos de software, las empresas tienen dos opciones:

  • Modelo de Cascada

  • Metodologías Ágiles

El Modelo de Cascada se trata de un modelo lineal del diseño de software. Tal como lo señala su nombre, la Cascada emplea un proceso de diseño secuencial. En contraste, las Metodologías Ágiles proponen un acercamiento incremental e iterativo para el diseño de software. Las metodologías ágiles surgieron después del modelo de cascada y como respuesta a las deficiencias del modelo de cascada.

 

Contratar a un equipo de desarrollo de software es una tarea que presenta un desafío para muchas empresas. Actualmente, todos parecen vender servicios de desarrollo de software, y los precios varían significativamente, o las empresas son jóvenes y las cotizaciones rara vez son transparentes. Sin embargo, las compañías que se dedican al desarrollo de software a partir de las metodologías ágiles ofrecen una solución a las inconsistencias de este ecosistema de las siguientes maneras:

 

Precio y Transparencia

Los contratos ágiles ofrecen transparencia, puesto que el modelo estándar define los tipos de recursos y su dedicación en el proyecto de manera expresa. Por ejemplo:

  • 1 Líder de proyecto con 50% de dedicación

  • 1 Líder Técnico con 50% de dedicación

  • 2 Desarrolladores .NET categoría Senior con 100% de dedicación

  • 1 Desarrollador .NET categoría Junior con 100% de dedicación

Los clientes participan de manera activa en la definición de los requerimientos y costos asociados con el equipo de desarrollo. Todo se discute y define como un equipo. Los tiempos y costos asociados con cada funcionalidad del software también se discuten abiertamente con el equipo de desarrollo.

 

El valor del negocio es prioridad

Los procesos ágiles promueven y requieren que las funcionalidades con más alto valor de negocio tengan prioridad y se resuelvan primero.

 

Buena comunicación

En estas metodologías se requiere que los clientes participen de manera activa en los proyectos, mejorando la comunicación entre el proveedor y el cliente. De esta manera, los clientes están al tanto de cada detalle de cada paso en el proceso.

Costos

Los pagos se realizan en cuotas regulares y basados en trabajos o fases del proyecto que ya están completados y aprobados. Los clientes ven los costos asociados con cada funcionalidad antes de que ésta sea programada y tienen la opción de volver atrás con características que no son esenciales para reducir los costos generales del proyecto.

 

Las desventajas

No hay precio fijo

Esto significa que el precio del producto de software no está fijo. En otras palabras, los clientes no pueden saber cuánto le costará realmente el producto hasta que el proyecto empiece, e incluso una vez en esa instancia sólo tienen una estimación del costo.

Las metodologías ágiles requieren que los clientes participen de manera proactiva, conformando un requisito del proyecto.

La disponibilidad de recursos por parte del cliente a veces es escaso, lo cual puede agregar un poco de tensión en el proceso.

 

La jerga

Las metodologías ágiles requieren que la empresa cliente utilice terminología ágil como “scrum”, “sprints”, y “points”, entre otras. Esto es -a menudo- confuso y por tanto no es percibido como algo necesario.

Trabajar con distintos clientes puede resultar en un desafío desde el punto de vista de la empresa de desarrollo de software. Todos los clientes tienen distintos contextos, productos, equipos, expectativas, etc. La curva de aprendizaje es constante y lo que puede ser obvio para un cliente quizás no lo es para el próximo; todos los clientes tienen su particularidad y el producto de software tiene que desarrollarse independientemente de lo que la parte involucrada pueda ser.

 

Ciclo de venta complicado

A los clientes les gustan los contratos cuyo costo es un monto fijo. Esto es cierto tanto en el desarrollo de software como en otros tipos de servicios. Cuando se factura un proyecto, a los clientes les gusta saber “más o menos cuánto les va a costar”. La venta de software con metodologías ágiles hace que responder esta pregunta sea bastante difícil. Principalmente porque no puede ser respondida hasta que la iteración termina, y -francamente- a los clientes no les gusta escuchar esto.

 

Entrenando al cliente

Los clientes tienen que atravesar un proceso de entrenamiento para tener éxito en el desarrollo del producto. La falta de participación y entendimiento del cliente afectará la calidad del software y en consecuencia tendrá efecto en la compañía de desarrollo de software.

Los proyectos chicos y los de mantenimiento son una gran parte de los servicios de desarrollo de software, pero las metodologías ágiles no son recomendables para implementar en ellos. Esto fuerza a las empresas a proveer soluciones híbridas.

 

Problemas comunes

Aplicar las metodologías ágiles tiene sus problemas al igual que todos los procesos:

  • Vender software con metodologías ágiles es desafiante puesto que la pregunta “cuánto me costará” surge y los clientes no gustan de escuchar respuestas ambiguas.

  • La curva de aprendizaje se repite con cada cliente.

  • La participación fuerte del cliente es un requerimiento y aunque los clientes saben de esto desde el ciclo de ventas, las primeras semanas del proyecto con frecuencia sobrepasan y asombran a cliente.

  • Se requiere que los desarrolladores participen con el cliente y los entrenen.

  • La poca participación del cliente afecta a la calidad del producto.

Las ventajas

Transparencia

Las metodologías ágiles requieren transparencia, volviendo al proyecto menos engorroso desde el punto de vista de la comunicación. Estas metodologías requieren que las empresas de desarrollo de software comuniquen explícitamente los costos de cada funcionalidad y los tiempos de desarrollo.

 

Esfuerzo colaborativo

Los clientes tienen la obligación de participar de manera activa en el proceso de definición de los requerimientos, reduciendo cualquier tipo de dudas y volviendo el proceso general del proyecto mucho más eficiente. Y el método requiere que las compañías de desarrollo de software “alquilen” un equipo de software a un costo fijo hasta que el cliente elija terminar el proyecto. Este sistema del tipo “paga a medida que avanza” facilita el manejo de las finanzas desde el punto de vista de las expensas y ganancias.

 

Cuándo utilizar Metodologías Ágiles

 

Agile Methodology Advantages and Disadvantages1 The Pros and Cons of Utilizing an Agile Methodology

 

Hay muchas maneras de desarrollar software, pero las metodologías ágiles realmente logran una solución favorable tanto para clientes como proveedores. El desarrollo de software permanecerá vigente y el modo en el que las compañías buscan acercarse a este servicio es la clave para su éxito. Trabajando con metodologías ágiles tiene sus desafíos, pero al final de cuentas, tanto el cliente como el proveedor ganan.