Як поводитися з тим, хто не любить ідею перегляду коду?


26

Очевидно, якщо керівництво купує витрачати час на огляди коду, то всі повинні це робити.

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

Як ви ефективно керуєте цим сценарієм, коли вирішуєте його як рецензента?


19
Напевно, так само, як і з людьми, які займаються питаннями, такими як дрес-код, своєчасність, хворі дні тощо.
Josh K

Хе-хе .... Я намагався кваліфікувати це за те, що про менеджмент говорять, що всі повинні це робити, те, що я шукаю, це коли ти, низько оцінений рецензент, повинен спробувати це зробити.
ozz

3
Чесно кажучи: Скажіть їм заткнутись і зробіть це. Це для їхнього блага.
Стівен Еверс

1
Чимось протистояти чому? Дозволяє вам бачити їх код або вони дивляться на ваш? Вони можуть уникати конфлікту, чи можуть вони очікувати конфлікту? Ви знаєте, чому вони вагаються?
Мартін Мейт

Відповіді:


46

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

Щоб уникнути такої поведінки, вам знадобиться певна психологія. Ви повинні довести його мозку ящірки, що цього не станеться (його не будуть судити, принижувати, вбивати, нічого ...), десенсифікуючи його для кодування відгуків.

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

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


3
Ви можете додати визначення "мозок ящірки" для незнайомих людей.
Адам Лір

@Anna: Я щойно додав посилання на визначення.

Дивовижна відповідь П'єр! Наразі оголошено замість остаточної відповіді.
ozz

1
@Aaron: Я посилався на "когось", про який згадували у запитанні. Так, я все ще ірраціонально побоююсь у зв'язку з придушенням як у дитини, так і в дорослому житті, як і більшість із нас. Приклади: у мене ірраціональний страх перед максимумами. Я десенсибілізую себе, коли можу. Минулих вихідних я відвідав цитадель (дуже поширена в моїй країні через послідовну війну між французами та німцями) і мені довелося взяти трамвайний шлях.

1
Як завжди чудова відповідь П'єра.
Джош К

5

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

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


Парне програмування - це зовсім інша тема, але чудова пропозиція!
ozz

Ваш коментар змусив мене подумати ще про ПП, тому я почав ще один Q - programmers.stackexchange.com/questions/39878/… Дякую!
ozz

4

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

У цьому випадку я б переорієнтував мету огляду. Замість того, щоб в огляді коду йшлося про пошук «проблем» у коді, трактуйте це як пошук ре-факторингу цілей або потенційних майбутніх удосконалень або додаткових конструктивних функцій. Таким чином, і кодер, і рецензент беруть участь у процесі, і, сподіваємось, цей здатний кодер буде відчувати, що час буде використаний на користь.


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

2

Чесно кажучи, це питання не має сенсу, якщо у вас добре керований магазин:

1) Якщо це частина роботи, ви повинні її виконати, або ви непідвладні. Той, хто твердо відмовляється виконувати частину роботи, яку вони вимагають, повинен отримати консерви. Програмування - це ремесло і професія - рецензенти та менеджери є там, щоб допомогти виконати роботу, а не мати справу з розбещеними дітьми (будь-якого віку).

2) Якщо у вас є добре керована система управління джерелами (що є обов'язковим у будь-якому професійному магазині програмного забезпечення), то їх код можна переглянути, подобається їм це чи ні. Тому перегляньте їх код:

  • Якщо це добре, сповістіть їх і погладьте по спині - це сприятиме участі.

  • Якщо це не добре, також повідомте про це. Це має спричинити мотивацію їх до участі, щоб захистити себе. Якщо цього не відбувається, ви можете використовувати каральні заходи: Фінансові штрафи, пониження в статусі і т. Д. Якщо, незважаючи на ваші зусилля, цей працівник не приходить, ІМО у вас поганий працівник, і їм слід показати двері.


Це абсолютно безнадійні поради, я передбачаю "магазин" з по-справжньому поганим робочим середовищем для вас. Urgghh!
коньяк

@cognacc - Вам нічого не потрібно «забувати». Я працюю в групах вже 25 років, де у нас дуже хороше робоче середовище: ми всі дорослі і розуміємо, що потрібно для професійної діяльності та відповідальності за свою роботу.
Вектор

1
Я повинен погодитися з "Вектором". Якщо це частина процесу, це роблять усі, і я впевнений, що вони швидко бачать, що "він не кусається". Завжди є ризик, коли деякі люди будуть "грубими" у своїх коментарях у перегляді коду, звичайно, але тоді з цими людьми потрібно боротися - так само, як би вони були, якби вони були брутальними до своїх колег особисто.
MetalMikester

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

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

1

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

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

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


Дякую, Джефф, погоджуйся, якщо процес не гарний, це буде важко, і обійти ірраціональні страхи когось може бути важко - деякі люди просто не зміняться!
ozz

1
але поки у вас є система, яка насправді працює, навіщо хтось хотів це робити? Дозвольте мені здійснити дикий удар у цьому: зробіть це, щоб ви могли зрозуміти, чому система не працює ?
Вектор

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

@JeffO - Гаразд, я розумію, якщо система насправді не працює, це не питання "перегляду коду", питання - це компетенція програмістів, і такий простий "перегляд коду" не є рішенням. Я з цим згоден.
Вектор

1

Я особисто, що є деякі поєдинки, які просто неможливо перемогти зі 100% населення.

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

Але огляди коду різні - вони змінюють вашу продуктивність, не обов'язково ваші робочі звички.

Для зниження опірності завдяки продуктивності управління може зробити декілька речей: 1) Прийняти зниження швидкості для всіх розробників. 2) Оснастіть відповідні інструменти для управління та об'єднання декількох версій за допомогою циклів перегляду (наприклад, дозволяючи розробникам мати локальне сховище git) 3) Застосовуйте певну соціальну чи іншу форму тиску, щоб забезпечити розподіл навантаження, якість та своєчасність відгуків.

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


повністю згоден Урі ... Є лише деякі люди, яких ти не можеш перемогти. Можливо, вони налаштовані на свій лад, ліниві, думають, що їхній шлях правильний, або просто просто все одно !!
ozz

0

Ми використовували технічні заходи, щоб зробити перегляд коду обов'язковим.

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


-1

Стріляйте їх

Це так просто - або вони отримують проект самотнього чоловіка, або їм потрібно їхати. Відведіть їх подалі від своєї команди. Вони не тільки не виконують своєї ролі, вони руйнують моральний дух та навички роботи команди.

Тепер, якщо вам здається, що ви повинні звільнити 50% своєї команди, то ...

Зрозумійте

Чому деякі відмовляються? У них немає часу? Вони згоріли? Чи є відгуки про щось, з чим вони не мають досвіду? Вони вважають, що це марна трата часу, якщо так, чому?

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

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

Чи працюють усі, про кого йдеться, над одним проектом?

Проект вже похований під горою технічного боргу?

Чи вірять вони в проект та постійне вдосконалення?


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

@Dunk, ти антирецензент? Тоді ти не будеш у моїй команді. Ви прорецензент? Тоді ви вже знаєте підтримку мого твердження. Ви не визначились? Будь ласка, зробіть свою думку ;-)
Діма Тиснек

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