Решение проблем методом Резиновой Утки

Любительский перевод этой статьи

Прошу строго не судить 🙂 Замечания приветствуются 🙂

Решение проблем методом резиновой утки

На Stack Exchange мы настаиваем на том, чтобы люди, которые задают вопросы, вкладывали немного усилий в свой вопрос, и в этом деле мы зануды. А именно, перед тем, как задать вопрос, ты должен…

  • Достаточно подробно описать происходящее, чтобы мы могли повторить твои шаги. Предоставь нам необходимую базовую информацию, чтобы понять, что происходит, даже если мы не являемся экспертами в данной области.
  • Рассказать нам, для чего тебе нужно знать ответ. Что привело тебя сюда? Это праздное любопытство или это как-то препятствует выполнению твоего проекта? Нам не нужна вся твоя биография, просто дай нам некоторый контекст.
  • Поделись своими исследованиями по этой проблеме; что ты нашел на текущий момент? Почему это не сработало? А если ты не проводил никаких исследований … стоит ли тебе вообще спрашивать? Если ты приглашаешь нас потратить наше драгоценное время на помощь тебе, будет честно только если ты потрудишься и потратишь разумное количество своего драгоценного времени на то, чтобы твой вопрос выглядел прилично. Помоги нам помочь тебе!

У нас есть отличная страница Как Задавать Вопросы, которая объясняет все это, и на которую щедро ссылаются по всей сети. (И на Stack Overflow, благодаря массивному объему вопросов, мы, в действительности, заставляем новых пользователей кликать через эту страницу прежде, чем задать свой первый вопрос. Ты и сам можешь увидеть это, задав вопрос в качестве нового пользователя.)

Прежде всего, мы хотим избежать одноразовых вопросов, на которые невозможно ответить. Они никому не помогут, а если их оставлять в таком бесполезном виде, то могут погубить любой Q&A сайт, превратив его виртуальный город призраков. На Stack Exchange лишенные информации и контекста вопросы, на которые невозможно дать разумный ответ, будут сразу же закрыты, и если их не улучшат, в конце концов удалены.

Как я сказал, в этом деле мы зануды. Но по уважительной причине: мы явным образом пытаемся помочь тебе помочь себе, научив тебя решению проблем методом Резиновой Утки. И это всегда работает. На протяжении многих лет я получил тонны отзывов о том, как люди, в процессе тщательного, детализированного написания вопросов, для Stack Overflow или другого Stack Exchange сайта, находили ответ на свой вопрос.

Довольно частый случай. Смотри сам:

Как мне отблагодарить сообщество за решение своих собственных проблем?

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

Почему правильно сформулированный вопрос часто приводит тебя к ответу?

Я не знаю сколько раз это случалось:

  • У меня проблема
  • Я решил обратиться с этим на stack overflow
  • Я неуклюже пишу свой вопрос
  • Я осознаю, что вопрос не имеет никакого смысла
  • Я трачу 15 минут на то, чтобы заново подумать, как задать свой вопрос
  • Я осознаю, что решаю проблему совсем не с той стороны.
  • Я начинаю с нуля и быстро нахожу решение.

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

Начальная формулировка вопроса, на самом деле, помогает мне самостоятельно определить и решить мою проблему

Начальная формулировка вопроса, на самом деле, помогает мне самостоятельно определить и решить мою проблему, особенно пытаясь сформулировать понятное и достаточно детальное тело вопроса для того, чтобы получить качественные ответы. У кого-нибудь было такое?

Это не новая концепция и наверное каждое сообщество в итоге приходит к этому, но «Спроси Утку» является очень мощной техникой решения проблем.

Боб указал в угол кабинета. «Там, — сказал он, — утка. Я хочу, чтобы ты задал этой утке свой вопрос.»

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

Я неуклюже подошел к утке, стал рядом и, как будто в молитве, склонил к ней голову, чтобы побеседовать. «Что ты делаешь?» — требовательно спросил Боб.

«Я задаю утке свой вопрос», — ответил я.

Один из начальников Боба был в его кабинете. Этот ублюдок улыбался, с зубочисткой во рту. «Энди, — сказал он, — я не хочу, чтобы ты молился утке. Я хочу, чтобы ты задал ей свой вопрос».

Я облизнул губы. «Вслух?» — спросил я.

«Вслух», — твердо ответил Боб.

Я прочистил горло. «Утка», — начал я.

«Ее зовут Боб Младший», — подсказал начальник Боба. Я криво взглянул на него.

«Утка», — продолжил я, — «я хочу знать, когда я использую подвесной хомут, что не дает трубе разбрызгивателя выскочить из него, когда хомут разжимается, в результате чего труба…»

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

Я повернулся и взглянул на Боба. Боб кивал. «Ты знаешь, так ведь?», — сказал он.

«Ты вкручиваешь стержень с резьбой к верху трубы», — сказал я.

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

«Хорошо», — сказал я и вернулся к работе.

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

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

Источник: http://blog.codinghorror.com/rubber-duck-problem-solving/

Решение проблем методом Резиновой Утки