¡Adiós a los contratos rígidos! No es sólo una frase, para algunas empresas es un hecho.
Es todo un camino el que hay que recorrer pero ya hay varias empresas que lo están haciendo.
Partimos de la premisa que hemos adoptado, y si seguís mis publicaciones me podrás entender, que la colaboración con el cliente es la clave del éxito en el desarrollo ágil.
Aquí hago un stop sólo para que sigamos alineados. Cuando leemos «desarrollo ágil» lo debemos interpretar como el desarrollo de un producto de software bajo metodologías ágiles, que se logra mediante el trabajo en conjunto del «equipo completo» integrado por el tester y el developer, además del product owner y el scrum master.
La flexibilidad y la adaptación al cambio son claves para alcanzar el éxito en nuestras entregas.
Los métodos ágiles, bajo marcos de trabajo bien definidos (Scrum, Kanban, Scrumban) han revolucionado la industria del desarrollo de software enfocándose en la colaboración con el cliente y la entrega de valor a través de iteraciones cortas e incrementales.
Para los que tenemos algunos años en esta industria, sabemos de contratos tradicionales, rígidos y poco cooperativos. Ahora bien, el Manifiesto Ágil nos propone algo distinto, priorizar la colaboración con el cliente sobre la negociación contractual, representándo un gran cambio para ambas partes. Para entender el alcance de ésto, sintetizo la idea.
Contrato tradicional (waterfall):
- Rígido: Define el alcance completo del proyecto al inicio, con poca flexibilidad para cambios.
- Poco cooperativo: Se basa en una relación adversarial entre el cliente y el proveedor.
- Énfasis en la documentación: Prioriza la elaboración de documentos extensos sobre el desarrollo del software.
- Pagos por hitos: El cliente paga por la entrega de etapas predefinidas del proyecto.
Sobre el concepto de «relación adversarial»
En un contrato tradicional, la relación entre el cliente y el proveedor se caracteriza por:
- Falta de confianza: El cliente desconfía de que el proveedor cumpla con sus obligaciones y viceversa.
- Falta de comunicación: La comunicación entre las partes es limitada y formal.
- Falta de colaboración: El cliente y el proveedor no trabajan juntos para lograr un objetivo común.
- Enfoque en la defensa propia: Cada parte se preocupa por proteger sus propios intereses, en lugar de buscar soluciones beneficiosas para ambos.
- Resolución de conflictos a través de la ley: En caso de disputas, las partes recurren a la ley para resolverlas.
Esta relación adversarial genera un ambiente de tensión y desconfianza que puede afectar negativamente al desarrollo del proyecto.
Contrato ágil:
- Flexible: Se adapta a los cambios y necesidades del cliente a lo largo del proyecto.
- Colaborativo: Fomenta la comunicación y el trabajo en equipo entre el cliente y el equipo de desarrollo.
- Énfasis en el software funcional: Prioriza la entrega de software funcional en iteraciones cortas e incrementales.
- Pagos por valor: El cliente paga por el valor del software entregado al final de cada iteración.
Entonces…¿Por qué la colaboración es tan importante?
- Permite adaptar el proyecto a los cambios y necesidades del cliente (Flexibilidad).
- Fomenta la transparencia y la confianza entre las partes (Comunicación).
- El cliente puede evaluar el progreso y ofrecer feedback valioso (Retroalimentación).
- Se aprende de los errores y se optimiza el proceso de desarrollo (Mejora continua).
¿Cómo crear un espacio de colaboración con el cliente?
- Estableciendo una comunicación clara y abierta.
- Definiendo objetivos comunes y expectativas realistas.
- Involucrando al cliente en el proceso de desarrollo.
- Siendo receptivo a la retroalimentación y a los ajustes.
- Utilizando herramientas que faciliten la colaboración, recordando SIEMPRE que lo que más importa es la comunicación que tengamos con las personas y las relaciones que generemos, parece algo trivial y no lo es.
¿Hasta dónde llegar en la colaboración?
La colaboración no significa ceder el control del proyecto al cliente. Hay que encontrar un equilibrio entre la flexibilidad y la responsabilidad, recordando las prioridades y cómo atender las urgencias.
¿Qué necesita el cliente para colaborar?
- Confianza en el equipo de desarrollo.
- Disponibilidad para participar en el proceso. Este punto es sumamente importante porque de ello depende entre otros asuntos, el entendimiento de sus requerimientos y su participación.
- Capacidad para comunicar sus necesidades y expectativas, y aquí podemos ayudarlo.
¿Qué pasa si no hay colaboración?
- El proyecto puede desviarse de los objetivos del cliente, y lo debemos comunicar, se lo debemos decir para que entienda lo que está ocurriendo y todo lo que puede traer aparejado. Es nuestra responsabilidad.
- Se pueden generar errores y retrasos en el desarrollo que después costará mucho más resolverlos, y debe ser conversado ya que cada error y retraso trae como consecuencia un probable impacto en algún componente que hasta ese momento estaba funcionando correctamente.
- La satisfacción del cliente puede verse afectada. Debemos estar conscientes de ello y tener muy claro por dónde pasa su satisfacción para tenerlo en todo momento presente.
- La colaboración es la piedra angular del éxito en el desarrollo ágil. Al trabajar juntos, los equipos de desarrollo y los clientes pueden crear software que realmente satisfaga las necesidades del mercado.
Recuerda:
- La colaboración es un proceso continuo que requiere esfuerzo de ambas partes, y muchas veces más de nuestra parte y debemos estar conscientes de ello.
- No hay una fórmula mágica, pero la comunicación, la confianza y la transparencia son claves. En este sentido hay que trabajar hasta con uno mismo que es el mayor desafío.
- Los beneficios de la colaboración son invaluables: mayor satisfacción del cliente, mejor calidad del software y proyectos más exitosos. ¡Qué bueno es cuando ocurre!
Fuente de inspiración: PMI ACP