PMPeople Blog
Economía de Proyectos, Financiación, Marcos de Gestión

Contratar Proyectos Ágiles

Uno de los cuatro valores del Manifiesto Ágil dice que los equipos ágiles prefieren la colaboración con el cliente antes que la negociación contractual. Los principios y valores del desarrollo de software ágil están motivados por un supuesto básico:

“En el software, el cliente no sabe lo que quiere, pero sí sabe lo que no quiere”.

En otras palabras: en la mayoría de los proyectos software es imposible determinar al principio más de un 20% de los requisitos, por lo que hay que ir derivándolos a medida que avanza el proyecto. Cuando los interesados reciben una demostración de parte del trabajo, saben inmediatamente si es lo que querían o no, y aprovechan para reformular los requisitos o añadir otros nuevos.

Este paradigma, contrario al enfoque predictivo, está muy bien para enfocar el proyecto conforme al valor. El gran inconveniente, sin embargo, lo encontramos cuando el desarrollo no debe hacerse con recursos propios, sino que hay que externalizarlo, lo cual implica que habrá que firmar un contrato con un proveedor. La pregunta ahora es ¿qué tipo de contrato debería firmarse en un proyecto ágil?

Sabemos que la respuesta no es un contrato de precio fijo (también conocido como precio cerrado, suma total, etc.). ¿Qué proveedor va a comprometerse a un precio fijo sin conocer el alcance?

Igualmente podemos deducir que tampoco serán idóneos los contratos por tiempo y materiales, o los contratos de coste reembolsable. ¿Qué cliente va a asumir el riesgo del sobrecoste si finalmente el proyecto acaba costando un 50% más, o un 100% más (el doble) de lo presupuestado?

Tratemos de ver esto con un ejemplo. Supongamos que un cliente tiene que contratar un proyecto que debería terminar en 20 semanas. Si bien el alcance no está determinado porque debe deducirse colaborando con ciertos interesados a medida que el proyecto avance, sí se sabe que habrá cuatro puestas en producción (4 releases) al final de las semanas 5, 10, 15 y 20, cada una de ellas con valor para el negocio porque ciertos usuarios irán cambiando su forma de hacer las cosas. Se sabe que el equipo externo estaría bien dimensionado con 4 personas a tiempo completo, obteniendo un esfuerzo total estimado de 3200 horas-persona (=4x40x20). Supongamos que la tarifa media de mercado para estos profesionales es 50€/h.

Con estos datos, el cliente ya podría estimar un presupuesto de 160k€ (3200 horas-persona x 50€/h). Si se proyecta en el tiempo, al final de cada release se habrían pagado 40, 80, 120 y 160k€, respectivamente. Sin embargo, como se ha comentado anteriormente, ningún proveedor va a firmar un contrato a un precio fijo si no se puede predeterminar el alcance. Por otra parte, el cliente no firmará un contrato por tiempo y materiales a 50€ la hora porque a lo mejor acaban siendo 5.000 ó hasta 10.000 horas, quién sabe.

El enfoque aconsejable aquí sería descomponer el proyecto en módulos, o grandes funcionalidades, o épicas, que es lo único que puede saberse en este momento, y tratar de acordar desempeño y precio para cada una de ellas.

El Product Owner podría profundizar (con ayuda de los interesados del negocio) descomponiendo las épicas en historias de usuario. Estas historias podrán cambiar, por supuesto, si no no sería un proyecto ágil, el objetivo ahora es llegar hasta una pila de producto priorizada para las 4 releases. Es decir, podríamos tener 4 release backlogs con sus respectivas user stories, más detalladas en la primera release que en la última, como es lógico.

Entonces ya podría estimarse el tamaño del proyecto (con ayuda de los interesados técnicos) en puntos de historia (en términos relativos, no absolutos). Supongamos que el tamaño inicial del proyecto es de 1000 puntos de historia distribuidos a lo largo de las 4 releases en 400, 300, 200 y 100 puntos de historia, respectivamente.

Con esta información, el cliente podría proponer a los posibles proveedores varios modelos de acuerdos contractuales beneficiosos para ambas partes. Me parecen muy interesantes los modelos expuestos por Alistair Cockburn y Jeff Sutherland.

Cockburn propone, entre otros, un modelo de contrato por tiempo y materiales combinando el precio por hora y el precio por punto de historia. Veamos cómo sería aplicado al ejemplo:

El modelo de contrato que propone el coautor de Scrum Jeff Sutherland, denominado Money for Nothing and Changes for Free (como la canción de Dire Straits) se basa en estimular que el proveedor termine antes y el cliente se comporte de forma ágil:

Related posts

Controlar Proyectos Ágiles

Jose Barato
3 años ago

La Orientación al Valor en Proyectos

Jose Barato
8 meses ago

Organizando la Economía de Proyectos

Jose Barato
2 años ago