Рахва Ликемариам

Люди часто говорят, что работа в команде заставляет мечту работать, и это относится и к разработчикам! Когда два разработчика одновременно работают над кодом, это парное программирование. Википедия так красноречиво определяет парное программирование как метод гибкой разработки программного обеспечения, при котором два программиста работают вместе на одной рабочей станции. Этот метод не следует путать с групповым программированием.

На изображении ниже показано, как будет выглядеть среда парного программирования. Роль водителя заключается в написании кода в соответствии с инструкциями навигатора.¹ Навигатор оценивает код, который вводит водитель, указывая на любые синтаксические и орфографические ошибки.² Парное программирование также может выполняться удаленно, если роли правильно определены. выполнено.

Существует ошибочное мнение, что все разработчики — «компьютерные задроты». Вы знаете стереотип. Что они социально неуклюжи, одиноки, постоянно приклеены к экрану и заперты в комнате на несколько часов в день. Это определенно неправда! Сотрудничество с другими разработчиками — очень важный метод, помогающий развивать навыки и улучшать код в целом.

Как парное программирование помогло мне в обучении и продуктивности

Парное программирование может принести разработчику максимум пользы. Когда я думаю о тех временах, когда я программировал в паре, это определенно делало это для меня! Я обнаружил, что более восприимчив к исправлениям в моем коде. И когда я более восприимчив к исправлениям, я узнаю намного больше. Парное программирование позволяет мне учиться у моего партнера передовым методам, языкам программирования, которые могут быть не в моей силе, и другим навыкам, которых мне может не хватать.

Парное программирование не только предоставляет возможности для обучения, но и повышает производительность (я имею в виду, кто не любит заканчивать задачи раньше, чем ожидалось?). Практика парного программирования прививает разработчику определенный уровень дисциплины. Я знаю, что когда я занимался парным программированием, я НЕ хотел быть «ленивым» участником группы. Таким образом, работа с кем-то еще может подтолкнуть человека к тому, чтобы он был готов работать дополнительный час или два или немного больше исследовать определенные темы и пытаться расширить свои знания самостоятельно. Второй способ, которым я обнаружил, что парное программирование повышает продуктивность, заключается в том, что между двумя людьми меньше пробелов в знаниях. Подумайте об этом, с двумя наборами знаний потенциально будет меньше случаев, когда оба разработчика будут поставлены в тупик. Следовательно, потенциально будет меньше времени, потраченного на попытки преодолеть эти проблемы.

Парное программирование и его использование

Помимо преимуществ, упомянутых ранее, парное программирование оказывает и другое влияние на личностное развитие. В статье Allie Grampa 6 причин для парного программирования они перечисляют довольно солидные дополнения к тому, что уже было признано. Автор упоминает, что использование парного программирования включает в себя подготовку к собеседованию. Далее они объясняют, что некоторые процессы собеседования предполагают парное программирование вместе с текущим сотрудником компании, для которой вы проходите собеседование. Это кажется логичным включить в процесс найма. Это дает работодателю возможность увидеть не только ваши навыки программирования, но и ваши навыки межличностного общения.

В статье Макса Андакера Чему можно научиться из того, как успешные компании используют парное программирование перечислены такие компании, как Facebook, Vimeo, Square и другие, которые используют парное программирование. Эти компании не только ограничивают парное программирование процессом собеседования, но и внедряют этот метод в производство. В статье Эндрю Бегеля и Начи Нагаппана для microsoft.com говорится, что самые большие предполагаемые преимущества парного программирования заключались в появлении меньшего количества ошибок, расширении понимания кода и создании в целом более качественного кода.

Вот рисунок, на котором показаны некоторые компании, использующие парное программирование.

Мой личный опыт парного программирования

Чтобы поразмышлять о своем самом первом опыте парного программирования, я буду честен и скажу, что нервничал! Я волновался, что не смогу внести приемлемую сумму, так как не прошло и двух недель в моем учебном лагере по программированию! (Оглядываясь назад, нервничать было глупо, поскольку мой партнер имел такой же опыт, как и я). Мы с напарником поменялись ролями между водителем и штурманом и в итоге выполнили свою задачу. Ссылаясь на предыдущий раздел этой статьи, опыт парного программирования дал мне альтернативный способ изучить и отточить свои навыки кодирования. Я не сталкивался с чем-то, что я бы счел негативным, оглядываясь назад на свой опыт парного программирования. Но я прекрасно понимаю, что у меня есть гораздо больше возможностей испытать все стороны парного программирования и поучиться у них.

