Техподдержка: Технологический Подход К Решению Технических Проблем

— Б-любимые, — озадаченно сказал Федор Симеонович, разобравшись в почерке.

– Это п-задача Бена Б-бетцалеля.

К-калиостро доказал, что она п-не имеет р-решения.

«Мы сами знаем, что у нее нет решения», — тут же ощетинилась Хунта.

«Мы хотим знать, как решить эту проблему».

– Н-ты странно рассуждаешь, К-Христо.

Н-как ты ищешь решение, когда его нет? Б-чушь какая-то.

- Извините, Теодор, но ваши рассуждения очень странные.

Глупо искать решение, если оно уже существует. Речь идет о том, как справиться с проблемой, которая не имеет решения.

Это глубоко принципиальный вопрос, который, как я вижу, вам, учёному-прикладнику, к сожалению, недоступен.

По-моему, я зря заговорил с вами на эту тему.

Понедельник начинается в субботу.

А.

и Б.

Стругацкие



Введение

Любой поиск решения проблемы состоит из ряда шагов, независимо от характера проблемы.

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

Хотя в этой статье слегка упоминается специфика местных условий, сам процесс описан достаточно абстрактно, так что его можно использовать даже для устранения ошибок в ИТ-системе, или для устранения неполадок в бытовой электронике, или для разрешения межличностных конфликтов.



Выявление проблемы

Нет смысла приступать к решению проблемы, пока она не сформулирована – либо будет найдено неправильное решение, либо оно никому не нужно.

Но в любом случае результат будет бесполезен и усилия окажутся напрасными.

Первое, что нужно сделать, это выявить проблему.

Разберитесь, что, где и как работает неправильно.

Определите компонент системы, генерирующий ошибку, получите диагностику, показывающую наличие проблемы.

Результатом этого шага должна стать следующая собранная информация: Где произошла ошибка - имя (файл) формы или отчета, точная версия.

Сообщение об ошибке дословно, посимвольно, записано в виде текста (для возможности последующего поиска скриншотов для этого недостаточно); если ошибка в файле журнала, то имя и расположение такого файла.

Среда, в которой возникла проблема — производственная система, система проектов, тестовая система, все вышеперечисленное.

Воспроизводится ли эта проблема, характер воспроизведения - на всех данных, на определенных данных или при определенных условиях, единичный сбой, плавающая ошибка.

Шаги, которые привели к проблеме, и если проблема воспроизводима, то они также будут тестовым сценарием.

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

Собранная информация должна быть документирована.

Цель этого шага: Зафиксируйте факт наличия проблемы.

Найдите и запишите место проблемы в системе.

Полученные ключевые слова (название и версия компонента, сообщения об ошибках) можно использовать при поиске в доступных базах знаний – внутренних системах, Металинк, в Интернете.

Если подобная проблема встретится в будущем, то после выявления этой новой проблемы с высокой вероятностью должно быть найдено существующее решение.

Такое описание проблемы является завершенным этапом работы; последующие шаги (анализ, поиск решений и т. д.) могут быть продолжены другим исполнителем или такая работа может выполняться параллельно.

Качество этого этапа легко оценить.

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



Анализ проблемы и поиск причин

Как только место проблемы будет определено, можно приступать к поиску причин.

Полезными приемами в этом случае являются: Трассировка — позволяет найти код, который работал некорректно или выдавал ошибку; позволит увидеть, что последнее было выполнено, если нет четкой диагностики проблемы.

Анализ исполняемого кода — вместе с сообщением об ошибке даст гипотезы, почему код не работает должным образом.

Отладка (в том числе вывод диагностики) – позволит определить, выполняются ли предположения о логике работы, значениях переменных, а также увидеть, выполняется ли вообще диагностируемый участок кода.

Анализ данных (чем проблемные данные отличаются от остальных) позволит вам сосредоточиться на коде, в котором происходит обработка именно таких разных данных.

Анализ причин и поиск решения происходят по известной схеме: Сформулируем гипотезу о причине ошибки.

Проверим сформулированную гипотезу: исправляем код или данные, сделать пробный запуск Давайте проанализируем результат. Если гипотеза не подтверждается, начинаем с начала.

Результатом данного этапа должна стать найденная причина проблемы.

Результат должен быть документирован.

Также полезно задокументировать шаги по поиску и анализу проблемы.

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

шаги, если в результате предыдущей работы было установлено, что этот путь неэффективен и так далее.



Подготовка решения

Когда причина проблемы найдена, осуществляется поиск наиболее подходящего способа ее устранения.

Это могут быть исправления данных, исправления кода, изменение настроек, а может быть, в наиболее тяжелых случаях, более кардинальные изменения функциональности системы и т. д. Некоторые шаги можно предпринять сразу, а другие (например, перенастройка системы, улучшение функциональности) и т. д.) оставляются на потом.

Не следует забывать, что наиболее подходящее решение может оказаться в неожиданной сфере, например, административной.

Решение задачи оценивается по трудозатратам, скорости выполнения и эффективности.

Хорошей практикой является документирование того, как проблема будет решена, прежде чем ее реализовывать, особенно если это неочевидно из контекста и подготовка исправлений займет значительное количество времени.

Естественно, раствор должен быть тщательно протестирован в процессе приготовления.

Результатом этого этапа должна стать подготовленная и документированная последовательность действий, в результате которых проблема будет устранена.

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



разбор полетов

После успешного решения проблемы следует провести завершающий этап работы.

В частности, не так уж редко оказывается, что на этом этапе действительно ничего делать не нужно.

Но резюме должно быть.

Этот этап нацелен на будущее – улучшение качества и предотвращение потенциальных проблем.

В ходе заключительного подведения итогов вам следует сделать следующее и ответить на следующие вопросы: Что-то было упущено или не задокументировано из-за нехватки времени, теперь вы можете спокойно все завершить.

В подготовленном на скорость решении устранены последствия, но не причина, и решение нужно продолжить (возможно, в рамках другой задачи).

Если проблема была в данных, есть ли другие данные с той же проблемой, которые еще не обнаружены? Исправить их сейчас, когда мы полностью понимаем проблему, — лучшее время.

Есть ли вероятность, что проблема повторится и приведет ли эта проблема или ее последствия к другим неприятностям в будущем? Что вы можете сделать, чтобы избежать этого? Не стоит ли задокументировать решение проблемы в виде универсального скрипта, написать его в FAQ или базе знаний и т.п.

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

Хочу подчеркнуть, что если не требуется никаких дополнительных действий, то это тоже решение, и оно должно быть документально оформлено.

Просто отсутствие окончательных выводов указывает на то, что анализ воздействия не проводился.

Теги: #поддержка #техническая поддержка #методология #Service Desk

Вместе с данным постом часто просматривают: