برنامهنویسی دونفره
برنامهنویسی دونفره (به انگلیسی: Pair programming) روشی برای برنامهنویسی در متد برنامهسازی مفرط در پارادایم توسعه نرمافزاری چابک است. در این روش دو برنامهنویس در کنار هم و روی یک ایستگاه کاری کار میکنند.
در هر لحظه یکی از این دو کدنویسی کرده و دیگری کد او را بررسی و نقد میکند و به فراخور نیاز راهنماییاش مینماید. این دو به صورت دورهای جای خود را عوض کرده و کسی که راهنمای ای نقاد بوده دست به کدنویسی برده و کدنویس مرحله قبل کد او را نقد و بررسی میکند. نفر دوم که کار کدنویسی را مشاهده میکند، مشاهدهگر (به انگلیسی observer) یا ناوبر (به انگلیسی navigator) مینامند. نفر کناری بررسی و نقد کد به استراتژی کلی برنامه و مشکلاتی که در آینده پیش خواهد آمد نیز میاندیشد. بهطور کلی نفر دوم به تاکتیکها توجه بیشتری دارد تا تکنیکها.
اهداف
مهمترین هدف برنامهنویسی دونفره افزایش کیفیت نرمافزار است. به این صورت که با بررسیِ برنامهنویس دوم از پیادهسازی راهحلهای مشکل دار و غلط جلوگیری میشود. این روش همچنین سبب تبادل دانش میان دو برنامهنویس میشود.
مزایا
برنامهنویسی دونفره مقدار پارامتر کار-فرد (میانگین کار انجام شده توسط هر فرد) را در انجام پروژهها افزایش میدهد. همچنین این در حالی است که میزان خطا را نیز کاهش میدهد. طی بررسیهایی نشان داده شده است که این روش باعث کم شدن خطاهای برنامهنویسی تا ۱۵ درصد نسبت به روشهای متداول برنامهنویسی میشود.[1] همچنین از لحاظ حجم برنامهها این روش به طور میانگین تا ۲۰ درصد کوتاهتر میشوند.[1]
برتری مهم دیگر این روش تنوع راه حلهاییست که برای مسائل متنوع به دست میآید. این برتری سه علت دارد که به شرح زیر هستند:
- برنامهنویسان با پیشینهی متفاوت و تجربیات مختلفی با یکدیگر فعالیت میکنند.
- افراد مختلف اطلاعات را به شیوههای متفاوتی ارزیابی میکنند.
آنها به واسطهی نقشهای متفاوت در پروژه، مواجهههای مختلفی با مسائل خواهد داشت.
آمار
در یک آمارگیری از برنامهنویسان در سال ۲۰۰۰، ۹۶ درصد آنها اظهار داشتند هنگامی که به همراهی شخص دیگری برنامهنویسی میکنند از کار خود لذت بیشتری میبرند. همچنین ۹۵ درصد آنها نیز اظهار داشتند که در این شرایط با اعتماد به نفس بیشتری برنامهنویسی میکنند.
یادگیری
دانش مدام بین برنامهنویسان که با یکدیگر در حال برنامهنویسی هستند به اشتراک گذاشته میشود. همچنین هر شخص میتواند کدهای شخص دیگر را ارزیابی کند و این موقعیت خوبی برای افزایش مهارت تست و عیبیابی کدها میباشد. همچنین گاهی نیاز است تا شخصی به شخص دیگر موضوعی را آموزش دهد. تقویت مهارت آموزش نیز یکی دیگر از فواید برنامهنویسی دونفره است. این مهارت هم به شخص مقابل کمک میکند تا مطلب را بیاموزد و هم به فرد آموزشدهنده فهم عمیقتری نسبت به مطلب میدهد.
انواع برنامهنویسی دونفره
- متخصص-متخصص: این حالت بیشترین کارایی را دارد و باکیفیتترین خروجی را تولید میکند. در این حالت گاهی به روشهای جدیدی برای حل مسائل دست پیدا میکنند که بسیار ارزشمند است.
- متخصص-تازهکار: در این حالت شخص متخصص به نوعی منتور شخص تازهکار است و او را در پیادهسازی پروژه راهنمایی میکند. در مراحل ابتدایی این روش شخص تازهکار به صرف مشاهده شخص متخصص سعی در یادگیری کار دارد. سپس با پرسش و پاسخ و تخصیص کارهای کوچک توسط متخصص شروع به کار میکند.
- تازهکار-تازهکار: در این روش به وضوح کارایی بالاتر از حالتیست که شخص تازهکار به تنهایی پروژه را انجام دهد. البته این روش چندان توصیه نمیشود چون هر دو شخص بدون داشتن الگوی مناسب باید کد بنویسند که منجر به اشتباه یا شکلگیری عادت غلط در آنها میشود.
منابع
- Alistair Cockburn, Laurie Williams: The Costs and Benefits of Pair Programming. In: University of Utah Computer Science (Hrsg.): Extreme programming examined. Addison-Wesley, 2001, ISBN 0-201-71040-4, S. 223 - 243.
- مشارکتکنندگان ویکیپدیا. «Pair programming». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۳ تیر ۱۳۹۱.