برنامهنویسی دو نفره (Pair Programming) به حالتی گفته میشود که دو برنامهنویس به طور «مشترک و همزمان» بر روی یک پروژه کار میکنند؛ هر چند این روش پس از گذشت سالها به عنوان روشی مورد قبول و رایج درآمده، اما بسیاری از توسعهدهندگان هنوز چنین روشی را شخصاً امتحان نکردهاند. در برنامهنویسی دو نفره، یکی از برنامهنویسها «سکاندار» بوده و عملاً کدنویسی را انجام میدهد و برنامهنویس دوم «هدایتگر» است. به عبارت دیگر، او کار سکاندار را تحت نظر داشته و از هر لحاظ کنترل مینماید. پس از مقدار زمان مشخصی، نقش دو برنامهنویس جابهجا شده و در طی کار گفتگوهایی بین سکاندار و هدایتگر صورت میگیرد به اصطلاح بیشتر با یکدیگر تنظیم فرمان شوند! امروزه با ابزارهای آنلاینی که در دسترس قرار دارد، برنامهنویسی دو نفره از راه دور نیز امکانپذیر شده است.
با وجود اینکه در ابتدا به نظر میرسد این روش سبب افزایش هزینهها از نظر «نفر/ساعت» خواهد شد، اما بررسیها نشان داده است که کدنویسی دو نفره نسبت به حالت عادی فقط 15 درصد زمان بیشتری نیاز دارد و از سوی دیگر سبب کاهش 15 درصدی باگها و نقایص میشود. اکثر شرکتهایی که از برنامهنویسی دو نفره بهره میبرند، به این نتیجه رسیدهاند که منافع این روش بیشتر از هزینههای آن است.
علاوه بر استفاده در محل کار، از این روش میتوان به عنوان ابزاری برای آموزش برنامهنویسی نیز استفاده کرد زیرا در این روش شنیدن، دیدن، عمل کردن و بازخورد گرفتن بلافاصله انجام میشود و تجربهٔ یادگیری همه جانبهای را برای فرد امکانپذیر میکند. برنامهنویسی دو نفره به دو حالت کلی میتواند انجام شود:
دو برنامهنویس با سطح مهارت متفاوت
وقتی یک برنامهنویس ماهر با یک برنامهنویس تازهکار همگروه میشوند، برنامهنویس تازهکار در بهترین موقعیت برای یادگیری و رشد سریع قرار میگیرد. هنگامی که برنامهنویس ماهر نقش سکاندار را به عهده میگیرد، برنامهنویس تازهکار نه تنها میبیند که چه کدهایی نوشته میشود بلکه با چگونگی نوشتن کدها نیز آشنا میشود.
این فرآیند بینش برنامهنویس تازهکار را نسبت به نحوۀ حل مسئله، میانبرها و روش برنامهنویسی تقویت مینماید. تفاوت این حالت با حالت عادی درست مثل این است که از نزدیک شاهد کار یک آشپز ماهر باشید یا اینکه فقط دستور پخت غذا را خوانده باشید. هنگامی که برنامهنویس ماهر در حین کدنویسی توضیحاتی ارائه میدهد، شخص تازهکار امکان مطرح کردن سوالات خود و بحث در مورد کدها را نیز خواهد داشت.
وقتی نوبت به برنامهنویس تازهکار میرسد تا سکاندار پروژه شود، یک راهنمای باتجربه در کنار او نشسته است و او میتواند بدون ترس و نگرانی اشتباه کند و از اشتباهات خود درس بگیرد. مزایای این روش برای برنامهنویس تازهکار بدیهی است.
در عین حال، کدنویسی دو نفره برای شخص ماهر نیز مزایایی دارد؛ از جمله اینکه در معرض ایدهها و افکار جدید قرار گرفته و برای توضیح در مورد انتخابها و تصمیمات خود، وادار به تفکر انتقادی میشود. علاوه بر این، دیگر به صرف زمان طولانی صرفاً به منظور آموزش، نیازی نخواهد بود و در حین انجام یک کار واقعی، تدریس و یادگیری نیز صورت میگیرد (به خاطر داشته باشیم که Critical Thinking یا «تفکر انتقادی» اصلا ربطی به نقد/انتقاد کردن ندارد بلکه بدان معنا است که ما به قضایا از زوایای مختلفی نگاه کنیم).
دو برنامهنویس با سطح مهارت یکسان
هنگامی که دو برنامهنویس با سطح مهارتی یکسان وارد برنامهنویسی دو نفره میشوند، باز هم مزایایی وجود دارد؛ مثلاً این تکنیک میتواند به منظور تسریع رشد و پیشرفت برنامهنویسان تازهکار مورد استفاده قرار گیرد. در این حالت هر چند سطح مهارتی دو عضو گروه یکسان است اما ممکن است یکی از آنها دانش بالاتری داشته باشد که میتواند در حین کار دانش خود را به عضو دیگر منتقل کند.
اگر دو برنامهنویس با سطح مهارت و دانش یکسان همگروه شوند، باز هم فرآیند آموزش و یادگیری ادامه یافته و محصول نهایی نسبت به حالت برنامهنویسی به صورت یک نفره، از کیفیت بالاتری برخواردار خواهد بود. وقتی برنامهنویسی به تنهایی کار میکند، ممکن است به راحتی در مسائل جنبی و جزئیات کار سردرگم شود. برنامهنویسی که نقش هدایتگر را به عهده دارد میتواند نمای بزرگتری از کلیت کار را در نظر گرفته، ایدههای کاربردی احتمالی را مطرح نموده و به حل مسئله کمک کند. در برنامهنویسی دونفره شخص هدایتگر اشتباهات احتمالی سکاندار را برطرف مینماید و این کار گروهی فرصتی را فراهم میآورد تا دو عضو گروه دانش خود را با هم به اشتراک بگذارند.
سخن پایانی
هر جایی که هستید و هر شغلی که دارید، همیشه افرادی در اطراف شما هستند که چیزهایی میدانند که شما نمیدانید؛ در عین حال، شما هم چیزهایی میدانید که دیگران نمیدانند. بنابراین حتی برای افراد ماهر نیز همکاری با دیگران میتواند فرصتی باشد برای به اشتراک گذاشتن تجربیات، تکنیکها و ایدهها و برنامهنویسی نیز از این قاعده مستثنی نیست.
برنامهنویسی دو نفره -و به طور کلی، کار گروهی- میتواند باعث گسترش روابط اجتماعی شما شده و درک و شناخت شما را نسبت به همکارانتان افزایش دهد؛ شما را با تواناییها، ضعفها، ایدهها و افکار آنها آشنا نموده و دید جدید و تازهای برای شما پدید آورد.
توصیه میکنیم اگر امکان آن برای شما فراهم است، روش برنامهنویسی دو نفره را امتحان کنید و از مزایای آن بهرهمند شوید. به ویژه اگر تازهکار هستید هیچ فرصتی را برای ارتقاء سطح دانش و مهارت خود از دست ندهید. مثلاً ممکن است افرادی را بشناسید که مهارت بالایی در برنامهنویسی دارند. فرصت را غنیمت شمرده و در صورت امکان، دورهای را به عنوان کارآموز در کنار این افراد سپری کنید.
با وجود اینکه در ابتدا به نظر میرسد این روش سبب افزایش هزینهها از نظر «نفر/ساعت» خواهد شد، اما بررسیها نشان داده است که کدنویسی دو نفره نسبت به حالت عادی فقط 15 درصد زمان بیشتری نیاز دارد و از سوی دیگر سبب کاهش 15 درصدی باگها و نقایص میشود. اکثر شرکتهایی که از برنامهنویسی دو نفره بهره میبرند، به این نتیجه رسیدهاند که منافع این روش بیشتر از هزینههای آن است.
علاوه بر استفاده در محل کار، از این روش میتوان به عنوان ابزاری برای آموزش برنامهنویسی نیز استفاده کرد زیرا در این روش شنیدن، دیدن، عمل کردن و بازخورد گرفتن بلافاصله انجام میشود و تجربهٔ یادگیری همه جانبهای را برای فرد امکانپذیر میکند. برنامهنویسی دو نفره به دو حالت کلی میتواند انجام شود:
دو برنامهنویس با سطح مهارت متفاوت
وقتی یک برنامهنویس ماهر با یک برنامهنویس تازهکار همگروه میشوند، برنامهنویس تازهکار در بهترین موقعیت برای یادگیری و رشد سریع قرار میگیرد. هنگامی که برنامهنویس ماهر نقش سکاندار را به عهده میگیرد، برنامهنویس تازهکار نه تنها میبیند که چه کدهایی نوشته میشود بلکه با چگونگی نوشتن کدها نیز آشنا میشود.
این فرآیند بینش برنامهنویس تازهکار را نسبت به نحوۀ حل مسئله، میانبرها و روش برنامهنویسی تقویت مینماید. تفاوت این حالت با حالت عادی درست مثل این است که از نزدیک شاهد کار یک آشپز ماهر باشید یا اینکه فقط دستور پخت غذا را خوانده باشید. هنگامی که برنامهنویس ماهر در حین کدنویسی توضیحاتی ارائه میدهد، شخص تازهکار امکان مطرح کردن سوالات خود و بحث در مورد کدها را نیز خواهد داشت.
وقتی نوبت به برنامهنویس تازهکار میرسد تا سکاندار پروژه شود، یک راهنمای باتجربه در کنار او نشسته است و او میتواند بدون ترس و نگرانی اشتباه کند و از اشتباهات خود درس بگیرد. مزایای این روش برای برنامهنویس تازهکار بدیهی است.
در عین حال، کدنویسی دو نفره برای شخص ماهر نیز مزایایی دارد؛ از جمله اینکه در معرض ایدهها و افکار جدید قرار گرفته و برای توضیح در مورد انتخابها و تصمیمات خود، وادار به تفکر انتقادی میشود. علاوه بر این، دیگر به صرف زمان طولانی صرفاً به منظور آموزش، نیازی نخواهد بود و در حین انجام یک کار واقعی، تدریس و یادگیری نیز صورت میگیرد (به خاطر داشته باشیم که Critical Thinking یا «تفکر انتقادی» اصلا ربطی به نقد/انتقاد کردن ندارد بلکه بدان معنا است که ما به قضایا از زوایای مختلفی نگاه کنیم).
دو برنامهنویس با سطح مهارت یکسان
هنگامی که دو برنامهنویس با سطح مهارتی یکسان وارد برنامهنویسی دو نفره میشوند، باز هم مزایایی وجود دارد؛ مثلاً این تکنیک میتواند به منظور تسریع رشد و پیشرفت برنامهنویسان تازهکار مورد استفاده قرار گیرد. در این حالت هر چند سطح مهارتی دو عضو گروه یکسان است اما ممکن است یکی از آنها دانش بالاتری داشته باشد که میتواند در حین کار دانش خود را به عضو دیگر منتقل کند.
اگر دو برنامهنویس با سطح مهارت و دانش یکسان همگروه شوند، باز هم فرآیند آموزش و یادگیری ادامه یافته و محصول نهایی نسبت به حالت برنامهنویسی به صورت یک نفره، از کیفیت بالاتری برخواردار خواهد بود. وقتی برنامهنویسی به تنهایی کار میکند، ممکن است به راحتی در مسائل جنبی و جزئیات کار سردرگم شود. برنامهنویسی که نقش هدایتگر را به عهده دارد میتواند نمای بزرگتری از کلیت کار را در نظر گرفته، ایدههای کاربردی احتمالی را مطرح نموده و به حل مسئله کمک کند. در برنامهنویسی دونفره شخص هدایتگر اشتباهات احتمالی سکاندار را برطرف مینماید و این کار گروهی فرصتی را فراهم میآورد تا دو عضو گروه دانش خود را با هم به اشتراک بگذارند.
سخن پایانی
هر جایی که هستید و هر شغلی که دارید، همیشه افرادی در اطراف شما هستند که چیزهایی میدانند که شما نمیدانید؛ در عین حال، شما هم چیزهایی میدانید که دیگران نمیدانند. بنابراین حتی برای افراد ماهر نیز همکاری با دیگران میتواند فرصتی باشد برای به اشتراک گذاشتن تجربیات، تکنیکها و ایدهها و برنامهنویسی نیز از این قاعده مستثنی نیست.
برنامهنویسی دو نفره -و به طور کلی، کار گروهی- میتواند باعث گسترش روابط اجتماعی شما شده و درک و شناخت شما را نسبت به همکارانتان افزایش دهد؛ شما را با تواناییها، ضعفها، ایدهها و افکار آنها آشنا نموده و دید جدید و تازهای برای شما پدید آورد.
توصیه میکنیم اگر امکان آن برای شما فراهم است، روش برنامهنویسی دو نفره را امتحان کنید و از مزایای آن بهرهمند شوید. به ویژه اگر تازهکار هستید هیچ فرصتی را برای ارتقاء سطح دانش و مهارت خود از دست ندهید. مثلاً ممکن است افرادی را بشناسید که مهارت بالایی در برنامهنویسی دارند. فرصت را غنیمت شمرده و در صورت امکان، دورهای را به عنوان کارآموز در کنار این افراد سپری کنید.
تالار نقد نگاه دانلود