Pair programming
La programmazione di coppia (pair programming in inglese) è una tecnica di sviluppo del software agile nella quale due programmatori lavorano insieme in una postazione di lavoro. Uno dei due, indicato come "conducente" ("driver") scrive il codice; l'altro, detto "osservatore" ("observer") o "navigatore" ("navigator"), svolge un ruolo contemporaneo di supervisione e di revisione del codice. Il conducente ha l'obiettivo principale di portare a termine una soluzione funzionante del problema in considerazione, mentre al navigatore è lasciato il compito di segnalare errori del conducente o proporre strategie alternative di soluzione.

La programmazione di coppia è in genere applicata insieme ad altri concetti tipici delle metodologie agili e dell'extreme programming. Per esempio, l'attività di sviluppo viene in genere suddivisa in brevi cicli di sviluppo vincolati temporalmente (timeboxing), e ciascun ciclo si conclude con un rilascio del codice sviluppato (integrazione continua). In molti casi, i due programmatori si scambiano di ruolo al termine di ciascun ciclo di sviluppo.