HOWTO: Как правильно задавать вопросы.
Прислано freez38ru на 17 Апреля 2009, 13:43:51
HOWTO: Как правильно задавать вопросы.

Введение
Прежде всего, надо понять, что хакерам на самом деле нравятся сложные проблемы и хорошие, способные расшевелить мозги, вопросы об этих проблемах. Если бы им это не нравилось, они не были бы хакерами. Если задать им интересный вопрос, требующий продолжительных размышлений, они будут за него благодарны; хорошие вопросы - это стимул и подарок. Хорошие вопросы помогают лучше понять предмет и часто вскрывают проблемы, которых ранее не замечали или о которых не задумывались. Из уст хакера: "Хороший вопрос!" - это большой и искренний комплимент.

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

Они, без сомнения, неприязненно относимся к людям, предположительно не желающим подумать или поучиться прежде, чем задавать вопросы. Такие люди убивают время — они берут, ничего не давая взамен, они отнимают время, которое хакеры могли бы посвятить другому вопросу, более интересному, и другому человеку, более достойному ответа. Таких людей они называем "неудачниками" ("losers") (по историческим причинам это слово иногда пишется как "lusers" - пользователи-неудачники).

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

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

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

Прежде, чем спрашивать...
Прежде, чем задавать технический вопрос на форуме, сделайте следующее:
Процедура 1.
• Попытайтесь найти ответ с помощью поиска в Web.
• Попытайтесь найти ответ в руководстве.
• Попытайтесь найти ответ в списке часто задаваемых вопросов (ЧаВО).
• Попытайтесь найти ответ путем проверок или экспериментов.
• Спросите опытного товарища.
• Если вы - программист, попытайтесь найти ответ, анализируя исходный код.

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

Используйте приемы типа поиска в Google. Это может привести либо неспосредственно к документации, посвященной тому, как эту ошибку устранить, либо на форум в котором можно будет найти ответ. Даже если ответ и не найдется, фраза: "Я поискал в Google по следующему запросу, но ничего полезного не нашел" пригодится при обращении за помощью.

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

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

С другой стороны, неплохо сразу ясно дать понять, что вы можете и хотите помочь в процессе выработки решения. На вопросы типа "Может ли кто-то подсказать?", "Что не учтено в моем примере?" и "А нет ли сайта, который стоит на эту тему посмотреть?" более вероятно будет получен ответ, чем на требование прислать точную последовательность действий для решения проблемы, поскольку вы явно показали, что решите проблему сами, если кто-то укажет вам правильное направление действий.

Когда спрашиваете...
Правильно выбирайте форум
Тщательно продумайте, где именно задавать вопрос. Вас с большой вероятностью проигнорируют или спишут как неудачника, если вы:
• пошлете вопрос в форум, не соответствующий по тематике (off topic)
• пошлете самый элементарный вопрос в форум, где обсуждаются сложные технические вопросы, или наоборот
• пошлете вопрос одновременно (cross-post) во множество различных дискуссионных групп
• пошлете личное сообщение по электронной почте незнакомому человеку, лично не отвечающему за решение ваших проблем

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

Поэтому сначала надо найти соответствующий форум. В этом вам снова поможет поисковая система Google и другие средства поиска в Web.

При выборе Web-форума, не принимайте решение только на основе имени; прочитайте список часто задаваемых вопросов (FAQ) или правила, чтобы убедиться, что вопрос соответствует тематике. Почитайте сообщения некоторое время, прежде чем посылать вопросы, чтобы почувствовать, как и что здесь делается. На самом деле, перед посылкой вопроса не помешает поискать по ключевым словам, связанным с вашей проблемой, в архивах форума. В результате можно найти ответ, а если нет, такой поиск поможет лучше сформулировать вопрос.

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

Понятно, что опытные хакеры и создатели популярных программ и так уже получают намного больше не относящихся к делу вопросов, чем хотели бы. Увеличивая этот поток, вы в некоторых случаях можете стать последней каплей - изредка участники популярных проектов прекращают их поддержку, потому что не выносят больше сопутствующих ей проблем в виде потока бесполезных сообщений по электронной почте на их личные адреса.
Задавайте осмысленные, конкретные темы сообщений
При посылке сообщения на форум, тема сообщения - прекрасная возможность привлечь внимание квалифицированных экспертов строкой длиной до 50 символов. Не тратьте их на лепет типа "Помогите мне, пожалуйста" (не говоря уже про темы "PLEASE HELP ME!!!!"; сообщения с такими темами выбрасываются рефлекторно). Не пытайтесь поразить хакеров глубиной своих страданий; лучше используйте отведенное место для максимально краткого описания проблемы.
Глупо:
Вот такая проблема..залил движок...помогите!!!
Разумно:
Установил PHP-Fusion 6.01.18.4 на бесплатный хостинг. После установки возникла проблема: при регистрации нового пользователя выдается сообщение «Ошибка регистрации. Отправьте письмо с этой ошибкой администратору»

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

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

