مزایای برنامه نویسی دونفره (pair programming)

22 دی 1399, خواندن در 6 دقیقه

همانطور که از نامش پیداست، برنامه نویسی دونفره چیزی است که در آن دو توسعه‌دهنده فقط با استفاده از یک دستگاه کار می‌کنند. هر کدام از آن‌ها یک ماوس و کیبورد دارند. یکی از برنامه‌نویسان مانند راننده و دیگری مانند هدایتگر است. یکی از آن‌ها وظیفه‌ی کدنویسی را بر عهده دارد در صورتی که دیگری باید کد نوشته شده را بررسی، تصحیح و ارزیابی کند. این نقش‌ها می‌تواند هر لحظه تغییر کنند. بدین معنا که در صورت تمایل راننده می‌تواند به هدایتگر تبدیل شود و بالعکس.

من این مسائل را در یک مدرسه آنلاین تجربه کردم. از راه دور برنامه نویسی دونفره را انجام دادیم. ما ۲ کامپیوتر داشتیم و هدایتگر مجبور بود صفحه نمایش خود را برای دیدن راننده به اشتراک بگذارد و بالعکس.

مزایای اثبات شده‌ای در زمینه برنامه نویسی دونفره وجود دارد که شما و گروه‌تان می‌توانید از آن بهره‌مند شوید. من اخیراً با کمک یک دوره آنلاین توانستم برنامه نویسی دونفره را شروع کنم. با افراد زیادی در سراسر دنیا به صورت مشترک برنامه نویسی کرده‌ام. هنگام برنامه نویسی دونفره توانستم مسائل زیادی را از همکار خود بیاموزم و در این مقاله قصد دارم از تجربیات خود در این زمینه صحبت کنم. من باور دارم که شما و گروه‌تان می‌توانید از مزایای برنامه نویسی دونفره استفاده کنید، بنابراین در اینجا برخی از این مزایا را جمع‌آوری کرده‌ام.

بررسی کد

برنامه نویسی دونفره شامل ۲ مهندس است که کد را برای یک کار به صورت همزمان در یک کامپیوتر می‌نویسند. به همین دلیل کدهای نوشته شده فوراً مورد بررسی و بازدید قرار می‌گیرند. همانطور که راننده در حال کدنویسی است، هدایتگر آن کد را به سرعت بررسی کرده و همچنین به طراحی، مشکلات ساختاری و باگ‌های احتمالی فکر می‌کند. این کار نسبت به بررسی ناهمزمان بسیار بهتر است زیرا هر دو مهندس نرم‌افزار از قبل با وظیفه و اشکالات آشنا هستند. با این کار می‌توان فوراً از درست بودن کدها با خبر شد.

وقتی مشغول کدنویسی هستم، همکار من بازخوردهای بسیار سازنده‌ای را بیان می‌کند و بالعکس وقتی او کدنویسی را انجام می‌دهد، من با دقت کدهای نوشته شده را بررسی می‌کنم تا احتمال خطا به حداقل برسد.

انتقال دانش

مردم معمولاً این مزیت برنامه نویسی دونفره را کم ارزش می‌دانند. شما هنگام برنامه نویسی دونفره، مهندس نرم‌افزار دیگری را مشاهده می‌کنید و می‌توانید چیزهای بسیار زیادی را در این سفر یاد بگیرید. هنگام کار با همکار خود می‌توانید از نحوه استفاده‌ی او از میانبرهای کیبورد و ابزارهای جدید با خبر شوید. با این کار شما نسبت به مسائلی که قبلا نمی‌دانستید آگاهی پیدا خواهید کرد.

وقتی شما با فردی بهتر از خودتان به صورت مشترک برنامه نویسی کنید، این موضوع بسیار مفیدتر دیده خواهد شد. در حین کار می‌توانید با برنامه‌ی روزمره و نحوه استفاده موثر آن‌ها از ابزارها آشنا شوید. این مسئله به شما کمک می‌کند تا به عنوان یک برنامه‌نویس پیشرفت کنید، زیرا همیشه چند مورد برای یاد گرفتن از دیگران وجود خواهد داشت.

