Сама спірна і сама розповсюджена практика XP (eXtreme Programming).
Розповсюджена - тому що із назви уже можна уявити що це означає, але насправді - це не просто сидіти вдвох за одним компом і битись за клавіатуру.
Що таке ХР ?
Одна із гнучких методологій розробки програмного забезпечення. Кент Бек і ще пару його кентів взяли за основу самі сучасні методології 1990х і довели їх ефективність до максиму своїми ‘Екстримальними практиками‘ - тому це і називають XP (eXtreme Programming).
Всього існує 13 головних пунктів Екстримального програмування.
У цій статті ми розберемо лише одну практику - Парне програмування.
Цілі парного програмування:
Можу виокремити декілька головних цілей цієї практики:
Навчання, чудово підходить для вивчення нових технологій, ефективність вивчення при такому підході непорівняно більше ніж коли це відбувається окремо.
Вирішення комплексних задач, використовуючи парне програмування правильно, можна вирішити дуже складну проблему значно швидше і ефективніше, порівняно із тим коли 1 людина робить це самостійно.
Менторство, якщо команда із 2х людей має значний розрив у знаннях і навичках, то парне програмування допоможе швидше підвищити рівень джуна.
Розвиток, якщо команда із 2х розробників одного рівня будуть працювати разом, у короткий термін їх рівень знань буде рости як відсотки по кредиту (дуже стрімко).
Самостійність, парне програмування культивує самостійність розробників, після деякої кількості таких практик вам більше не знадобиться ПМ який вас контролює.
Недоліки парного прогамування:
Складно працювати разом, не всі можуть пустити когось за своє робоче місце, щей вислуховувати що ти щось робиш не правильно.
Навіть не пробуйте це робити віддалено, ця практика тільки для offline тренингів.
Складно пояснити замовнику чому 2 людини затрекали в одну і туж задачу однакову кількість часу.
Перший раз дуже складно налаштувати сам процес парного програмування. Часто не продумуючи план просто сідають і відразу пробують писати код - НЕ НАДА ТАК.
Різний темп розробки, або різні ідеї, вам потрібно завчасно вирішити всі питання і тільки тоді сідати за компютер.
Неочевидні недоліки:
Є великий шанс стати ворогами із колегою.
Після 1 дня парного програмування ввечері не хочеться жити.
Це далеко не лайтова штука, ви навіть музичку на ютубі не зможете увімкнути або повтикати у тікток - тільки робота.
Із чого почати:
У вас має бути чітка задача яку потрібно вирішити, бажано щоб ви встигли вирішити цю задачу за одну ссесію.
План дій. Виберіть у якому форматі буде проходити парне програмування (Розвиток, вирішення складної задачі, менторство). Після конкретного розуміння що ви будете робити, вам потрібно визначити ролі: Книжка каже що є 2 головні ролі (Driver, Navigator) Водій і Штурман, визначте ці ролі між собою.
Перед початком ознайомтесь із всіми документаціями які можуть знадобитись при вирішенні поставленої задачі.
Обмінюйтесь ідеями, допомагайте один одному, але не витрачайте час на консультації із іншими людьми - так ви будете розпиляти увагу і втрачати концентрацію на вашій роботі.
Як часто міняти ролі. Це потрібно вирішити перед початком, рекомендую підходи по 30-40 хвилин писання коду за 1 раз.
Про Водія і Штурмана, це не має на увазі що хтось головніший - НІ.
Ідея у тому що у кожного із вас буде 2 етапи, у першому ви будете моніторити процес і давати поради, у другому пиридумувати логіку і реалізовувати її опираючись на поради.
Штурман - повинен уважно слідкувати за процесом написання коди і ревювити його у реальному часі, тримаючи у голові головну задачу яку ви вирішуєте і слідкувати за всіми аспектами коду.
Водій - ви маєте писати чіткий і зрозумілий код, опираючись на поставлену ціль та відштовхуючись від порад колеги.
Воно того варте ?
Тут немає чіткої відповіді. На мою думку - так, але пам’ятайте що це підходить не всім і точно не кожен день.
Як мінімум кожному девелоперу варто спробувати для персонального розвитку - дуже рекомендую.
Підсумки:
За весь час який я в ІТ - користувався цією практикою разів 10+-.
Якщо ви завжди хотіли, але не знали як це робити, спробуйте опираючись на поради які я описав вище.
Про ваш досвід з радістю почитаю у коментарях.