До сих пор мое короткое (но захватывающее) путешествие в веб-разработку было переполнено парным программированием. Эта статья о том, чему я научился после нескольких дней самостоятельного программирования в рамках проекта в сжатые сроки.

Что такое парное программирование?

Парное программирование было ключевым компонентом популярной методики гибкой разработки программного обеспечения. Главный вывод заключается в том, что в парном программировании участвуют два программиста. У них одна рабочая станция и один набор кодов. Один программист управляет (пишет код), а другой навигирует или наблюдает. Уникальность этой техники заключается в роли навигатора. Есть много предполагаемых преимуществ, некоторые из которых подтвердят мой собственный недавний опыт.

Что сработало…

Во-первых, я объясню, что мне действительно нравится в соло…

#1: Свобода экспериментировать. Вскоре я объясню, почему это тоже может быть плохо. Но общеизвестно, что в программировании есть тысячи или даже миллионы способов что-то сделать. Конечно, есть условности, и обычно есть несколько способов, которые действительно лучше работают. Но для растущего разработчика свобода экспериментировать и проявлять творческий подход может быть важна при обучении решению проблем. То, что вы узнаете сейчас в результате неудачного логического эксперимента, может означать, что проблема будет решена позже.

№2: Тишина и покой. Опять же, в этом есть и обратная сторона. Но иметь возможность включить легкую музыку, войти в свою «комфортную зону» и просто зарядиться кодом… на самом деле это довольно терапевтично. Помимо удовольствия, тишина и покой позволяют пространству ума действительно думать о проблеме и оценивать ее. Эти вещи могут быть более сложными с парой, которая держит вас вне «своей зоны» и в реальном мире социальной, рабочей среды.

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

Что не получилось…

Я вовсе не хочу утверждать, что парное программирование — это решение этих проблем. Что я хочу сказать, так это чему я научился, работая в одиночку.

№1: Легко «обмануть себя». Много-много раз, столкнувшись с проблемой, я мог придумать действительно безумные способы ее решения. И много раз мой партнер по программированию вызывал меня на просто глупуюидею. Будь то неосуществимая, ненужная или неэффективная, иногда идея, которая кажется новой или интересной, может поглотить вас в очаровании перспектив. Обычно у вас нет жесткого, честного разговора с самим собой о том, поможет ли эта идея вам уложиться в срок или нет. Вы просто делаете это. Именно здесь парный программист может помочь вам быть подотчетными.

# 2: Трудно уловить «что, если». Обычно, когда мы программируем, мы имеем в виду один конкретный вариант использования. Мы представляем радостного пользователя, который прокладывает себе путь через наше приложение, вводя все нужные данные, нажимая все нужные кнопки в правильном порядке. И это легко сделать. Конечно, в гибкой разработке, если вы пытаетесь выпустить продукт, вы не хотите тратить свои дни на размышления о каждой возможной и маловероятной вещи, которая может пойти не так, но суть здесь в том, что вторая пара глаз может поймать много пограничных случаев. В голове вы можете прокрутить код и подумать: «Конечно, я просто буду использовать данные, созданные на главной странице», а партнер может мягко напомнить вам: «Пользователю на самом деле не нужно посещать веб-сайт». сначала домашняя страница». Ой!

№ 3. Говорите вслух помогает. Хотя это одна из вещей, которая может добавить дискомфорта в рабочий процесс программирования, «резиновое уклонение» от проблемы действительно может решить ее в вашей голове. Хотя большая часть моего кода проявляется в тихой тишине, безусловно, бывают моменты, когда мне приходится заставлять себя говорить со стеной о проблеме. Иногда я клянусь, что Стена — лучший программист, чем я. Платить, наверное, тоже дешевле.

# 4: Не всегда легко расставить приоритеты. Вероятно, самое известное преимущество парного программирования заключается в том, что оно позволяет быстро получать результаты. Поскольку вы более или менее вынуждены держаться подальше от кроличьих нор и реализовывать утилитарную, не более чем функциональную кодовую базу, это может означать быстрый поворот. Это, конечно, не означает, что код хороший, чистый, организованный или хорошо продуманный. Но это делается. В моем сольном проекте я не уложился в срок. Эти кроличьи норы и эти моменты экспериментов… они съели меня заживо. Это был урок. Есть большое чувство выполненного долга, когда вы идете прямо к ядру требований проекта и делаете это быстро.

Вывод?

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