Робота оточує
Як пропонує ChrisF , прагматичним короткостроковим рішенням може бути використання паузи та відновлення трюку, але вам доведеться поговорити зі своїми клієнтами, щоб знати, якими мають бути ваші пріоритети. Наприклад:
Якщо несправність знищує частину 1000 фунтів стерлінгів або спричиняє 4 години простою один раз на тиждень, тоді як виправлення паузи-відновлення скорочує виробництво на 1%, вони, мабуть, віддадуть перевагу виправленню прямо зараз.
Якщо несправність втрачає частину £ 1 або викликає 4 хвилини простою один раз на тиждень, але виправлення пауз-відновлення скорочує виробництво на 1%, вони, ймовірно, віддадуть перевагу чекати виправлення, яке не впливає на швидкість виробництва.
Пропрацювавши в галузі лазерної мікрообробки багато років, я знаю, скільки тиску ти можеш мати, щоб оптимізувати процес і змусити машину виробляти якомога більше деталей на годину, так що в будь-якому випадку ти не будеш тиск, щоб правильно усунути проблему.
Ведення журналів
На мій досвід, єдиний спосіб ефективного відстеження Heisenbug - це рясна вирубка. Увійдіть у все та навколо тієї частини коду, яка могла б відповідати за помилку. Дізнайтеся, як ефективно читати файли журналів, переконайтеся, що ви стежите за помилками на своїх двигунах (чи ваші етапи рухаються туди, куди слід, коли слід?). Подивіться на використання пам’яті на апараті, чи витік пам’яті викликає голодний критичний процес?
Переконайтесь, що ви також реєструєте дії користувача, чи впевнені ви, що оператор не потрапляє на аварійну зупинку, щоб вони могли вискочити на швидку перерву сигарети під час її виправлення? Я бачив, як це відбувається!
Статичний аналіз
Крім того, шукайте кореляції між написанням певних шаблонів і помилкою, яку спрацьовує більш-менш часто. Якщо ви можете знайти шаблони, які частіше викликають проблему (або ніколи не викликають її), вони можуть вказувати на вашу проблему.
Постарайтеся зробити шаблони, які викликають проблему ще частіше. Якщо ви можете знайти спосіб надійно запустити проблему, то ви на половині шляху до рішення.
Інші варіанти
Нарешті, не поспішайте звинувачувати обладнання, але ніколи не вважайте, що це ідеально. Мене багато разів звинувачували в проблемах, які виявилися електричними або механічними за своєю суттю, тому це завжди потрібно мати у задній частині розуму.
Незважаючи на те, що ви, як правило, не маєте доступу до машини, пам’ятайте, що деякі проблеми можна вирішити лише ефективно на машині. Іноді кілька днів на місці можуть стояти тижнями через віддалений робочий стіл і місяці поза межами мережі. Якщо у вас не вистачає офлайн-варіантів, не бійтеся запропонувати відвідування сайту, вони можуть сказати лише «ні».
Ви також можете переглянути питання та відповіді на те, що ви робите з heisenbug? і що робити з помилками, які не докоряють? але це може бути не так корисно для вашої ситуації.