Проблема XY

Вопрошение о попытке решения, а не о проблеме

Что это такое?

Проблема XY (Ошибка молотка, Ошибка XY, Вопрос XY, XY Problem) — это когда вы спрашиваете о своей попытке решить проблему, а не о самой проблеме. В результате вызванного недопонимания все стороны теряют огромное количество времени и сил.

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

Как этого избежать?

  1. Старайтесь прилагать к описанию вашей попытке решения контекст проблемы целиком.

  2. Если вас просят дать больше информации — сделайте это.

  3. Если вы уже отмели какие-то варианты, расскажите, почему вы так поступили. Это позволит получить представления о ваших требованиях к решению.

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

Примеры

Пример №1

valera2000 требуются не последние три символа в названии файла, а расширение того — так почему бы сразу не спросить об этом?

<valera2000> Как получить последние три символа в названии файла?

<mary_goes_round> Если название в переменной foo, то: echo ${foo: -3}

<mary_goes_round> Но почему три? Тебе точно требуется ИМЕННО это?

<mary_goes_round> Может, расширение файла?

<valera2000> Ага.

<mary_goes_round> Нет гарантии, что расширение в названии файла будет состоять из трёх символов.

<mary_goes_round> Так что просто их взятие будет работать лишь в определенных случаях.

<mary_goes_round> echo ${foo##*.}

Пример №2

Если бы Валера начал с того, что он хочет предотвратить определение его ОС, диалог мог бы стать намного короче и продуктивнее.

Валера: ‘nmap -O -A 127.0.0.1’ выдаёт несколько линий с ‘OS:’. Можно это как-то изменить?

Маша: Глянь исходный код nmap, найди как оно определяет Линукс, и перепиши стэк TCP/IP так, чтоб nmap не мог определить ОС.

Валера: Ага… Но я вообще не разбираюсь в API систем Линукса.

Маша: Ну, nmap определяет по тому, как оперирует стэк TCP/IP. Так что способа изменить это дело нет, кроме как переписыванием стэка.

Валера: Я очень хочу избежать вывода этих сообщений. Может, iptables справится с этой задачей?

Маша: Можешь просто не использовать определение ОС или сканирование версии в nmap.

Валера: Я хочу скрыть свою ОС от других, а не перестать видеть чужие.

Оригинал ··· Репозиторий