Friday, April 15, 2011

Remote Pair Programming

Una de les tècniques que proposa extreme programming (XP) és el pair programming: dues persones treballant alhora sobre el mateix codi. Això que molts consideren una pèrdua de temps (perds un recurs) realment obeeix a una aritmètica molt diferent. A la pràctica, tenir sessions de desenvolupament en parelles resulta en un codi de més qualitat, una major comprensió de l'arquitectura per tot l'equip i una millora en la productivitat (evitant el temps perdut pels "multitaskings"). Això sí, el pair programming cansa molt.

El cas és que estem aplicant TDD al projecte, i per aprendre el millor és fer pair amb algú que en sàpiga. I això és el que hem fet: sessions amb tot l'equip... fins i tot amb el company que viu a Argentina.

Com hem fet pair programming a tanta distància? Em fet servir eines habituals de comunicació (Skype per parlar i WebEx per compartir escritori) però necessitàvem alguna cosa més adreçada a remote pair programming (tanbé anomenat distributed pair programming).

Saros és un plugin d'Eclipse que permet que dues (o més persones) editin alhora el mateix codi. És impressionant. Pots seguir al teu company com va movent-se pel codi, com edita i com sel·lecciona. I en qualsevol moment tots dos poden posar-se a escriure. És fantàstic una conversa de l'estil "li canvies el nom a la variable o li canvio jo?" o "molt bé, ves escrivint la declaració que començo aquí a sota a fer la implementació".

Hem provat fer party programming entre tres i també ha funcionat força bé. Quan estàs fent la definició d'algun mòdul nou és força interessant perquè pots fer un disseny per consens.

Saros també té una pissarra per compartir diagrames i sembla que també pot fer Veu per IP (VoIP) i compartir la pantalla, però això no ho he provat.

Definitivament crec en el pair programming i crec que és important que el navigator (el que no té el teclat, el que no està conduint, el que no és el driver) ha de tenir un altre ordinador a prop.

Ara vull provar estar un al costat de l'altre i disposar de Saros, per si en un moment puntual els dos s'han de posar a codificar.

Tot un descobriment aquest Saros.

No comments: