Los contextos y condiciones donde las prácticas de XP entregan el mayor valor.
XP fue diseñado para proyectos donde los requisitos cambian con frecuencia. Si no sabes exactamente qué construir, XP te ayuda a descubrirlo.
Señales de alta incertidumbre:
En estos entornos, los enfoques tradicionales fallan. El diseño detallado por adelantado se vuelve obsoleto antes de la implementación. Los lanzamientos grandes no dan en el blanco porque los requisitos cambiaron.
XP abraza el cambio. Los lanzamientos pequeños obtienen retroalimentación rápida. El diseño simple evita la sobreinversión. El juego de planificación se ajusta continuamente. La incertidumbre no es un problema—es esperada.
Si tus requisitos son verdaderamente estables y bien entendidos, XP aún funciona, pero la propuesta de valor es diferente. Obtienes calidad y salud del equipo, pero los beneficios de adaptabilidad son menos pronunciados.
XP asume que estás construyendo algo que aún no entiendes completamente. Las prácticas están diseñadas para ayudarte a aprender tu camino hacia la solución correcta.
XP brilla cuando el código vivirá por años. La inversión en prácticas técnicas se paga con el tiempo.
Por qué los sistemas de larga duración se benefician de XP:
Si estás construyendo un prototipo que será desechado, la inversión de XP en calidad puede no valer la pena. Pero la mayoría de los "prototipos" se convierten en sistemas de producción. La mayoría del código "temporal" vive por años.
La apuesta: Asume que tu código vivirá más de lo que piensas. Invierte en calidad desde el principio. Si te equivocas, has perdido un poco de tiempo. Si tienes razón (y usualmente la tienes), has ahorrado años de dolor.
XP requiere colaboración cercana. La programación en pares, los juegos de planificación y la propiedad colectiva solo funcionan cuando las personas trabajan bien juntas.
Señales de que tu equipo está listo:
Si tu equipo carece de estas cualidades, las prácticas de XP se sentirán forzadas e incómodas. Puede que necesites construir la salud del equipo antes de adoptar XP—o usar las prácticas de XP para construir la salud del equipo gradualmente.
XP puede mejorar la colaboración, pero no puede forzarla. Un equipo de personas que no compartirán código no abrazará repentinamente la propiedad colectiva. Un equipo con miedo de admitir errores no se beneficiará de la transparencia.
La cultura tiene que apoyar las prácticas—o al menos estar dispuesta a cambiar.
Los desarrolladores se ayudan regularmente entre sí. Admiten cuando están atascados. Rotan a través de la base de código voluntariamente. Celebran el éxito del equipo, no el heroísmo individual.
Los desarrolladores protegen 'su' código. Ocultan problemas hasta que se ven obligados a revelarlos. Hay competencia en lugar de colaboración. La culpa es común cuando las cosas salen mal.
XP requiere un cliente disponible—alguien que pueda responder preguntas, tomar decisiones de prioridad y proporcionar retroalimentación.
Sin disponibilidad del cliente:
Disponibilidad del cliente significa:
Si tus clientes no están disponibles, XP se vuelve difícil. Puedes usar un propietario de producto como intermediario, pero alguien debe desempeñar el rol de cliente de manera efectiva.
La disfunción organizacional a menudo previene la disponibilidad del cliente. El cliente está demasiado ocupado, demasiado político o demasiado distante. Estos son problemas organizacionales a resolver, no problemas de XP.
Algunas prácticas de XP asumen contextos modernos de desarrollo de software. Pueden necesitar adaptación en otros entornos.
TDD asume:
CI asume:
La programación en pares asume:
En la mayoría del desarrollo de software, estos supuestos se cumplen. Pero sistemas embebidos, código dependiente de hardware o entornos altamente regulados pueden necesitar adaptación de prácticas.
Los principios permanecen. Las prácticas específicas pueden cambiar.
Si TDD parece imposible en tu entorno, pregunta por qué. A menudo la 'imposibilidad' revela problemas de diseño que TDD te ayudaría a solucionar.