Отримання ВСІХ розробників робити огляди коду


13

Я розробник програмного забезпечення в команді розробників 7-8. Ми перевіряємо код вже досить давно, і якість коду з часом покращувалася.

Однак я нещодавно помітив, що деякі розробники просять більше оглядів коду, ніж інші. Боюся, це через їх гнучко ставлення.

На мою думку, це не так, як слід робити перевірку коду: вся команда повинна відповідати за це, а рецензенти кодів не повинні вибиратися за їх готовність легко приймати зміни.

Як ви вирішуєте це питання у своїй команді?

Ви встановили правила вибору рецензерів коду?

Як ви вважаєте, чи потрібно перевіряти коди за час, який вони витрачають на (хороші) перегляди коду? І як їх винагородити?

Дякую за відповіді / ідеї.


7
Чи розглядали ви про створення системи круглої роботи, де обидва кодери залишаються в темряві щодо того, хто рецензує, а рецензент залишається в темряві про те, хто є кодером?
Ніл

1
У мене немає, але мені подобається ця ідея! Спасибі!
guillaumegallois

1
Хто відповідає і чому вони не виконують свою роботу, яка повинна передбачати, щоб усі інші робили своє?
JeffO

У моїй команді рецензенти призначаються автоматично, коли відкривається запит на витяг Рецензенти вибираються з команди круглого столу. Для кожного нашого репортажу є веб-каска, яка автоматично призначає рецензентів кожного разу, коли відкривається PR. В основному він зберігає список усіх дияволів і того, хто був призначений востаннє, і просто працює через список.
Dan Jones

Відповіді:


12

Ми не вибираємо рецензентів.

У нашій команді:

  • Усі зміни коду повинні бути переглянуті до завершення запиту на витяг
  • Принаймні один розробник повинен перевірити код (два або більше рецензентів краще, а тестери, аналітики та інші члени команди, які роблять перевірку коду, також надзвичайно корисні)

Огляди коду не призначаються, люди піднімають їх, коли це працює для них. Розуміння полягає в тому, що ми не можемо просувати історії через конвеєр. Іноді хтось згадає, що вони чекають CR в складі, але це все про це.

Мені подобається ця модель, вона дає людям можливість підбирати те, що вони можуть, і уникає "давати людям роботу".


6

Введіть правило, що помилка може бути призначена для виправлення не тільки тим, хто вчинив зміну, а лише тим, хто її переглянув. Це повинно створити правильну перспективу для огляду коду.

Що стосується,

Як ви вважаєте, чи потрібно перевіряти коди за час, який вони витрачають на (хороші) перегляди коду?

Ну, я не впевнений, як розробники взагалі отримують винагороду за те, що вони виконують свою роботу, за винятком лише отримання зарплати та гордості за те, що вони зробили. Але оскільки перегляд коду є частиною їхньої роботи, рецензент повинен отримати час для перегляду та якось поділитися кредитом.


2
Це цікава ідея, але багато разів, коли з'являється помилка, 90% роботи з'ясовує саме те, що викликає помилку, і 10% роботи - це виправлення. Робити посмертно, щоб з’ясувати, яка саме зміна внесла помилку, може навіть не відбутися, якщо це не допоможе з’ясувати, що відбувається, або як зробити безпечне виправлення.
DaveG

Ви добре позначилися з кредитом, який слід надати рецензентам коду. Це, безумовно, проблема, яку слід вирішити. Дякую за вашу відповідь!
guillaumegallois

Я думаю, що це може змусити людей намагатися взагалі не робити огляди коду, а може бути, що у вас не буде ніякої роботи, оскільки люди почнуть випивати.
Матеуш

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

@DocBrown, щоб запобігти помилкам, а також переконатися, що виправлення помилки в майбутньому буде швидше (як ознайомлення іншого розробника з кодом, так і переконайтесь, що код добре написаний)
max630

4

Основна проблема, яку ви маєте, - це не технічні, але деякі інструменти можуть зменшити кількість зусиль, які потребує огляд коду. Для подолання є кілька проблем:

  • Розуміння, що таке зміна. Запити Git на виклик гілок функцій справді допомагають цьому процесу.
  • Перевірка коду - подія, коли люди повинні перебувати в одній кімнаті. Це додає напруги щодо планування, ресурсів для зустрічей тощо. GitHub, GitLab та BitBucket дозволяють асинхронні огляди, щоб вони могли статися, коли одноранговий готовий.
  • Можливість надання змістовного зворотного зв'язку при перегляді коду. Якщо чесно сказати, функція прямого рядкового коментування в GitHub, GitLab, Bitbucket запити на тягнення дійсно корисніша, ніж зустріч віч-на-віч. Він відчуває себе менш політичним.