Что можно и чего нельзя делать

Статья Джеффа Лангра на developer.com описывает очень важные правила парного программирования. Пункт, который нашел отклик у меня в разделе Что делать статьи, был первым пунктом, в котором говорится сопряжение в среде, которая удобно вмещает двух программистов, сидящих бок о бок. До сих пор мой опыт заключался только в парном программировании удаленно, поэтому мне еще предстоит осуществить это ожидание сотрудничества с другим разработчиком. Дополнительным важным моментом, который мне запомнился, был момент смены ролей между соавторами. Как уже упоминалось в моем опыте, это подход, который я практикую при сотрудничестве.

Когда я просматривал ранее упомянутую статью, меня заинтересовал раздел «Нельзя». Прочитав его, я нашел момент, который касался предыдущего воспоминания о моем первом опыте парного программирования, а также нервов и беспокойства, которые я испытал. Чтобы процитировать пункт, в нем говорится, что не следует «переживать о влиянии работы в паре на оценки или на способность человека выполнять свою работу. Все выливается в стирку». Это говорит мне о том, что я не должен делать акцент на ожиданиях для себя или своего партнера, поскольку в конце концов все решается. Память об этом конкретном моменте поможет мне успокоить нервы и сохранить уверенность при парном программировании в будущем.

Рекомендации для будущих учащихся

Начинающим разработчикам, не лезьте в голову, когда слышите, что у вас должна быть парная программа! Каждый должен с чего-то начинать, и как начинающий разработчик вы должны воспринимать парное программирование как возможность обучения, и не только это — но и возможность познакомиться с другими людьми, с которыми вы работаете! Проведите предварительное исследование парного программирования. В частности, начните с прочтения о том, что можно и чего нельзя делать, чтобы вы могли понять, какие определенные ожидания и протоколы вы должны инициировать и поддерживать, когда начинаете работать со своим партнером. Кроме того, изучите преимущества и недостатки парного программирования. Постарайтесь по-настоящему понять, почему эта практика используется в веб-разработке. Откройте себя, чтобы иметь возможность ожидать любого опыта. И в целом, наслаждайтесь рабочим процессом, связанным с совместной работой.

Заключение

В заключение, программирование — это не одиночный спорт! Если бы одному человеку приходилось работать над проектами, фичами и ошибками самостоятельно, то многое не делалось бы. Разные люди с разным опытом могут поделиться множеством точек зрения, знаний и техники при совместной работе над проектом, и это может повысить общую производительность. Преуспевающие компании, такие как Microsoft и Facebook, используют эту технику по той причине, что она позволяет создавать качественный код и получать успешные результаты. Не позволяйте своему эго взять верх и не подвергать себя ненужному стрессу. Даже известные великие люди должны объединиться и использовать поддержку для достижения своих целей. Вы знаете, что некоторые люди говорят, что у Майкла Джордана не было бы 6 колец без Скотти Пиппена!

Ссылки

Ознакомьтесь с этими ресурсами и ссылками, использованными в этой части, чтобы получить полную информацию:

https://www.codefellows.org/blog/6-reasons-for-pair-programming/

https://www.coscreen.co/blog/what-you-can-learn-from-how-successful-companies-use-pair-programming/

https://www.developer.com/design/pair-programming-dos-and-donts/#:~:text=Switch%20pairs%20часто!&text=Few%20people%20want%20to%20be, о%20по%20вращая%20пары%20часто.

https://martinfowler.com/articles/on-pair-programming.html

https://www.microsoft.com/en-us/research/publication/pair-programming-whats-in-it-for-me/#:~:text=Pair%20programming%20is%20a% 20практика,дизайн%2C%20алгоритм%2C%20или%20код.&text=Мы%20находим%20из%20%20результатов, соединяем%20запрограммированные%20в%20%20прошлые

[1]: https://gist.github.com/jordanpoulton/607a8854673d9f22c696

[2]: https://www.sciencedirect.com/science/article/abs/pii/S1071581907000456