برنامه نویسی دونفره را می‌توان یک روش عالی برای یادگیری سریع از دیگر توسعه‌دهندگان دانست. شما این فرایند پیچیده را با مشاهده و همکاری یاد خواهید گرفت. هنگام شروع کار اطلاعات زیادی در مورد برنامه نویسی نداشتم و این ماجرا واقعاً به من در درک این موضوع کمک کرده است. من از همکاران خود چیزهای زیادی را یاد گرفتم. اگرچه ممکن است برخی از ما زمینه‌های فرهنگی متفاوتی را داشته باشیم، اما مطمئناً می‌توانیم راهی را برای کار کردن و یادگیری از یکدیگر پیدا کنیم.

برای اعضای جدید یک on-boarding بسیار عالی است

برنامه نویسی دونفره می‌تواند یکی از ابزارهای بهبود فرایند on-boarding شرکت و تیم شما باشد. اگر اعضای جدید تیم بتوانند دوره‌های برنامه نویسی دونفره را با یکی از اعضای با تجربه تیم بگذرانند، با سیستم بسیار سریعتر و عملی‌تر آشنا خواهند شد. به همین خاطر اعضای جدید با روش‌ها و فرایندهای جدید شرکت آشنا شده و به آن‌ها عادت می‌کنند.

راه‌حل‌هایی کامل برای مشکلات

گاهی اوقات نمی‌توانید کارهای خود را انجام دهید زیرا وظایفی که دارید، توسط کارهای ناتمام یکی از اعضای تیم مختل شده است. به جای اینکه منتظر شوید آن مهندس نرم‌افزار کارهای خود را تکمیل کند، می‌توانید با برنامه نویسی دونفره به او در انجام کارهایش کمک کنید. این را در نظر داشته باشید که همیشه موفقیت تیم یا اهداف آن از اهداف فردی مهمتر هستند.

وقتی توسعه‌دهندگان با یکدیگر همکاری می‌کنند، تمام انتخاب‌هایی که گرفته شده حاصل تجربه‌ها و گفتگوهای آن‌ها با یکدیگر خواهد بود. به همین خاطر است که تصمیم‌گیری‌ها تاثیرگذارتر می‌شوند.

بهره‌وری و دانش را بهبود می‌بخشد

وقتی دو نفر بر روی یک کار خاص به صورت مشترک برنامه نویسی می‌کنند، می‌توان این موضوع را یک قسمت سازنده در زمینه کار دانست. اگر راننده با دست اندازهای جاده روبرو شود، هدایتگر می‌تواند به حل این مشکل کمک کند. وقتی یکی از مهندسان نرم‌افزار با قسمت‌هایی از سیستم آشنا نیست، به اشتراک گذاشتن دانش می‌تواند بسیار مفید باشد. به عنوان مثال با استفاده از Ruby با یک نفر برنامه نویسی دونفره داشته‌ام. قبلاً هرگز با چنین زبانی کار نکردم اما توانستم چند نکته را برای بهبود عملکرد خود در این زمینه از همکار خود یاد بگیرم.

نتیجه‌گیری

اگر قبلاً برنامه نویسی دونفره را تجربه نکرده باشید، ممکن است این موضوع کمی برایتان عجیب به نظر برسد. این کار مستلزم ارتباطات زیادی بین همکاران و اعضای تیم است. وقتی به صورت مشترک کار می‌کنید، حالت و مسائل مختلفی را تجربه خواهید کرد. برخی از این مشارکت‌ها روزمره است اما برخی افراد دیگر می‌توانند تا یک هفته یا بیشتر هم با یکدیگر کار کنند.

 ممکن است برخی از توسعه‌دهندگان نقش راننده یا هدایتگر را ترجیح دهند یا بسته به شرایط موجود بخواهند نقش‌ها را جا به جا کنند. توسعه‌دهندگان در یک تیم سابقه و میزان تجربه متفاوتی خواهند داشت. برای اینکه بفهمید چه چیزی کاربردی خواهد بود، ترکیبی از این دو را امتحان کنید.

منبع

چه امتیازی به این مقاله می دید؟
خیلی بد
بد
متوسط
خوب
عالی

دیدگاه‌ها و پرسش‌ها

برای ارسال دیدگاه لازم است، ابتدا وارد سایت شوید.

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

آفلاین
user-avatar
علیرضا داداشی @Pemi.razmi
دنبال کردن

گفتگو‌ برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن وارد شو