Prácticas efectivas de programación extrema
Valor de la experiencia
Todos los participantes en el proyecto XP (desarrolladores, clientes, testers, etc.) trabajan juntos en un lugar abierto, son los mismos miembros de el equipo. En las paredes del lugar se colgaron al azar gráficos grandes y destacados y otras cosas que mostraban su progreso.
2. Juego de Planificación:
El plan es continuo y progresivo. Cada dos semanas, los desarrolladores estiman el costo de las funciones candidatas para las próximas dos semanas y los clientes seleccionan las funciones para implementar en función del costo y el valor comercial.
3. Pruebas del cliente:
Como parte de la selección de cada función requerida, los clientes pueden definir pruebas de aceptación automatizadas basadas en un lenguaje de secuencias de comandos para demostrar que la función funciona.
4. Diseño simple:
El equipo mantiene el diseño totalmente ajustado a la funcionalidad actual del sistema. Pasa todas las pruebas, no contiene duplicaciones, expresa todo lo que pretendía el autor y contiene la menor cantidad de código posible.
5. Programación en pares:
Todo el software del producto es creado por dos programadores sentados uno al lado del otro en la misma máquina.
6. Desarrollo basado en pruebas:
Escribir pruebas unitarias no es solo un comportamiento de verificación, sino también un comportamiento de diseño. Asimismo, es el acto de redactar un documento. Escribir pruebas unitarias evita muchos bucles de retroalimentación, especialmente en la verificación funcional. Los programadores tienen ciclos de trabajo cortos. Primero agregan una prueba fallida y luego la pasan.
7. Mejorar el diseño:
Utilice métodos de refactorización para mejorar el código dañado en cualquier momento y mantenga el código lo más limpio y expresivo posible.
8. Integración Continua:
El equipo siempre mantiene el sistema completamente integrado. Después de que una persona se registra, otra persona es responsable de la integración del código.
9. Propiedad colectiva del código:
Cualquier pareja de programadores puede mejorar cualquier código en cualquier momento. Ningún programador es el único responsable de ningún módulo o tecnología en particular; todos pueden participar en cualquier otro aspecto del desarrollo.
10. Estándares de codificación:
Todo el código del sistema parece escrito por una sola persona.
11. Metáfora:
Conecta la vista general de todo el sistema; es la imagen futura del sistema, haciendo que la ubicación y apariencia de todos los módulos individuales sean obvias e intuitivas. Si la apariencia de un módulo no coincide con la metáfora general, entonces sabrá que el módulo es incorrecto.
12. Velocidad sostenible:
Este equipo sólo puede aspirar a ganar si continúa. Trabajan a un ritmo que pueden mantener a largo plazo, conservan energía y tratan el proyecto como un maratón en lugar de una carrera de velocidad.