دستورالعملهای برنامهنویسی جفتی
در این سند
فلسفه برنامهنویسی جفتی
برنامهنویسی جفتی یک روش اصلی در فرآیند توسعه ماست که به اشتراکگذاری دانش، بهبود کیفیت کد و تقویت انسجام تیم کمک میکند. رویکرد ما به برنامهنویسی جفتی از این اصول پیروی میکند:
- اشتراکگذاری دانش: برنامهنویسی جفتی انتقال دانش را در سراسر تیم تسریع میکند
- کیفیت کد: دو جفت چشم مشکلات بیشتری را نسبت به یک جفت تشخیص میدهند
- همکاری: برنامهنویسی جفتی روابط کاری قویتری ایجاد میکند
- یادگیری: توسعهدهندگان تازهکار و ارشد هر دو از دیدگاههای مختلف بهره میبرند
زمان استفاده از برنامهنویسی جفتی
استفاده از برنامهنویسی جفتی در این موارد توصیه میشود:
- ویژگیهای پیچیدهای که به دانش عمیق دامنه نیاز دارند
- جذب اعضای جدید تیم
- اشکالزدایی مسائل دشوار
- انتقال دانش برای سیستمهای حیاتی
- تغییرات پرریسک در کد
قالبهای برنامهنویسی جفتی
- راننده-ناوبر
- پینگ پونگ
- سبک قوی
قالب راننده-ناوبر
- راننده: صفحهکلید را کنترل میکند و کد را پیادهسازی میکند
- ناوبر: کد را بررسی میکند، پیشنهادهای بهبود میدهد و به صورت استراتژیک فکر میکند
- چرخش: هر 30 دقیقه نقشها را عوض کنید تا مشارکت حفظ شود
این قالب برای انتقال دانش و مربیگری مناسب است.
قالب پینگ پونگ
- توسعهدهنده الف: یک تست ناموفق مینویسد
- توسعهدهنده ب: تست را به موفقیت میرساند
- توسعهدهنده الف: کد را بازنویسی میکند
- تکرار: ادامه دادن به نوبتهای متناوب
این قالب برای جلسات توسعه مبتنی بر آزمون (TDD) مناسب است.
قالب سبک قوی
- بر اساس این اصل استوار است: "برای اینکه ایدهای از ذهن شما به کامپیوتر منتقل شود، باید از دستان شخص دیگری عبور کند"
- ناوبر: ایده را دارد و آن را برای راننده توضیح میدهد
- راننده: ایده ناوبر را پیادهسازی میکند و برای شفافسازی سؤال میپرسد
این قالب زمانی که شکاف مهارتی یا دانشی قابل توجهی وجود دارد مناسب است.
برنامهنویسی جفتی از راه دور
برای جلسات برنامهنویسی جفتی از راه دور:
- از اشتراکگذاری صفحه با قابلیت صدا استفاده کنید
- ابزارهای کدنویسی مشارکتی را در نظر بگیرید (مانند VS Code Live Share، JetBrains Code With Me)
- استراحتهای مکررتر داشته باشید (10 دقیقه در هر ساعت)
- تصمیمات را به صورت بلادرنگ مستند کنید
- از یک فهرست کار مشترک برای پیگیری پیشرفت استفاده کنید
زمانبندی جلسات جفتی
- جلسات برنامهنویسی جفتی را از قبل برنامهریزی کنید
- هدفگذاری برای جلسات 2 تا 4 ساعته (با استراحت)
- زمانبندی را مسدود کنید تا وقفهها به حداقل برسد
- اهداف روشنی برای جلسه برنامهنویسی جفتی تعیین کنید
- زمانبندی برای تأمل در پایان جلسه اختصاص دهید
آداب برنامهنویسی جفتی
- به سبکها و روشهای مختلف کدنویسی احترام بگذارید
- به وضوح و سازنده ارتباط برقرار کنید
- به جای درخواست، سؤال بپرسید
- در صورت نیاز استراحت کنید
- در طول جلسه حضور فعال و مشارکتکننده داشته باشید
سنجش اثربخشی
ما اثربخشی برنامهنویسی جفتی را از طریق معیارهای زیر ارزیابی میکنیم:
- معیارهای کیفیت کد
- توزیع دانش در سراسر تیم
- رضایت اعضای تیم
- کاهش باگها و بدهی فنی
- سرعت جذب اعضای جدید تیم
یکپارچهسازی با سایر روشها
برنامهنویسی جفتی مکمل سایر روشهای تیم ماست:
- بازبینی کد: برنامهنویسی جفتی میتواند زمان بازبینی رسمی را کاهش دهد
- مدیریت دانش: بینشهای حاصل از جلسات برنامهنویسی جفتی را مستند کنید
- الزامات تست: برنامهنویسان جفتی اغلب کدهای کاملاً تستشدهتری تولید میکنند
- پروتکلهای ارتباطی: در طول برنامهنویسی جفتی از دستورالعملهای استاندارد ارتباطی پیروی کنید
ابزارها و منابع
- افزونه VS Code Live Share
- JetBrains Code With Me
- Tuple (برای کاربران مک)
- اشتراکگذاری صفحه از طریق Google Meet
- مستندات مشترک از طریق Confluence