Ошибка не в проблеме, а в симптомах проблемы

Ошибка не в проблеме, а в симптомах проблемы

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

Перевод на русский. Оригинал статьи здесь

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

Не совсем. Ошибки — это не проблемы, а скорее симптомы проблемы.

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

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

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

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

Помните: проблема не в ошибках; Они являются симптомом. Лечение симптома без решения проблемы нелогично и рискованно.

Чтобы определить проблему, мы должны определить и проанализировать симптомы

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

В IT есть искушение сразу же перейти к варианту «обезболивающего» (исправление ошибки) и остановиться на этом. Но я считаю, что важно глубже изучить проблему, особенно когда ошибки происходят регулярно.

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

  • Непонимание того, что нужно делать: функция не работает должным образом. Например, предполагается, что функция оплаты открывает диалоговое окно оплаты как для аутентифицированных, так и для гостевых пользователей при нажатии кнопки «Оплатить сейчас». Однако ничего не происходит, когда тестер нажимает «Оплатить сейчас» в качестве гостевого пользователя. В данном случае разработчик не понял, что диалог оплаты должен открываться как для аутентифицированных, так и для гостевых пользователей.
  • Непонимание условий использования или «невыполнение нефункциональных требований (NFR)». Например, тестировщик по понятным причинам будет рассматривать это как ошибку, если диалоговое окно оплаты открывается только после того, как страница не отвечает в течение 5 минут. Если разработчик не понимает условия использования (диалог должен открываться сразу после нажатия, независимо от того, аутентифицирован пользователь или является гостем), исправление его один раз не решит корень проблемы.
  • Непонимание инженерии. Обычноэто происходит, когда объекты непредсказуемо взаимодействуют с другими признаками. Например, тестировщик авторизуется как аутентифицированный пользователь и открывает диалоговое окно оплаты. После этого тестер выходит из системы, но окно оплаты со всеми ранее вошедшими в систему данными пользователя остается открытым. В данном случае разработчику не хватало информации о том, как модуль должен взаимодействовать с функционалом входа/выхода.

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

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

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

Чтобы решить проблему, мы должны выбрать оптимальное решение

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

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

Например, у меня был опыт различных методов лечения проблем, связанных с «непониманием того, что нужно делать», та��их как:

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

Все решения проблемы потери информации требуют, чтобы тестовая информация (ожидания, NFR, пограничные случаи, счастливые пути и даже сценарии тестирования) хранилась и распространялась среди членов команды. Система управления тестами, такая как Qase, — это абсолютный минимум. Точно так же и в медицине были изобретены медицинские карты пациентов, чтобы весь медицинский персонал мог записывать и обмениваться всей необходимой медицинской информацией.

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

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

Чтобы оценить эффективность решения, мы должны проанализировать и пересмотреть его

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

В ИТ-отделе, если ошибки сохраняются, нам нужно исследовать и пересмотреть решение. Например, если организационное совещание с участием разработчиков и тестировщиков не привело к значительному уменьшению количества ошибок или улучшению общего понимания, это не лучшее решение.

Давайте пройдемся по процессу анализа. Во-первых, мы используем нашу систему управления тестированием для проверки тестовых случаев и планов, разработанных во время организационного совещания. Мы обнаруживаем, что ошибки можно было бы предотвратить, если бы разработчики управляли этими тестовыми случаями и планами тестирования. Сейчас мы можем с уверенностью сказать, что выбранное решение «организационного совещания» не улучшило ситуацию, и мы должны придумать другой подход или лечение.

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

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

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

11
1 комментарий

Согласен. Часто мы гонимся за быстрыми решениями, не вникая в корень проблемы. А это приводит к тому, что ошибки повторяются снова и снова..

1
5 неочевидных решений, которые позволят вам сократить расходы на IT

Уже понятно, что 2025 год для бизнеса в России останется периодом турбулентности. И важное умение любого эффективного бизнеса — эффективно подстраиваться под изменения и находить решения для оптимизации.

55
реклама
разместить
Баги, Ошибки, Проблемы, Недостатки, Неисправности, Сбои, и Дефекты

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

Баги, Ошибки, Проблемы, Недостатки, Неисправности, Сбои, и Дефекты
55
11
Из минуса в 700к к +1 млн в месяц: как я выбрался из операционки и перестал работать по 16 часов в день

Как выйти из суеты и начать реально управлять бизнесом

Кейс: как мы реализовали бизнес-критичную ИТ-трансформацию после 24.02.2022 без внутреннего проектного офиса
Кейс: как мы реализовали бизнес-критичную ИТ-трансформацию после 24.02.2022 без внутреннего проектного офиса

В сентябре 2022 года к нам обратилась международная логистическая компания по грузоперевозкам и хранению в сегменте HoReCa. Проблема: европейский головной офис отзывает лицензии на иностранные ПО, и у клиента есть только год, чтобы реализовать ИТ-трансформацию, иначе произойдет остановка работы всех 16 распределительных центров по России. Все подро…

44
Аяз Шабутдинов признал вину в мошенничестве — но пока не в суде

Он сообщил об этом в своём Telegram-канале.

Источник: Telegram-канал Аяза Шабутдинова
2121
1313
44
44
22
Парни вы издеваетесь ?
Бизнес-идея: в США «усыновляют» гиперреалистичных кукол — со свидетельством о рождении, процедурой «выписки» и силиконовой плацентой

Их стоимость варьируется от $250 до $1000.

На фото Мария Тригг. Источник фото: Thomas Simonetti / The Times
2121
1414
77
33
11
11
11
А продолжение-то есть у этой фигни? Типа через год отдаешь куклу, тебе дают новую, потом еще раз, относишь ее в садик, потом в школу, потом ЕГЭ сдаешь со здоровенной тупой силиконовой дурындой...
Как я привел с Авито 400 заявок по 113 рублей и клиент меня "уволил"...

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

Как я привел с Авито 400 заявок по 113 рублей и клиент меня "уволил"...
1919
55
44
33
22
"5 миллионов за час стрима": Сколько зарабатывают современные блогеры?

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

"5 миллионов за час стрима": Сколько зарабатывают современные блогеры?
1111