Pair programming is een programmeermethode waarbij twee mensen samenwerken op één toetsenbord. Eén persoon, 'de bestuurder', typt op het toetsenbord. De andere persoon, "de waarnemer" (of "navigator"), beoordeelt elke regel code terwijl deze wordt getypt, controleert op fouten en denkt na over het algemene ontwerp.


Enkele voordelen die u kunt verwachten: betere code (eenvoudiger ontwerp, minder fouten, beter onderhoudbaar), hoger moreel (meer plezier!), Gedeelde kennis door uw hele team (zowel specifieke kennis van uw codebase en algemene programmeerkennis), beter tijdsbeheer, hoger productiviteit.

Stappen

  1. 1 Begin met een redelijk goed gedefinieerde taak voordat je gaat zitten. De taak moet iets zijn waarvan je zeker weet dat je deze binnen een uur of twee kunt voltooien. Bijvoorbeeld "Voeg onderhoudshistorie toe" aan de verhuiswagen-databasecode. " Misschien vindt u het handig om te beschrijven wat u van plan bent te gaan doen voordat u begint met coderen.
  2. 2 Ben het eens over één klein doel per keer: iets dat je binnen een paar minuten kunt voltooien. Door het probleem met woorden aan iemand anders te vertellen, wordt je geest gefocust en wordt de geest van je partner betrokken. Het zorgt er ook voor dat jullie beiden weten waar je aan werkt direct.
  3. 3 Vertrouw op uw partner en steun uw partner.
    • Als je de bestuurder bent, voltooi dan het huidige kleine doel zo snel mogelijk en negeer grotere problemen. Vertrouw de waarnemer als uw vangnet.
    • Wanneer je de waarnemer bent, lees dan de code die de bestuurder schrijft terwijl hij of zij het schrijft. Jouw taak is code review. Je moet totale aandacht schenken, met als doel om niets door je heen te laten komen. Denk aan mogelijke bugs, grotere problemen en manieren om het ontwerp te vereenvoudigen of te verbeteren. Breng fouten en code naar boven die je onleesbaar vindt. Wacht tot het huidige kleine doel is bereikt om grotere problemen en ideeën voor ontwerpverbetering naar voren te brengen. Jot deze latere taken naar beneden, zodat de bestuurder kan blijven gericht op de huidige kleine taak. Als u bijvoorbeeld ziet dat de huidige code geen rekening houdt met een nulinvoer, noteer dan op een vel papier: "Voeg eenheidstest toe voor nulinvoer."
    • Als u de waarnemer bent, dicteer de code dan niet. De bestuurder moet actief nadenken over hoe de huidige taak moet worden bereikt, niet alleen passief typen. En als waarnemer zou je het feit moeten benutten dat je de kleine details niet hoeft uit te vinden; je kunt en moet op een hoger niveau denken. Zeggen "Dat ziet er goed uit. Hoe zit het met het behandelen van de zaak waarbij we nu een lege wijzer gepasseerd zijn?" is beter dan "OK, typ nu" als (s == NULL) return ... '"
  4. 4 Veel praten! Zeg wat u gaat doen, vraag om een ​​implementatie-idee, vraag om een ​​betere manier om het probleem op te lossen, breng alternatieve ideeën naar voren, wijs mogelijke invoer aan die de code niet dekt, stel duidelijkere namen voor variabelen en subroutines voor , manieren voorstellen om de code in kleinere stappen te implementeren, de chauffeur dat beetje API-kennis vertellen dat ze nodig hebben op het moment dat ze het nodig hebben, enz. Luister natuurlijk ook veel. Wanneer mensen goed paren, praten ze bijna non-stop heen en weer. Hier zijn enkele veelvoorkomende dingen die je kunt zeggen tijdens het koppelen:
    • "Denk je dat dit een geldige test is?"
    • "Ziet dat er goed uit voor jou?"
    • "Wat is het volgende?"
    • "Vertrouw me" (wanneer het makkelijker is om een ​​kleine code te schrijven om je punt te maken dan om het hardop te zeggen)
  5. 5 Synchroniseer regelmatig. Als u samenwerkt, zult u merken dat u niet meer synchroon loopt: onzeker worden over wat uw partner doet of onduidelijk worden over de huidige taak. Dit is normaal. Wanneer dit gebeurt, opnieuw synchroniseren. De sleutel tot goed koppelen is om zeer vaak te synchroniseren - binnen seconden of een minuut nadat je hebt opgemerkt dat je niet synchroon loopt. Als u vijf minuten (of meer) niet synchroon loopt, kunt u net zo goed alleen coderen, omdat het de frequente re-synchronisatie is die de synergie van het koppelen tot stand brengt.
    • Als je kunt, zeg dan wat je gaat doen voordat je het doet. Beter nog, vraag je partner; bijvoorbeeld: "Zullen we de test voor het nulgeval nu schrijven?" Soms moet je echter code schrijven om je gedachten te begrijpen, en dat is oke. Dan kun je zeggen dat je dat doet: "Ik moet dit typen om te kijken of het een goed idee is." Het is echter het beste om dit soort verkenning te houden tot minder dan een minuut.
    • Wanneer uw partner vraagt ​​of u het eens bent met iets, zoals "Zullen we de test voor de nulzaak nu schrijven?" of "Ik denk dat deze methode nu kan worden verwijderd. Gaat u akkoord?", zeg "Ja" of "Nee" duidelijk en onmiddellijk.
    • Het is prima om het toetsenbord heel vaak heen en weer te laten gaan. Soms is het bijvoorbeeld veel gemakkelijker om iets te "zeggen" door het in code te typen dan door het hardop uit te leggen. Laat de kijker dus het toetsenbord pakken en typen. Dan kun je terugschakelen of de waarnemer blijven laten rijden, wat dan ook logischer klinkt.
  6. 6 Neem een ​​moment om te vieren terwijl je taken voltooit en problemen overwint. Telkens als je een toets krijgt om te slagen, geef je elkaar bijvoorbeeld een high five. Als je ook high-five elke keer dat je een nieuwe test krijgt mislukken, je komt echt in de smaak van collaborative programming en test-driven design.
  7. 7 Wissel vaak van rollen - minstens elk half uur. Hierdoor blijf je beiden volledig betrokken, allebei in overeenstemming met de details op laag niveau en het grote plaatje. Ook kan het besturen van vol gas je vermoeien, en het is moeilijk om de waakzaamheid van de waarnemerrol langer dan een half uur te handhaven. Wisselen van rollen laadt je op.