תכנות בזוגות

תכנות בזוגות היא טכניקה בפיתוח תוכנה זריז שבה זוג מתכנתים עובדים יחדיו מול תחנת עבודה אחת. האחד מקליד את הקוד בזמן שהשני סוקר כל שורת קוד בזמן שהיא מוקלדת.
האדם שמקליד מכונה "הנהג", הוא מחזיק במקלדת ובעכבר ומבצע בפועל את עבודת התכנות.
האדם שסוקר את הקוד מכונה "הצופה" או "הנווט". הוא אחראי על איתור תקלות (תחביריות, לוגיות וכו') בקוד, שקילת הכיוון האסטרטגי של העבודה, הוגה רעיונות לשיפור וצופה בעיות עתידיות שתדרושנה מענה. הדבר מאפשר ל"נהג" לרכז את כל תשומת לבו בהיבט הטקטי של השלמת המשימה הנוכחית, תוך כדי שימוש ב"נווט" כרשת ביטחון וכמדריך.
שני המתכנתים מחליפים תפקידים ביניהם באופן תכוף.
את הזוגות מחליפים מדי פעם (תכנות מעורב - Promiscuous Pairing), כדי שכל המתכנתים יכירו כמה שיותר קוד, ואילו במבט על קוד חדש יהיה מי שיחנוך את התוכניתן שאינו מכיר את הקוד.

יתרונות 
מחקרים מסוימים מצאו שמתכנתים העובדים בזוגות מייצרים תוכניות קצרות יותר, עם תכנון טוב יותר ופחות באגים מאשר מתכנתים שעובדים לבד.
ידע עובר בין זוג המתכנתים, ככל שהם עובדים יחדיו, הם חולקים ידע על מאפייני המערכת ולומדים טכניקות תכנות אחד מהשני
עם תכנות מעורב שבו כל מתכנת עובר בין כל שאר המתכנתים בצוות, ידע על המערכת מתפשט בין כל חברי הצוות וכך מוקטן הסיכון הניהולי כאשר מתכנת עוזב את הצוות. 
ציוות בדרך כלל גורר רמת משמעת גבוהה יותר וניהול זמן טוב יותר.
הסיכוי נמוך יותר לכך שהמתכנתים יוותרו על כתיבת בדיקות יחידה, יבזבזו זמן בגלישה באינטרנט, יבדקו דואר אלקטרוני או ״יעגלו פינות״ כאשר הם עובדים עם בן זוג. בן הזוג שומר על השותף שלו "ישר". אנשים מסתייגים יותר מלהפריע לזוג מאשר להפריע למישהו שעובד לבד.
יתרונות נוספים כוללים מורל גבוה יותר וביטחון גדול יותר בנכונות הקוד.

חסרונות 
אף על פי שבתכנות בזוגות כתיבת הקוד מסתיימת מהר יותר מאשר אצל מתכנת העובד לבד, סך זמן המתכנת (מספר המתכנתים X זמן עבודה) עולה. מנהל צריך לאזן בין השלמה מהירה יותר של העבודה וירידת זמן בדיקות וחיפוש באגים לעומת עלות גבוהה יותר של ייצור קוד. המשקל היחסי של גורמים אלו יכול להשתנות מפרויקט לפרויקט וממשימה למשימה.
התועלת גדולה ביותר במשימות שעדיין אינן מובנות למתכנתים, הדורשות יותר יצירתיות, אתגר ותחכום. במשימות פשוטות שבהן הזוג מבין לגמרי את המשימה, ציוות גורר ירידה בתפוקה.
בנוסף, תכנות שנעשה באמצעות שניים יכול לגרום להסבת תשומת לב בשל חוסר ריכוז, בעבור עובדים שמתקשים להתרכז כשהם מצויים עם אדם נוסף.

גרסאות שונות

תכנות בזוגות מרוחק 
ידוע גם כתכנות בזוגות מדומה או תכנות בזוגות מחולק. בתכנות בזוגות מרוחק שני המתכנתים נמצאים במיקומים שונים ועובדים באמצעות עורך זמן-אמת משותף, שולחן עבודה משותף או פלאג אין.
ציוות מרוחק מציג קשיים שאינם קיימים בציוות פנים אל פנים, כמו עיכובים נוספים בתיאום, תלות גדולה יותר בכלים "כבדי משקל" למעקב אחר משימות במקום כלים "קלי משקל" כמו כרטיסיות אינדקס, ואובדן תקשורת בלתי מילולית הגורם לבלבול ועימותים בשל דברים כמו "אצל מי המקלדת".

תכנות בזוגות פינג פונג 
בתכנות בזוגות מסוג זה, ה"צופה" כותב בדיקת יחידה שנכשלת, ה"נהג" משנה את הקוד כך שיעבור את הבדיקה, ה"צופה" כותב בדיקת יחידה חדשה שנכשלת וכן הלאה. המעגל נמשך כל עוד ה"צופה" מסוגל לכתוב בדיקות יחידה שנכשלות. תכנות זה לוקח יותר זמן מאשר שהוערך בתוכנית

ראו גם 
 Extreme Programming
 הנדסת תוכנה

קישורים חיצוניים 

   איך לתכנת בזוגות, מאתר wikiHow

הערות שוליים 

תכנות