Чи повинен програміст виправити чужу невдалу збірку? [зачинено]


45

Один програміст здійснив певну роботу в сховищі SVN, потім пішов додому. Після того, як він пішов, автоматична збірка Гудсона не вдалася. Ще один програміст побачив це, і переглянувши зміни коду, виявив, що проблема полягає у відсутності однієї бібліотеки. Він додав цю бібліотеку до SVN, і наступна збірка успішно завершена.

Чи правильно зробив другий програміст чи він просто зачекав, поки перший програміст вирішить проблему?


31
Питання: Один член програміста задав питання. Інший учасник прочитав питання і побачив деякі синтаксичні та граматичні помилки, тож він вирішив відредагувати питання та виправити їх, щоб зробити питання легше для читання. Це те, що редактор зробив правильно, чи повинен просто чекати, коли плакат виправить помилки?
янніс

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

4
@nahab О, не хвилюйся, я не кажу, що це проблема :). Просто в громаді, як і в колективі, слід заохочувати членів, які допомагають один одному. Крім того, я не думаю, що розробник, який ламає збірку, є непрофесійним, навіть якщо для незначної помилки ці речі трапляються найкращим з нас.
янніс

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

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

Відповіді:


87

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

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


101
також ввічливо перший розробник придбав пончики, щоб компенсувати руйнування збірки
jk.

17
Я б більше хотів пива, а не пончиків.
Мартін Йорк

2
Пончики можуть бути образливими для непереносимості глютену. Подарункові картки на суму 5 доларів на Best Buy, з іншого боку ...
Крістофер Махан

1
@ChristopherMahan або призведе до бійки між усіма членами команди за те, хто її отримає; або якщо один член команди на зразок неявного розподілу з ящика з пончиками в кімнаті перерв є набагато дорожчим пропозицією. І в будь-якому випадку подарункова картка Best Buy може бути образливою для всіх, хто раніше працював у Circuit City або CompUSA. :)
Dan Neely

1
Що ви можете отримати в Best Buy за 5 доларів?
кевін клайн

12

Це залежить.

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

  • Чи проект знаходиться на етапі, коли всі зміни повинні бути пов'язані з існуючим квитком? Якщо так, ви подали квиток? Чи призначили вам цей квиток?

У будь-якому випадку зосередьтеся на виправлення помилки, а не на звинуваченні відповідальних.


9
"... не в тому, щоб звинувачувати відповідальних". Якщо тільки це не є регулярним явищем.
Шон Д.

11

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

Ваша репутація на 100% у вашому контролі. Такі речі затьмарюють вашу репутацію і намагатися відполірувати затьмарену репутацію дуже складно.


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

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

7

Спілкуватися

Для цих сценаріїв немає жорстких правил (крім правил власної команди).

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


5

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


3

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

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


2

Мій девіз: не призначати SVN після 15:00, таким чином ви завжди зможете виправити свої власні збої.

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

Маючи в своєму розпорядженні певним сценарієм "вказівка ​​пальця на провину" - це хороший спосіб зробити це, або змусити людину, яка зламає збірку, купити пончики !!


2
Наш інструмент CI насправді має можливість надсилати електронне повідомлення розробнику, який зламав збірку (крім решти команди).
TMN

2

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

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


Оскільки збірки інтеграції часом займають годину або більше, залежно від складності вашої системи, вам доведеться щодня впроваджувати "фіксацію", щоб забезпечити останню збірку дня, коли все ще будуть навколо. Вже тоді люди мають призначення лікаря, дитячу футбольну практику тощо. Їх потрібно негайно вигнати, незалежно від стану складання. Agile каже, що робота повинна проходити стійкими темпами і не повинна бути сточною для працівників. Тримати їх там до 8:00, щоб спостерігати за успіхом будівництва, суперечить цьому.
KeithS

@KeithS: Правда. Але я виявив, що, незважаючи на те, коли я виїжджаю, найімовірніший час для мене, щоб зламати збірку, - це коли я поспішаю: прямо перед обідом, прямо перед зустріччю, прямо до кінця дня. Тому я думаю, що це "найкраща особиста практика" нічого не робити, коли не вистачає часу для перегляду та виправлення складання.
Даніель Приден

2

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


2

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

Як правило, зазвичай таке правило: ви порушуєте збірку - ви виправляєте збірку, але є винятки, особливо якщо виправлення очевидно і / або відповідальна особа недосяжна.

Звичайно, якщо у вас є випадок автоматичного вимикача, особливо з малюнком "зареєстрований, пішов додому, побудований зламаний днями" - відповідальній особі потрібно поговорити про те, чому існують системи та тести КІ та як слід перевірити перед реєстрацією :)


1

Речі бувають. Неможливо додати новий файл коду (будь то джерело чи компільований) до Subversion, мабуть, найпоширеніша причина зламаних збірок, якщо припустити, що він працював на комп’ютері розробника. На моїй останній роботі в середовищі CI навіть найстарші хлопці часом забували.

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


1

Це залежить від динаміки команди, але в ідеальному світі кожен в Команді "матиме" весь проект, весь код і, отже, всі помилки спільно. Тож якщо ви знайдете проблему, яку ви вирішите, і спілкуйтеся з джерелом помилки, лише якщо в цьому є певна додана цінність коду.


0

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


0

Це залежить, це залежить ...

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

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


0

У деяких умовах це дуже грубо і з поважних причин. В інших умовах це очікується і з поважних причин.

У інших умовах це дуже грубо або очікувано з дуже поганих причин.

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


0

По-перше, "пішов додому" - це анахронізм. Програмісти більше не йдуть додому - вони просто в Інтернеті або в режимі офлайн. Можна пінг і чекати.

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

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