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

گردآوری و تالیف : ارسطو عباسی
تاریخ انتشار : 29 مرداد 1398
دسته بندی ها : برنامه نویسی

 برنامه‌نویسی دونفره حالتی است که در آن دو نفر به صورت همزمان در یک مکان کاری مشغول برنامه‌نویسی می‌شوند. 

به صورت تعریف شده در این شکل از برنامه‌نویسی یکی از افراد مشغول کدنویسی می‌شود و فردی دیگر روند کدنویسی وی را مشاهده کرده و هر خط از کد را بازبینی و بررسی می‌کند. در دنیای برنامه‌نویسی دو نفره به فرد اول Driver و به فرد دوم Navigator گفته می‌شود.

البته حالت‌های دیگری نیز وجود دارد که در آن هر دو فرد در کنار همدیگر مشغول کدنویسی شده و مشکلات را با همدیگر حل می‌کنند. در این حالت هر دوی آ‌ن‌ها باید مشغول کدنویسی شوند و هیچکدام آن‌ها نمی‌توانند کارهای دیگری مانند چک کردن شبکه‌های اجتماعی و… را انجام دهند.

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

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

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

مزایا

خطاهای کمتر 

همه ما به عنوان افرادی که برای مدتی برنامه‌نویسی کرده‌ایم با باگ‌های عجیب و غریبی روبه‌رو شده‌ایم که روزها زمان‌مان را به خود گرفته است. این خطاها را می‌توان به جریانات پایه‌ای برنامه‌نویسی، رویکرد کلی و… نسبت داد. البته گاهی اوقات نیز مشکل چندان پیچیده نیست چرا که با حذف و نصب یک ماژول و یا ریبوت کردن سیستم حل می‌شود!

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

سهولت در ادامه دادن 

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

عقب نیافتادن

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

شاید بنظرتان چک کردن شبکه‌های اجتماعی و موبایل‌تان کار کوچک و ساده‌ای باشد اما به شما قول می‌دهم زمانی که در دام آن‌ها بیافتید برای ساعت‌ها بیرون نخواهید آمد. از این رو اگر آن‌ها را حذف کنید می‌توانید ساعت بیشتری را مشغول کدنویسی و کار روی پروژه‌تان باشید.

اشتراک‌گذاری بهترین رویکردها

کدنویسی با همدیگر بهترین راه برای به اشتراک گذاشتن دانش‌تان با دیگران است. کدنویسان می‌توانند به همدیگر نکات و تکنیک‌های مهمی را بگویند که می‌تواند سرعت‌شان را افزایش دهد. کار کردن با همدیگر می‌تواند دانش مخفی که در کتاب‌ها و دوره‌های آموزشی وجود ندارند را آشکار سازد.

راه‌ افتادن سریع

اگر یک کار‌آموز یا کارمند جدید وارد شرکت شود می‌تواند با کار کردن در کنار یک فرد حرفه‌ای بسیار سریع‌تر از هر حالت دیگری راه بیافتد.

تشخیص استخدام اشتباه

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

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

بالا بردن رضایت کارمند

زمانی که برنامه‌نویسان مختلف یک شرکت بتوانند در کنار همدیگر یک پروژه را حل کنند قابلیت همزیستی بالایی پیدا خواهند کرد. به این صورت می‌توان به خوبی بین افراد مختلف یک شرکت ارتباط ایجاد کرد و تعاملات گفتگویی را شکل داد. حذف هر گونه بیگانگی در بین افراد شرکت موضوع مهمی است. به همین دلیل است که برنامه‌نویسی دو نفره می‌تواند هم برای استارتاپ‌ها مناسب باشد و هم برای شرکت‌های بزرگ.

معایب

با وجود تمام مزایا، برنامه‌نویسی دونفره معایب خودش را نیز دارد که به آن‌ها در ادامه اشاره خواهیم کرد.

مشارکت بدون انجام کار

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

کدنویسان خسته

همکاری و خوردن قهوه بیشتر نمی‌تواند همیشه پاسخ مناسبی باشد. زمانی که شما خسته باشید به احتمال زیاد نمی‌توانید به خوبی ارتباط برقرار کنید. این مسأله می‌تواند مشکلات بیشتری را بوجود آورده و بین برنامه‌نویسان اختلاف بیاندازد. 

مشکل با کدهای پیچیده 

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

نظرهای دیگر

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

در پایان

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

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

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

اگر تا به حال تجربه‌ای در این زمینه داشته‌اید با ما آن را به اشتراک بگذارید.

منبع

مقالات پیشنهادی

  • خالق لاراول چگونه کار می‌کند؟

    اخیرا افرادی را دیدم که وضعیت / روند کاری خود را به اشتراک می‌گذارند. پس من هم تصمیم گرفتم که همین کار را انجام دهم.

    عرفان کاکایی