Harvard Business Review, Inc., Fortune, Entrepreneur, Fast Company, Forbes. اینها نشریات تجاری پیشرو هستند که دنبال کنندگان آنها ممکن است متوجه پست هایی در مورد اهمیت "مهارت های نرم" شده باشند. مهارت هایی مانند تفکر انتقادی، مدیریت زمان، حل مسئله و حتی خلاقیت، همه مواردی هستند که برنامه نویسان باید آنها را بررسی کنند.
به نظر می رسد سایر مهارت ها مانند هوش هیجانی، ارتباطات بین فردی، همکاری و کار تیمی نیز در بالاترین سطح قرار دارند. اینها ممکن است برای کدنویسان مشتاق کمتر بصری به نظر برسند، اما مهارتهای نرم مهمی هستند که هنگام مصاحبه برای موقعیتهای مهندسی نرمافزار و توسعهدهنده ارائه میشوند. برنامهنویسی زوجی میتواند به پرورش این مهارتهای نرم کمک کند.
برنامه نویسی جفتی تمرین کدنویسی با یک توسعه دهنده شریک است که یک نفر در یک زمان تایپ می کند. اختصاصی ترین برنامه نویسان جفت شده تنها از یک کامپیوتر استفاده می کنند که یک توسعه دهنده "درحال نوشتن" (معروف به تایپ) و توسعه دهنده دیگر در حال مشاهده است. در حالی که این رویکرد ممکن است در ابتدا زمانبر، فشرده و حتی ترسناک به نظر برسد، اما برنامهنویسی زوج موفق میتواند کارآمدتر باشد، زیرا دو کدنویس که با هم کار میکنند اغلب انگیزه حل بهتر مشکل را در عین کاهش باگها و خطاهای کد ایجاد میکنند.
مختصر برنامه نویسی جفتی این است که یک نفر الگوریتمی را برای حل مسئله ارائه می کند و دیگری نحو را تولید می کند. زمانی که به تنهایی کار می کنند، کدنویس ها باید هر دو را به طور همزمان ارائه دهند. اینطور نیست که دومی امکان پذیر نباشد، اما توسعه دهندگان حرفه ای در همه سطوح ممکن است خودشان روی سیستم های عظیم با کد بسیار مهم کار کنند. از این نظر، ارتباطات، همکاری، به اشتراک گذاری دانش و کار تیمی شروع به اهمیت خواهد کرد.
اشلی ترین، توسعهدهنده اصلی برنامه درسی در آکادمی هکبرایت، میگوید: «در محل کار، برای یک مهندس غیرممکن است که 100 درصد از کدهای شرکت خود را درک کند. "اگر کد شما با کد شخص دیگری تعامل داشته باشد، بحث درباره رویکرد خود با آن شخص بسیار کارآمدتر از متخصص شدن در کد است."
پس چگونه برنامه نویسی جفتی به مهارت های نرم قابل استفاده ترجمه می شود؟ برنامهنویسی جفتی به کدنویسها نیاز دارد که ایدههای فنی را به طور مؤثر، هم در طول مصاحبههای فنی و هم در حین کار، به اشتراک بگذارند.
این فقط مربوط به صحبت کدنویس ها با کدگذاران دیگر نیست.
در حالی که معمولاً یک تیم از مهندسان ممکن است با یکدیگر تعامل داشته باشند، اغلب مهندسان برای بحث در مورد کار خود به جلسات مشتری کشیده می شوند یا از آنها خواسته می شود کد خود را برای کاربران توضیح دهند. بسته به ساختار سازمان، مهندسان یا توسعه دهندگان ممکن است بخشی از یک تیم حسابداری باشند که به طور منظم با مشتریان تعامل دارند. به طور خلاصه، زمانی که کد قابل توضیح و توجیه باشد، کار همه بهبود می یابد.
اشلی می گوید: "برنامه نویسی جفت راهی برای تمرین مهارت های ارتباطی فنی در زمینه همکاری روی کد با شخص دیگر است." "به عنوان یک مهندس، باید بتوانید در مورد کار و روند فکر خود صحبت کنید. اگر نمیتوانید از ایدههای خود دفاع کنید، نمیتوانید به طور مؤثر از خود در یک مصاحبه فنی و یا در محل کار دفاع کنید.»
برای درک برنامه نویسی جفتی، مهم است که متدولوژی را در جایی که در آن مستقر شده است درک کنید: Agile. توسعه نرم افزار چابک به همکاری بین مشتریان، توسعه دهندگان و آزمایش کنندگان از ابتدای پروژه متکی است. نرم افزار متعاقباً در آپدیت های کوتاه توسعه می یابد تا بتوان بازخورد مستمر دریافت کرد.
طبق گفته Agile Alliance، یکی از تمایزهای اصلی Agile «تمرکز آن بر افرادی است که کار را انجام می دهند و نحوه کار آنها با هم. راه حل ها از طریق همکاری بین تیم های متقابل سازماندهی و تکامل می یابند." ارتباطات صیقلی برای بسیاری از افراد با پیشینهها و تواناییهای فنی متفاوت ضروری است تا در چندین تکرار پروژه با هم کار کنند. کدنویس ها ممکن است با فریم ورک های Agile مانند Scrum، Extreme Programming و Feature-Driven Development مواجه شوند. برنامه نویسی جفتی یکی از ابزارهای متعدد در چارچوب های Agile است که برای انجام کار برای ارائه پروژه و جلب رضایت مشتری استفاده می شود.
رابطه برنامه نویسی جفت معمولاً شامل یک "درایور" و "ناوبر" است. طبق گفته کارکنان آموزش هکبرایت، ناوبرها نقشه را بررسی و هدایت می کنند. در عمل به چه معناست؟ درایور ایده Navigator را به کد تبدیل می کند، بر نوشتن نحو صحیح تمرکز می کند (یعنی مجموعه قوانینی که معنای ترکیب های مختلف نمادها را مشخص می کند) و سوالات روشن کننده می پرسد.
در همین حال، Navigator برنامه عمل را ارائه میکند، به تایپ کننده میگوید چه چیزی بنویسد (در سطح بالا)، و مراقب هرگونه نقاط کور و مشکلات احتمالی در کد است.مهمترین چیز این است که راه حل محور باشید. با یکدیگر صبور باشید. تفاوت در سبک های کار حرفه ای و تجربه فرصت فوق العاده ای را برای یادگیری سریع در محل کار یا تقویت دانش خود از طریق آموزش ایجاد می کند.برنامه نویسی جفتی مهارتی است که با تمرین همراه است. تسلط بر برنامهنویسی جفتی دشوار است، اما ارزش تلاشی را دارد که برای ایجاد رابطه اعتماد با توسعهدهنده شریک خود و ایجاد کد بهتر انجام میدهید.
تمرین یک مهارت می تواند بی فایده باشد اگر آن را عمدا انجام ندهید. شما فقط برنامه نویسی جفتی نیستید، بلکه تمرین می کنید که چگونه سؤالات درست بپرسید، چگونه مطمئن شوید که توضیحات شخص دیگری از کد را بدون نیاز به خواندن یک خط کد واقعی متوجه شده اید، و چگونه ایده های خود را برای مهندس دیگری توضیح دهید.