Соблюдайте правила синтаксиса, пунктуации и использования прописных букв. Не ПИШИТЕ ВСЕ В ВЕРХНЕМ РЕГИСТРЕ, - это воспринимается как крик и считается грубостью.

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

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

Объем еще не значит точность

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

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

Не утверждайте, что нашли ошибку

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

Помните, что множество других пользователей с такой проблемой не сталкивались. Иначе вы бы уже узнали об этом при чтении документации или при поиске в Web (вы же сделали это, прежде чем делать подобные утверждения, не так ли?). Это означает, что, скорее всего, именно вы что-то делаете неправильно, а не программное обеспечение.

Создатели программного обеспечения прикладывают огромные усилия для того, чтобы оно работало как можно лучше. Если вы утверждаете, что нашли ошибку, то, тем самым, предполагаете, что они сделали что-то не так, и это почти наверняка им не понравится — даже если вы правы.

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

Некоторые, уяснив, что не надо вести себя грубо или надменно, вымогая ответ, выбирают противоположную крайность - самоунижение. "Я знаю, я начинающий, неудачник и полный чайник, но...". Это отвлекает от сути и не имеет смысла. Особенно в сочетании с неопределенностью в описании фактической проблемы.

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

Иногда в Web-форумах есть отдельные места для вопросов начинающих. Если вы чувствуете, что такой вопрос может задать только начинающий пользователь, задавайте его именно там. Но и там не надо унижаться.

Описывайте симптомы проблемы, а не свои предположения

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

Глупо:
Ваш движок глючный. Короче, закачал новую тему оформления milkyway, а в главных настройках поменял на нее, когда нажал сохранить выдало ошибку.
Разумно:
Установил PHP-Fusion 6.01.18.4. Поставил тему офорления milkyway после сохранения выдало ошибку:
«Fatal error: Cannot redeclare opensidex() (previously declared in E:\AppServ\www\PHP-Fusion\files\themes\milkyway\theme.php:211) in E:\AppServ\www\PHP-Fusion\files\includes\theme_functions_include.php on line 196».

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

Описывайте цель, а не отдельный шаг

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

Не просите отвечать на личный адрес электронной почты

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

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

Задавайте ясные и четкие вопросы

Неограниченные вопросы требуют обычно неограниченного времени для ответа. Люди, скорее всего способные дать вам полезный ответ, еще и самые занятые люди (еще и потому, что большую часть своей работы делают сами). Такие люди ревностно относятся к своему времени, и поэтому часто не воспринимают неограниченные вопросы.

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

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

Поэтому имеет смысл ограничить вопрос, чтобы свести к минимуму время, необходимое эксперту для его решения. Но зачастую это не то же самое, что упростить вопрос. Так, например, вопрос: "Можете ли вы дать мне ссылку на хорошее описание X?" - обычно куда разумнее, чем просьба: "Объясните мне X, пожалуйста". Если у вас проблема с неработающим кодом, разумнее будет попросить объяснить, что в нем не так, а не просить исправить ошибки.

Избегайте бессмысленных просьб

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

Вежливость никогда не повредит, и иногда помогает

Будьте вежливы. Используйте фразы "Пожалуйста" и "Спасибо за рассмотрение". Дайте понять, что благодарны людям, бесплатно посвящающим вам свое время.

Пошлите краткое описание решения

После того, как проблема решена, напишите краткое резюме с решением, и поблагодарите еще раз за помощь.

Оптимально будет изменить тему первого сообщения, добавив пометку 'FIXED', 'RESOLVED', 'РЕШЕНИЕ' или другой не менее очевидный признак решения.
Такое сообщение не обязательно должно быть длинным и подробным; простое: "Привет! Проблема была связана с разрывом в сетевом кабеле! Спасибо всем. Билл", - уже лучше, чем ничего. Фактически, краткое и вежливое резюме – это все что нужно. Напишите, какие действия позволили решить проблему, но всю последовательность поиска решения повторно описывать не надо.

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

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

Как интерпретировать ответы
RTFM и STFW: как понять, что вы серьезно облажались

Есть древняя и священная традиция: если вы получаете ответ "RTFM", значит, отвечающий думает, что вам стоит почитать руководство (Read The Fucking Manual). Он почти наверняка прав. Читайте.

У ответа RTFM есть более молодой аналог. Если вы получаете ответ "STFW", значит, отвечающий думает, что вам стоит поискать ответ в сети (Search The Fucking Web). Он почти наверняка прав. Ищите.

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

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

Если вы не поняли ответ, не шлите тут же требование его объяснить. Используйте те же источники информации, что и при поиске ответа на исходный вопрос (руководства, ЧаВО, Web, опытные коллеги), чтобы понять ответ. Если и после этого вам необходимы разъяснения, покажите, что вы узнали сами.

Если ответ не получен

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

В общем случае, повторная посылка вопроса - не лучшая идея. Это будет воспринято как бессмысленная надоедливость.

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

P.S: Статья несколько изменена
оригинал статьи взят тут
http://www.citforum.ru/howto/smart-questions-ru.shtml
Правила описанные в статье не дают гарантию на получение ответа, но существенно увеличиваю ваши шансы получить профессиональные помощь.