در برنامهنویسی دونفره ، دو توسعه دهنده نرمافزار روی یک کامپیوتر کار میکنند تا یک مساله را حل کنند ، این کار یک فعالیت کلیدی در توسعه نرمافزار Agile و برنامه نویسی مفرط ( extreme programming (XP) ) است. برنامه نویسی دونفره باارزش است اما چالش برانگیز نیز هست، و یک تلاش آگاهانه برای موفقیت نیاز دارد. بیشتر تلاش های مورد نیاز میتواند در زمینه آداب و رسوم آن مورد بحث قرار گیرد بنابراین در اینجا برخی از رفتارهایی که میتوانند به برنامه نویسی دونفره کمک کنند را مورد بحث قرار می دهیم.
توسعه دهندگان یک گروه کاملا گلچین شده هستند. بنابراین ما این لیست را به صورت بایدها و نبایدها در کنار هم قرار میدهیم تا به شما کمک کنیم این تجربه کمی سادهتر شود.
در اینجا برخی از رفتارهایی که میتوانند به برنامه نویسی دونفره کمک کنند آورده شده است:
حواس جمع و متعهد باشید
برنامه نویسان دونفره یک تیم هستند و هیچکس دوست ندارد که یک عضو تیم همه بار را به دوش بکشد. متعهد بودن به معنای استفاده نکردن از هدفون و چک کردن موبایل است. واین یعنی کار بر روی یک کامپیوتر با هم دیگر ، مگر اینکه قبول کنید که یکی از شما به سرعت می تواند چیزی را در اینترنت جستجو کند. به عنوان یک راهنما، اگر حواستان پرت است، باید بپرسید که آیا میتوانید برای مدتی شما کد بزنید. به آنچه که شریک شما انجام میدهد توجه کنید. سوال بپرسید و پیشنهادهای خود را مطرح کنید.
با صدای بلند برنامه بنویسید
افکار خود را در هنگام کار به اشتراک بگذارید. به عنوان کسی که کد می زند، کدی که میزنید را بدون اینکه به شریک خود بگویید چه کار میکنید ، تایپ نکنید. مطمئن شوید که آن را به خوبی توضیح می دهید، یا ابتدا از شریکتان بخواهید که کمی صبر کند تا کار شما تمام شود و سپس توضیح دهید. اما مدتزمان سکوت برای تمرکز را تنها چند دقیقه نگه دارید، وگرنه ممکن است شما به حواسپرتی دچار شوید. اگر شریک تان با صدای بلند برنامه نویسی نمیکند، از او سوال کنید، مثلا " به چه چیزی فکر میکنی ؟"
حمایت در زمان آسیبپذیری و عدم قضاوت
این شجاعت می خواد که بگی " نمیدانم " یا اعتراف کنم که خسته یا نگران هستیم. اما وقتی این چیزها باشد، زوجها به بهترین شکل کار میکنند. به طور مشابه، با شریک خود همدل باشید و در هنگام آسیب پذیری فضایی را برای یکدیگر ایجاد کنید.
بنابراین برای موفقیت در برنامه نویسی دونفره، اگر شریک خود چیزی را نمیداند اظهار تعجب نکنید. قضاوت، دست انداختن، انتقادات، و غیره ، هیچ جایی در برنامهنویسی دونفره ندارند. مثلا همچین سوال هایی برای مسخره کردن ( " تو واقعا نمیدونی " monad " چیست ؟" ) و یا باعث خجالت زدگی او نشوید.
مراقب خصوصیات اخلاقی خود باشید
یک تله ذهنی مشترک برای توسعه دهندگان نرمافزار این است که بیش از حد خود را با کد خود مرتبط سازیم. غرور در کاری که ما انجام میدهیم مهم است. اما اگر به این غرور اجازه دهیم که ما را تعریف کند ، ما احتمالا وقتی دیگران به ما انتقاد میکنند ، عصبانی میشویم. نه تنها این کار باعث اعتماد و ارتباط مشکل در طول برنامهنویسی دو نفره میشود، بلکه همچنین برای ما دشوارتر میشود تا از هم تیمی خود یاد بگیریم و تمرین با ارزش مالکیت گروهی را کاهش می دهیم.
فروتن باشید و چیزهایی را امتحان کنید
به عنوان توسعه دهنده، ما هوشمند و با استعداد هستیم، بنابراین هیچ دلیلی وجود ندارد که طوری رفتار کنیم که انگار غیر از این فکر میکنیم. تواضع و فروتنی ساختگی نیست. نوعی فروتنی مفید در برنامهنویسی دو نفره " نظرات قوی " است، و این بدان معنی است که ما به چیزی که میدانیم عمل میکنیم، براساس اطلاعاتی که داریم، اما به طور فعال به دنبال اطلاعات جدید هستیم تا ایدهها و نظرات مان را تایید کنیم.
درمورد ایده هایتان صحبت کنید، پذیرای چیزی باشید که شریکتان از آن برخوردار است. بهترین توسعه دهندگان پیشنهاد میکنند اول با راه حل شریکتان جلو بروید، حتی اگر نظر متفاوتی داشته باشد ، چون ممکن است چیز جدیدی یاد بگیرید. بعد از کار بر روی مشکل برای مدتی، دو نفر از شما میتوانید ارزیابی کنید که آیا شما راهحل خوبی دارید یا خیر. اگر اینطور نبود، میتوانید راه حل خود را امتحان کنید.
استانداردها و توافقنامه ها را به یکدیگر یادآوری کنید
اگر تیم، با توسعه مبتنی بر تست موافقت کرده باشد و شریک شما شروع به نوشتن یک کد برای پیاده سازی یک مساله بکند، بهتر است مانند این سوال " هی، میخوای اول تست ها را بنویسی ؟" یاداوری کنی یا یک یادآوری خوب دیگر این است که "همه تست های ما موفقیت آمیز بودن. چطوره کدها رو کامیت کنیم؟ "
یک هدایت گر باشید، نه یک سرنشین که همیشه غر میزند
یادآوری های بیش از حد ممکن است آزاردهنده باشند. یک نقطه تعادلی هست که هر جفت توسعه دهنده باید برای خود پیدا کنند. در پاسخ به اشتباهات تایپی و پرسیدن سوالهایی مثل " تو میخواهی ابتدا آن متغیر را مقدار دهی کنی، درسته؟ " میتواند باعث آزار شرریکتان شود و روند تفکر آن را قطع کند. بهتر است به آنها شانس این را بدهید که چیزهای کوچکی مثل این را پیدا کنند و سپس فقط اگر این کار را نکردند ، پیشنهادهای خود را ارائه دهید.
مثل این است که شما راننده یک ماشین باشید. هیچکس دوست ندارد در هر تابلو توقف به شما بگویند که تابلو توقف بود. اما وقتی شما فکر میکنید که راننده متوجه چراغ قرمز نمیشود، زمان آن است که به او بگویید: " اوه، چراغ قرمز است."
احساسات خود را در دست داشته باشید و با شریک خود صبور باشید
به عنوان انسان، ما احساسات و حالات روحی داریم. و اگر مراقب نباشیم، آن چیزها میتوانند بر روی شریک مان تاثیر بگذارد. ما ممکن است از کوره در بریم و یا ممکن است صبر نکنیم و به شریک خود حمله کنیم.
خودتان را بشناسید که چه موقع این اتفاقات رخ میدهند، آنها را با صدای بلند تصدیق کنید و بر انجام بهتر آن تمرکز کنید. برای مثال، میتوانید بگویید، " واو، روشی که من اینو گفتم زیاد خوب نبود. منظور من این نبود. من فقط ناامید بودم چون که این باگ خیلی طول کشید تا پیدا شود" و بالعکس، به یاد داشته باشید که شریک شما نیز یک فرد با احساسات است. اگر احساساتش به سوی شما سرازیر شد بهتر است که کمی نرم تر برخورد کنید. اما به محض این که تبدیل به یک صفت فردی شد ، با احترام، موضوع را با اومطرح کنید.
زمان بگذارید تا به هم بیاموزید
موفقیت در برنامه نویسی دونفره بلافاصله اتفاق نمیافتد. زمان میبرد تا صفت های شرکای تان، نحوه صحبت آنها و اینکه آنها در چه چیزی خوب هستند را یاد بگیرید. هنگامی که کسی با یه نفر دیگر شریک می شود انتظار می رود که اوایل ارتباط نداشته باشند ولی بعدا به دنبال توضیحات هستند.
در مورد هر چیزی که میخواهید بپرسید، آماده باشید که در مورد چیزی که ترجیح میدهید توافق کنید.
اگر فونت صفحهنمایش برای شما بسیار کوچک است که بتوانید به راحتی آن را بخوانید، خوب است که از شریک تجاری تان بخواهید اندازه آن را افزایش دهد. هر چیزی که در مسیر کار شما با کامپیوتر قرار میگیرد ،برای هردوی شما یکسان است. اما در مورد چیزهایی که مربوط به ظاهر و تنظیمات ظاهری می شود به یک توافقی برسید.
یک مثال تنظیمات ویرایشگر متن شما است. آیا متن روشن را در یک پسزمینه تاریک ترجیح میدهید ؟ اگر طرف شما متن سیاه را به رنگ سفید ترجیح میدهد، چرا با او موافق نیستید ؟ و یا اگر شما واقعا از اولویت های او خوشتان نمیآید، پیشنهاد دهید نوبت به نوبت انتخاب کنید و یا راه سومی را پیدا کنید. تفاوت بین اینکه کار را به طور موثر انجام دهید و یا اینکه به راحتی انجام دهید را یاد بگیرید.
سعی کنید شریک با تجربه کمتری داشته باشید
بهتراست یک تیم دونفره مبتدی و ارشد باشید، به طوری که یکی از توسعه دهندگان در یک تکنولوژی یا عمل خاص نسبت به دیگری تجربه بیشتری داشته باشد. اگرTDDرا انجام میدهید، سعی کنید این کار را به فردی که تجربه کمتری دارد بسپرید. وقتی شما کاری را انجام دهید که در آن خوب نیستید و یک مربی دارید که وقتی که جایی گیر می افتید میتوانید از او کمک بگیرید ، در واقع این سریعترین روش یادگیری است. پخش یادگیری در بین تیم یکی از دلایل اصلی برنامه نویسی دونفره است. و این احتمال را رد نکنید که توسعه دهنده با تجربه تر میتواند از یک فرد با تجربه کمتر یاد بگیرد.
وقت استراحت داشته باشید، وقت استراحتتان همزمان باشد
برنامهنویسی دونفره کار دشواری است. فکر کردن های زیاد، فردی دیگر که به کار شما نگاه میکند، تسلیم و سازش - همه این چیزها انرژی زیادی میگیرند. دقت کنید که زمان خوبی برای استراحت داشته باشید. با هم از صفحه کلید جدا شوید، و یک زمانی را برای شروع دوباره تعیین کنید و در آن زمان آماده باشید. شما میتوانید استراحت خود را با شریکتان بگذرانید ، کاری مانند گرفتن یک نوشیدنی یا پیادهروی بکنید. یا میتوانید به طور جداگانه استراحت کنید، گوشی خود را چک کنید یا تماس بگیرید. هیچ یک از طرفین نباید به کار خود ادامه دهند در حالی که دیگری استراحت میکند.
گاهی اوقات با همدیگر جا به جا شوید.
اغلب اهداف برنامهنویسی دونفره نیازمند سوییچینگ مکرر هستند. جا به جایی بین شریکان موجب گسترش سریع دانش پروژه میشود و شانس اینکه اعضای تیم از یکدیگر یاد بگیرند را بهینه میکنند. مثلا یک دوره ی دوهفته ای برای تعویض واقعا زیاد است. در طرف دیگر این طیف، من از تیمهایی شنیده بودم که بعد از نیم روز کاری جا به جا می شوند.
با زمانبندی دو یا سه روز در هر هفته شروع کنید. این آزمایش را به مدت دو هفته امتحان کنید. در پایان این دو هفته، به عنوان یک تیم ملاقات کنید تا تصمیم بگیرید که آیا برنامه چرخش را حفظ کنید یا آن را به دفعات بیشتری تغییر دهید.
نسبت به این واقعیت که در فضای شخصی کسی هستید، حساس باشید
احتمالا نباید گفته شود، اما بهداشت یک قضیه اساسی است. ما انسانها می توانیم خیلی بد بو باشیم، و وقتی حواس مان به بوهای نامطبوع پرت شود، به خصوص وقتی که درست کنار یک نفر نشسته ایم، تمرکز کردن بر روی کد را خیلی سخت می کند. این کارها را هر روز قبل از کار انجام دهید:
-حمام کردن
-از دئودورانت استفاده کنید
-مسواک بزنید
-انتخاب نهارهای بدون پیاز و سیر
اگر شریک تان به شما آدامس پیشنهاد میکند ، آن را قبول کنید - احتمالا به آن نیاز دارید.
اما فراتر از این، حساسیت بالقوه یک شریک به بوها را در نظر بگیرید. برخی افراد وقتی در اطراف یک همکار با عطر خیلی زیاد سر و کار دارند ، دچار سردرد میشوند. یا یک قطعه باقی مانده مرغ در مایکروویو، ممکن است بویی تولید کند که به همکار شما حالت تهوع دست دهد.همیشه به تاثیری که ممکن است بر روی فردی که نزدیک آن نشستهاید بگذارید ، فکر کنید.
اگر میخواهید یک مکالمه ویژه در مورد این موضوع با شریک تان داشته باشید، آن را به صورت خصوصی به او بگویید. مهربان باشید. نظرات خشن یا منتقدانه ای مانند " عطر شما وحشتناک است " و یا " آیا حمام نمیکنید ؟ " را ترک کنید. و به خاطر داشته باشید که یک نفر میتواند به خوبی مراقبت از خود را انجام دهد و اگر شرایط پزشکی داشته باشد، ممکن است بوی خوبی ندهد.
پیروزی های مشترک را جشن بگیرید
و در نهایت، این یک عمل مهم برنامه نویسی دونفره است که به آسانی فراموش می شود. از هر فرصتی برای روحیه دادن به خودتون کمک بگیرید، مثلا بخشی از پروژه را کامل می کنید یا وقتی باگی را برطرف میکنید، زمان جشن گرفتن است!
یک جشن می تواند چیزی مانند «ما عالی بودیم» باشد. گاهی اوقات فقط یک روز رها شدن از برنامه نویسی است. جشن های کوچک مانند این باعث ایجاد ارتباط بهتر بین شریکان می شود و کمک می کند که بهتر کار کنند.
در نهایت، شجاع باشید
شجاعت به معنای عدم ترس نیست. شجاعت یعنی کاری که از آن می ترسید را انجام دهید.
همکاری دونفره ما را مجبور به انجام بسیاری از چیزهای ترسناک می کند: امتحان کردن چیزی در مقابل دیگری بدون اینکه بدونید نتیجه چی می شود، صحبت کردن درمورد تفاوت ها، اجازه دادن به شریکتان برای امتحان ایده اش درحالی که شما میدانید ایده تان بهتر است. انجام این کارها و کارهای ترسناک دیگر نیازمند موفقیت در برنامه نویسی دونفره است. ما باید شجاعت داشته باشیم که این کارها را انجام دهیم حتی اگر از انها بترسیم. با گذشت زمان اینها طبیعی می شوند. شجاعتی که در کار در مقابل یک مخاطب که شریکتان است بدست می آورید باعث می شود که در یک تیم بزرگتر نیز به خوبی کار کنید و این خدمتی است که در جایی دیگر از زندگی تان بدست نخواهید اورد.
نظرات کاربران در رابطه با این دوره