Che si tratti di programmazione o di un altro progetto, lavorare in due assicura numerosi vantaggi. Due teste sono meglio di una: il rischio di errori si riduce al minimo con il pair programming. Mentre una persona scrive, l'altra tiene sempre sotto controllo il codice e si concentra nell'individuare eventuali errori. Spesso è difficile trovare i propri errori. Un collega, invece, scova molto più velocemente le incongruenze.
Anche la creatività derivante dalla comunicazione è un grande vantaggio: lo scambio continuo tra i due programmatori dà vita a idee che non sarebbero nate lavorando da soli. Lo scambio comunicativo tra i due collaboratori consente anche di trovare soluzioni migliori ai problemi, più rapidamente. Perché se una persona da sola si accontenta della prima opzione trovata, nel pair programming la sua decisione deve essere sempre giustificata davanti al collega, che potrebbe avere una visione diversa del problema e non essere quindi d'accordo con la soluzione proposta. Dalla discussione che ne deriva spesso nascono idee che portano a un codice decisamente migliore.
Un buon codice è alla fin fine un codice agile: l'esperienza dimostra che il codice sorgente che risulta dal pair programming è spesso più breve e quindi più efficace. Un vantaggio che si traduce nell'utilizzo di meno risorse per la manutenzione e il rimaneggiamento.
Come detto, questa tecnica può essere utilizzata anche per permettere ai lavoratori esperti di trasmettere le proprie conoscenze ai più giovani. Così si approfitta non solo del vantaggio effettivo del pair programming, vale a dire la creazione di codici di alta qualità, ma il metodo può assolvere anche a scopi di formazione.
Si tratta però di un processo che richiede molto tempo: è vero che due programmatori lavorano più velocemente insieme che non da soli, ma è anche vero che non lavorano velocemente quanto due programmatori che lavorano ognuno per conto proprio. Ciò significa che con questo metodo i progetti procedono più lentamente oppure che bisogna impiegare più personale, con un conseguente aumento dei costi. I sostenitori del pair programming partono dal presupposto che il maggiore lavoro richiesto all'inizio sarà ripagato in seguito: perché il codice risultante contiene meno errori e nel complesso è strutturato meglio, pertanto gli interventi di manutenzione saranno molto meno.
Un altro possibile svantaggio è che il pair programming è sì indicato per il team building, ma solo quando i due colleghi possono lavorare bene insieme. I due programmatori devono lavorare a strettissimo contatto, tanto che i problemi personali tra i due possono rallentare l'avanzamento del progetto o dare luogo a una vera e propria escalation. Pertanto in questo metodo i collaboratori non vanno abbinati a caso. L'ideale è poter collaborare ogni volta con un collega diverso, ma può funzionare solo quando c'è una grande armonia in tutto il team.