А теперь экстраполируйте ваш пример на больший уровень системы, состоящий хотя бы из двух достаточно больших частей, получите двух экспертов «коденья», которые могут эффективно взаимодействовать между собой.
Зависит от вашей цели и типа задач. Я бы не рекомендовал ставить в пару джунов или новичков на проекте. Хотя определенные выгоды можно извлечь, но существуют и риски. Все остальные пары работают. Если кто-то начинает скучать попробуйте чаще меняться ролями.
1) обычно новичка ставят в пару к опытному инженеру в целях обучения. Хорошо бы чтобы кто-то из пары умел работать в паре и знал про этот феномен. Хорошо бы чтобы это был опытный инженер.
2) Эго-маньяки — это проблема. Это проблема не только для работы в паре, но и для работы всей команды.
3) Может. Это нормально. Нужно сделать перерыв, возможно, что-то поменять
Работал со многими интровертами. Получалось очень даже продуктивно.
Поддерживаю. Затянувшееся молчание — это первый признак плохой работы в паре.
Часто бывает что один пишет код (локальное решение), а второй уже думает о более глобальных вещах, чтобы не уйти в сторону.
Но так что вдвоем приходим к лучшей абстракции, лучшей архитектуре тоже бывает.
На самом деле градация синьор-джуниор очень упрощенная и нам не подходит. Ей пользуются многие, поэтому я ее упомянул.
Как вы уже прочли выше, мы проводим «full day interview». Это всегда работа в паре. По результатам работы мы оцениваем ряд технических и не технических навыков. В конечном итоге получаем оценки. Это объективная (в рамках компании) формализованная оценка.
Исходя из субъективных ощущений те люди, которые проходят имеют уровень начиная от мидл.
Парное программирование возможно только при взаимном уважении и терпении. Часто лучше сразу обсуждать нюансы, которых вы терпеть не можете, а в конце каждой сессии предоставлять фидбек, указывая что бы вы хотели сделать по-другому.
Через одну-две сессии парного программирования уровень стресса падает даже у ньюкамера.
Мне кажется, ответ в вашей формулировке. Работая в паре, вы теряли внимательность/концентрацию. Парное программирование — это инструмент для достижения цели. Возможно, в этом случае он не подходил. Попробуйте для других задач: спланируйте детали какого-нибудь решения или просто попишите код вместе.
Это хорошо подходит для решения самых сложных проблем. Представьте экспертов в разных областях, работающих над интеграцией.
Занимаясь наймом и онбоардингом, в большинстве случаев я имею дело с опытными людьми уровня мидл и выше.
Это не зависит от языка программирования.