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

Понимание и подтверждение

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

Это снова один из самых сложных шагов в процессе отладки. Чтобы воспроизвести проблему, с которой столкнулся клиент, нам потребуется достаточно подробностей о возникновении проблемы. Почти в каждом случае 95% времени тратится на то, чтобы воспроизвести проблему, а не на ее устранение. Во многом это происходит потому, что, чтобы добраться до той же ситуации, в которой находится клиент, мы должны выполнить значительный объем настройки приложения или пошаговых руководств. Иногда они запоминали только последний шаг, вызвавший проблему. Это делает процесс поиска ошибки похожим на иголку в стоге сена, поскольку может быть N серий событий, которые могли привести к проблеме.

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

«Ничего в жизни не следует бояться, это нужно только понимать. Пришло время понять больше, чтобы меньше бояться ». - Мари Кюри

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

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

Каждый разрабатывает план действий, направленный на то, чтобы превратить существующие ситуации в предпочтительные. - Герберт А. Саймон

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

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

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

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