Решение проблем методом резиновой утки
У нас есть отличная страница Как Задавать Вопросы, которая объясняет все это, и на которую щедро ссылаются по всей сети. (И на Stack Overflow, благодаря массивному объему вопросов, мы, в действительности, заставляем новых пользователей кликать через эту страницу прежде, чем задать свой первый вопрос. Ты и сам можешь увидеть это, задав вопрос в качестве нового пользователя.)
Прежде всего, мы хотим избежать одноразовых вопросов, на которые невозможно ответить. Они никому не помогут, а если их оставлять в таком бесполезном виде, то могут погубить любой Q&A сайт, превратив его виртуальный город призраков. На Stack Exchange лишенные информации и контекста вопросы, на которые невозможно дать разумный ответ, будут сразу же закрыты, и если их не улучшат, в конце концов удалены.
Как я сказал, в этом деле мы зануды. Но по уважительной причине: мы явным образом пытаемся помочь тебе помочь себе, научив тебя решению проблем методом Резиновой Утки. И это всегда работает. На протяжении многих лет я получил тонны отзывов о том, как люди, в процессе тщательного, детализированного написания вопросов, для Stack Overflow или другого Stack Exchange сайта, находили ответ на свой вопрос.
Довольно частый случай. Смотри сам:
- У меня проблема
- Я решил обратиться с этим на stack overflow
- Я неуклюже пишу свой вопрос
- Я осознаю, что вопрос не имеет никакого смысла
- Я трачу 15 минут на то, чтобы заново подумать, как задать свой вопрос
- Я осознаю, что решаю проблему совсем не с той стороны.
- Я начинаю с нуля и быстро нахожу решение.
Это не новая концепция и наверное каждое сообщество в итоге приходит к этому, но «Спроси Утку» является очень мощной техникой решения проблем.
Боб указал в угол кабинета. «Там, — сказал он, — утка. Я хочу, чтобы ты задал этой утке свой вопрос.»
Я посмотрел на утку. На самом деле, это было чучело, совсем мертвое. Но даже если бы утка не была мертвой, это был бы не лучший источник конструктивной информации. Я посмотрел на Боба. Тот был абсолютно серьезным. Он также был моим начальником, а я не хотел терять работу.
Я неуклюже подошел к утке, стал рядом и, как будто в молитве, склонил к ней голову, чтобы побеседовать. «Что ты делаешь?» — требовательно спросил Боб.
«Я задаю утке свой вопрос», — ответил я.
Один из начальников Боба был в его кабинете. Этот ублюдок улыбался, с зубочисткой во рту. «Энди, — сказал он, — я не хочу, чтобы ты молился утке. Я хочу, чтобы ты задал ей свой вопрос».
Я облизнул губы. «Вслух?» — спросил я.
«Вслух», — твердо ответил Боб.
Я прочистил горло. «Утка», — начал я.
«Ее зовут Боб Младший», — подсказал начальник Боба. Я криво взглянул на него.
«Утка», — продолжил я, — «я хочу знать, когда я использую подвесной хомут, что не дает трубе разбрызгивателя выскочить из него, когда хомут разжимается, в результате чего труба…»
На середине моего вопроса утке меня осенило. Подвесной хомут крепится к конструкции сверху длинным стержнем с резьбой. Если слесарь вкручивает стержень с резьбой так, что он упирается в верх трубы, это по сути и будет держать трубу в хомуте и не даст ей выскочить.
Я повернулся и взглянул на Боба. Боб кивал. «Ты знаешь, так ведь?», — сказал он.
«Ты вкручиваешь стержень с резьбой к верху трубы», — сказал я.
«Правильно», — сказал Боб. — «В следующий раз, когда у тебя будет вопрос, я хочу, чтобы ты пришел сюда и задал его утке, а не мне. Спрашивай вслух. Если после этого, ты все еще не будешь знать ответ, тогда ты можешь спросить у меня.»
«Хорошо», — сказал я и вернулся к работе.
Мне нравится конкретно эта история, потому что она кристально чисто проясняет, что самая важная часть решения проблем методом резиновой утки — это обязательно задать тщательно сформулированный, детальный вопрос у воображаемого человека или неодушевленного предмета. Да, даже если ты в итоге отбросишь вопрос, потому что ты в конце концов поймешь, что сделал какую-то глупую ошибку. Попытка кого-то воображаемого пройтись по твоей проблеме, шаг за шагом в деталях, это то, что часто приведет тебя к решению. Если ты не хочешь прилагать усилий, чтобы полностью объяснить проблему и как ты ее решал, ты не сможешь пожинать плоды глубокого мышления над своей проблемой перед тем, как спросить у других.
Если у тебя нет друга программиста (а он обязательно должен быть), ты можешь применить технику решения проблем Резиновой Утки, чтобы выяснить проблемы самостоятельно, или пользуясь большим Интернет сообществом. Даже если ты не получил ответ, который хотел, заставляя себя полностью объяснить свою проблему — в идеале, письменно — зачастую приведет тебя к новым идеям и открытиям.