Только есть один нюанс – задачи не похожи друг на друга, мы не знаем наперед, как продукт будет развиваться, а вариантов решения одной и той же задачи у нас примерно сколько угодно. Одних только алгоритмов сортировки чисел более тридцати, а мы не просто числа сортируем, а, например, сортируем продукты по цене с учетом скидок, пейджингов, рейтингов и еще десятка параметров. Парное программирование (pair programming) — методика, при которой весь разрабатываемый код пишется двумя программистами на одном компьютере.
- Если что-то изучено во время совместной работы – вычеркивайте из списка.
- Если хотя бы у одного есть идея, как исправить ситуацию, то они сначала попробуют сами, а уже потом попросят помощи.
- Один программист («ведущий») управляет компьютером и, в основном, думает над кодированием в деталях.
- Высококвалифицированный программист всегда работает в паре с менее опытным разработчиком.
- С течением времени сотрудничество программистов становилось все более тесным.
Парное программирование может облегчить разработку программного обеспечения. Но чтобы этот метод был действительно эффективным, необходимы ресурсы и готовность к конструктивной совместной работе. В Menlo приняли радикальное бизнес-решение, что все должны работать парами. Если вы работаете в более консервативной компании, вы можете объединиться с коллегой и поработать в паре над какой-то одной важной задачей.
Чего избегать и как не завалить весь процесс?
На одном из предыдущих мест работы, мы применяли такой подход, называли его «демо-день». У джунов не только самый быстрый рост, по сравнению с разработчиками других уровней, но и самая жёсткая конкуренция. И парное программирование можно использовать для того, чтобы посмотреть на специалистов не в «стерильных» условиях собеседования, где обсуждаются алгоритмы по книжке Кнута, а при работе над реальными задачами. Как мы упоминали ранее (в первой части), рассматривая классическую модель “Ведущий/Штурман”, совместная работа позволяет получить разные взгляды на код.
Добиваясь кристальной ясности кода, программисты сводят к минимуму необходимость исправления разного рода дефектов впоследствии. Методика разложения позволяет быстрее обнаружить ошибки и сразу же их исправить. Будучи разработчиком, вы будете работать с другими членами команды над исправлениями багов и созданием нового функционала для эффективного удовлетворения нужд ваших пользователей. Ваши потенциальные будущие коллеги пытаются понять, каково это – решать проблемы вместе с вами, потому что именно это вы и будете делать на работе ежедневно. Очень важно помнить, что в каждый момент времени они ОБА заняты решением задачи, например пока один (driver) пишет тест, другой (navigator) думает о коде, который реализует этот тест.
Парное программирование на собеседованиях
Все авторы, от Ленсиони до Тейла, рассказывают, как они уволили или понизили своего лучшего работника, и продуктивность всей остальной команды резко выросла. Они рассказывают, как поначалу сложно было без «башни», но мотивация всей остальной команды намного важнее. Поработав у них несколько месяцев, я подсел на парное программирование. Мне кажется, что парное программирование — это отличное решение во многих ситуациях. Похоже, все это существенно улучшает производительность команды.
Не забывайте регулярно меняться местом у клавиатуры и ролями. Это поможет взбодриться, не уставать и практиковать оба подхода. Более того, если ваша компания работает, используя agile-методы, это тоже хороший повод объединиться с коллегой.
Как происходит парное программирование на собеседованиях?
Это не
происходит за одну ночь, у вас неизбежно
будут возникать трудности, но когда вы
их преодолеете, вы сможете насладиться
всеми преимуществами работы в паре. Работая вместе, вы, конечно, научитесь
у своего партнера чему-то новому. Но
имейте в виду, что это не является
основной целью парного программирования.
Проблема стиля «штурман-водитель» в том, что если перегнуть палку с контролем, один из разработчиков может чувствовать себя простым механическим инструментом, который ничего не решает. При этом ответственность за код ляжет только на «штурмана». Есть несколько распространённых методов программирования в паре. Нужно знать множество разных сервисов на таком уровне, чтобы грамотно обработать любой запрос, решить проблему пользователя, пофиксить баг, выкатить релиз и так далее.
Преимущества
Задачу, которую отличник в одиночестве выполнил бы за полчаса, в паре можно выполнять и все два. Ограничьте список задач “в работе” для нескольких разработчиков и обнародуйте в рабочем пространстве вашей команды (или в таск-менеджере). Это дисциплинирует и поможет закрепить привычку работать по парам. Парное программирование толкает нас на обсуждение различных решений и подходов помимо монолога в своей голове. Проговаривание и объяснение способствует активному размышлению над выбранным вариантом. Это не всегда применимо к коду или техническому дизайну, но подходит для пользовательских историй или ценности, которую они приносят.
Команда разработчиков учится общению и совместной работе. Работающие в парах программисты утверждают, что многому учатся друг у друга.. Те разработчики, которые пробовали программировать вдвоем, считают, что так работать гораздо приятнее, чем в одиночку. Парное программирование – отличный способ узнать все это о вас как о кандидате на должность. После завершения этого проекта коллегам Горовица настолько понравился такой способ работы, что они стали его применять везде, где только можно.
Книги по Scala для начинающих и опытных разработчиков
Парное программирование — это одна из методик экстремального программирования, которая «выталкивает» одиночных разработчиков из зоны комфорта. Поэтому при внедрении парного программирования нужно быть готовым к «сопротивлению» некоторых членов команды. Со временем это «сопротивление» спадет, как только программисты осознают все преимущества такого подхода. Согласно Wikipedia, парное программирование — техника, при которой исходный код создается парами людей, программирующих одну задачу, сидя за одним рабочим местом. Разработка нового программного обеспечения — сложное мероприятие. В зависимости от масштаба программного обеспечения программистам приходится учитывать множество различных возможностей, функций и проблемных областей.
Ну и конечно, все перечисленное выше – это чистой воды потери (согласно Бережливому Производству), – могли сделать фичу, но потратили время на исправление бага. парное программирование Нам в нужны общепринятые термины, нам нужен общий язык. Иначе индустрии сложно развиваться, а нам – понимать друг друга и эту самую индустрию развивать.