Відділення повинні працювати нормально, виходячи з мого досвіду використання їх у попередніх обстеженнях за попередньою роботою.
Зверніть увагу, тоді ми використовували огляди попередньої фіксації лише для критичних виправлень до коду кандидата на випуск, тому гілок не було багато (рутинні зміни передавались через огляди після завершення).
Оскільки, здається, ви збираєтесь використовувати огляди попередньої фіксації для всіх змін, можливо, вам доведеться керувати великою кількістю гілок. Якщо ви розраховуєте, що розробник може в середньому внести одну «перевірну» зміну в тиждень, ви матимете близько 50 відділень щороку для кожного розробника в команді. Якщо ви використовуєте менші шматки роботи, як-от такі, що займають 1, 2, 3 ... дні - помножте 50 на 2, 3, 5 ... відповідно.
Нижче наведено кілька інших міркувань, які слід врахувати, якщо ви хочете найкращим чином .
1. Поводження з випадками, коли затримка огляду блокує код, необхідний для інших членів команди
Встановлення, моніторинг та вирішення конфліктів, пов’язаних із термінами перегляду коду. Згідно з моїм спогадом про попередні перегляди рутинних змін, про які я розглядався в одному з минулих проектів, розумний термін - це близько 3 днів, а час, щоб почати турбуватися, - це коли огляд не буде завершений через 1 день після подання.
Для порівняння, в оглядах після закінчення комісії ці вимоги значно спокійніші (я використовую 2-тижневий термін і починаю хвилюватися через 1 тиждень) - але, оскільки ви орієнтуєтесь на огляди, що попередньо здійснюються, це, мабуть, не цікаво.
2. злиття конфліктів при поданні переглянутого коду
Що робити, якщо фіксація переглянутого коду блокується конфліктними змінами, здійсненими кимось іншим, поки код чекав на перегляд?
Пара варіантів, які слід розглянути
- відкат до початку і вимагає від розробників повторної реалізації та перегляду змін.
У цьому випадку вам може знадобитися вирішити негативний вплив на моральний стан команди, який це може (буде!).
- передайте відповідальність за злиття іншому члену команди ("майстер злиття").
У цьому випадку вам також потрібно буде вирішити, чи повинні злиття проходити перегляд попереднього вчинення чи ні - і якщо так, то що робити у випадку, якщо що злиття в свою чергу зустрічається з іншим конфліктом.
- ігноруйте зміни, які були зроблені для переглянутого коду на етапі злиття.
У цьому випадку вам може знадобитися вирішити негативний вплив на моральний стан команди, пов'язаний з тим, що вчинений код відрізняється від того, який було переглянуто.
- винайдіть спосіб уникнути конфліктів.
Прямий підхід полягає в тому, щоб дозволити лише одному розробнику одночасно змінювати певний набір файлів - хоча це не захистить вас від змін, які не змінюють файли безпосередньо, але впливають на них через внутрішні зміни API . Ви також можете дізнатися, що подібне "песимістичне блокування" робить загальносистемні зміни та глибокий рефакторинг досить клопіткими.
Для порівняння, в оглядах після завершення комісій не було б подібних питань (оскільки це стосується коду, який вже об'єднаний за визначенням) - але оскільки ви орієнтуєтесь на огляди, що попередньо здійснюють комісію, це, мабуть, не цікаво.
3. завантажте розробника, який чекає на перегляд
Встановіть чітку політику щодо того, чи повинен розробник, який подав огляд, перейти на нове завдання чи зробити щось інше (наприклад, погоню за рецензентами).
Для порівняння, огляди після здійснення комісій навряд чи потребують чіткої політики (оскільки природно переходити до наступного завдання після введення коду та зважаючи на те, що термін розгляду - тиждень чи два) - але оскільки ви орієнтуєтесь на огляди, що попередньо здійснюють комісію, це, ймовірно, не цікаво.