Це не означає, що ви не можете використовувати SubVersion або інші інструменти (наприклад, Fisheye) для допомоги, але інтеграція, вбудована в конвеєр Git з функціональними гілками, справді не робить цю роботу меншою справою.

Поза інструментальним інструментом потрібно розглянути інші соціальні проблеми:

  • Запропонуйте розробникам розпочати свій день, розглядаючи будь-які відкриті запити на виклик, щоб вийти з нього.
  • Нехай ваші розробники розглядають будь-які відкриті запити на виклик, перш ніж розпочати нове завдання
  • Потрібно схвалення більш ніж однієї особи для ваших запитів на виклик.

Можливо, варто також перевірити, які типи завдань переглядаються кодом більш зацікавленими людьми. Вони можуть захопити всі легкі огляди, що робить речі більш болючими для всіх інших.


Останній пункт хороший. Я колись працював з розробником у невеликій команді, яка б коли-небудь переглядала зміни в написаному ним програмному забезпеченні, що спричинило значні вузькі місця в інших командах.
Роббі Ді

У такому випадку це звучить так, ніби у вас є хтось, хто намагається захистити свою "територію". Наскільки це можливо, ви хочете заохотити почуття власності громади щодо коду. Іншими словами, у коді немає захищених святих, яких ніхто з інших розробників, окрім "блаженних", не може торкнутися. Я розумію, чи є розрив спеціальності, і ви не можете переглянути математику, але ви можете принаймні переглянути, наскільки добре код відповідає його намірам.
Берін Лорич

2

Хороша ідея - це робити на круговій основі - ви вибираєте того, хто зробив найменшу кількість відгуків на ваш код. З часом всі в команді повинні були зробити приблизно рівну кількість оглядів. Це також поширює знання.

Очевидно, будуть випадкові винятки, такі як свята, де будуть вершини та корита.

Не повинно бути різниці між юніорами та старшими / ведучими. Перегляд коду слід проводити для кожного коду - незалежно від того, наскільки вони старші. Це зменшує тертя і допомагає ділитися різними підходами.

Якщо ви все ще стурбовані якістю оглядів після всього цього, подумайте про введення набору мінімальних стандартів для перевірки коду. Те, що ви включаєте, залежить тільки від вас, але деякі речі, які ви хочете розглянути, - це покриття коду, тестові одиниці, видалення коментованого коду, метрики, достатня кількість коментарів, якість складання, принципи ТВЕРДОГО, DRY, KISS тощо.

Що стосується стимулюючих оглядів коду, то якість якості - це нагорода. Ми все впевнені, що працювали над неоптимальними кодовими базами, де біль міг би значно зменшитися, якби інший розробник просто з самого початку дав код і запропонував конструктивні зміни.


0

Здається, що команді бракує формального процесу перегляду коду.

Я не говорю про створення документу Word на 350 сторінок, а лише про прості пункти, що стосуються процесу.

Важливі біти:

  1. Визначте основний набір рецензентів. Загальних тверджень немає. Назвіть людей.

    Це повинні бути ваші старші розробники.

  2. Потрібно більше 1 основного рецензента, щоб вийти з нього.

  3. Ідентифікуйте щонайменше 1 інших непрофільних рецензентів кожного спринту чи релізу, який є тимчасовим рецензентом основних. Потрібно підписатися на всі огляди коду протягом цього часу.

Пункт №3 дозволяє іншим розробникам повертатися до основної групи рецензентів. Деякі тижні вони витратять більше часу на огляди, ніж інші. Це врівноважуючий акт.

Що стосується нагородження людей? Багато разів визнаючи зусилля, які докладає людина під час перегляду коду перед усією командою, може спрацювати, але не напружуйте себе з цього приводу.

Коли ви сумніваєтесь, визначте процес і скажіть команді, що їм потрібно дотримуватися цього.

І є ще одне останнє, що ви можете спробувати - як це може бути суперечливим: нехай @ # $% вдарить про вентилятор, якщо я можу використовувати ідіому.

Нехай команда виходить з ладу, оскільки не перевіряється процес перегляду коду. Управління втягнеться, і тоді люди зміниться. Це дійсно лише гарна ідея в самих крайніх випадках, коли ви вже визначили процес, і команда відмовилася його дотримуватися. Якщо ви не маєте повноважень звільняти людей або дисциплінувати їх (як це не робить більшість провідних розробників ), вам потрібно залучати когось, хто може робити це.

І немає нічого, як невдача змусити змінитись. Незважаючи на те, що люди можуть сказати, ви можете керувати "Титаніком", але не до того, як він потрапить на крижаний буржуй.

Іноді потрібно просто дозволити Титаніку потрапити на крижаний бург.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.