Виправлення помилки, яка досі ніколи не викликала проблем


20

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

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

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

Чи варто це все-таки виправити?

Оновлення

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


Це помилка, пов’язана з потоком чи щось інше?
TheLQ

3
Він бос чомусь. Коли пуп потрапить у вентилятор, він буде тим, кого вони смажать. Якщо він обсмажиться через те, що ви не зробили те, що він просить, тоді вам знадобиться велике весло.
Мартін Йорк

3
Чи можете ви побудувати випадок, коли помилка виникає навіть при скасуванні змін? Якщо ні, то, можливо, це не помилка, це фея ^ H ^ H ^ H ^ Hn незадокументоване обмеження.
Стів314

3
Хм, "Якщо вона зламана, виправити щось інше". - ну це інтерпретація роману, я дам йому це.
Увімкнення

1
"Якщо він не зламався, не виправляйте"? Але це зламано.
StuperUser

Відповіді:


26

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


9
Пам'ятайте:
Прикрийте

1
Не так пощастило. Все - штани. Ні відстеження помилок, ні збору вимог, ні тестування. Напевно, навіть не було б керування версіями, якби керівництво не наполягало на цьому.
Кеннет Кокран

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

2
І не
задавай

2
@codeelegance: "Ні відстеження помилок, ні збирання вимог, ні тестування. Напевно, навіть не було б керування версіями, якби керівництво не наполягало на цьому". - Мила Марія Божа Матір !! 1 !! Це середовище суворо іронізує ваше ім'я користувача. :)
Столи Бобі

8

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

Якщо ваш головний розробник - ваш начальник, і він каже, що не торкайтеся цього, я б цього не зробив.


2
Як пізно в циклі вони? Це може бути потенційним самогубством.
Робота

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

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

2

Більшість відповідей та коментарів пропонували пом'якшити відповідальність за рішення, створивши звіт про помилку та дозволивши комусь іншим телефонувати.

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

Не ідеальне рішення, але принаймні помилка була виправлена ​​належним чином.


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

2

Нагадуйте йому фразу: "Якщо вона не зламалася, не виправляйте її" і не "Якщо клієнт цього не помітив, не виправляйте його".


1

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


Тут у мене є принаймні кілька різних варіантів:

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

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


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

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

1

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

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

Професійно мені ці відповіді не подобаються, і я б внутрішньо зрозумів, що ефір цих ситуацій відбувається.


0

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


0

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

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

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


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

@Miki - в цьому випадку скажи мені, що це не погана ідея? Поясніть, будь ласка, як повернення помилки, оскільки вона зробила ще одну помилку (яка все-таки була там) більш помітною - це добре. Що стосується стрілянини на місці, я б заперечував конструктивне звільнення, оскільки розробник не мав вибору.
Steve314
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.