Rápido, sin pensar demasiado, decime cuántos de los últimos diez proyectos de desarrollo de software que encaraste (como proveedor o como cliente) terminaron en la fecha convenida, con el 100% de los features implementados. ¿Hay alguno? Si tuviste el rol de proveedor, ¿cuántos de esos proyectos agregarías a tu portfolio para mostrar orgulloso tu compromiso con el desarrollo de productos de alta calidad? Si fuiste el cliente, ¿cuántos de esos proyectos salieron a producción inmediatamente, generaron algún tipo de beneficio y/o te hicieron sentir que obtuviste lo que correspondía a cambio de tu dinero?
La semana pasada, por recomendación de Nico di Tada, leí el paper Optional Scope Contracts, de Kent Beck y Dave Cleal. En ese trabajo, Beck y Cleal explican por qué creen que la respuesta a muchas de las preguntas que le hago al hipotético lector en el párrafo anterior pueden tener como respuesta "Ninguno".
Parece ser que la costumbre de firmar contratos que fijen el costo, la fecha de entrega y el alcance de un proyecto tiene como consecuencia el sacrificio de la calidad del producto ante el primer inconveniente. ¿Te suena? Por suerte, los autores no se quedan en la mera crítica y proponen (y justifican, y defienden...) una alternativa: los contratos de alcance opcional.
Con el consentimiento de Kent, traduje su paper al español y decidí ponerlo a disposición en este post, con la intención de aportar mi granito de arena a "transmitir la palabra" en el mundo de habla hispana en general, y en nuestro país en particular: