14 FAQ
14.0 上手に質問するには
1 複数の場所で質問を投稿する際には、以下のような状況に陥るかもしれません。
- 質問に対する回答がつかない。
- 回答がつくまでに時間がかかる。
- ばかにするような回答ばかりで何も教えてくれない。
2 質問を投稿する前に本ガイドの3章と4章をよく読んでください。
3章と4章はmyCobotシリーズを使用する際の根幹となる部分です。開発の経験のあるなしに関わらず、最初から最後まで読みこんで試してみてください。
多くの問題はガイドを読んだ段階で解決するはずです。ガイドを読まずに最初に*QQグループやフォーラム、issuesに質問を投稿したりメールで問い合わせたりするのは避けてください。ガイドの始めのあたりで触れられている問題に関する質問には、コミュニティからなかなか回答がつかないかもしれません。みんなの時間を節約し、コミュニティの雰囲気を良好に保つためには、各自が理解しあって共に成長していくことが重要です。
*コミュニティは現在クローズされています。
3 以下の点に気をつけて質問を投稿すると、問題を早く解決できる確率が高まります。
どんな問題が起こっていて、自分が何をしたのか :
- どんな目的で、どんな機能を使いたいのか?
- その目的のために何をしたのか?その詳細なプロセスは?
- 実装中にどんなエラーが起きたのか?どんなことが起こったのか(エラーの種類は?エラーメッセージの完全な内容は?)?
- エラーメッセージをしっかりと読んだか?エラーメッセージの中に原因と解決方法が書かれていなかったか?
- エラーメッセージをもとにして解決できないか?
- ガイド、issues、ウェブ検索などから解決の方法を見つけられたか?
4 本当に自分で問題を解決できないなら、誰かに助けをお願いする必要があるかもしれません。その際には以下の点に気を配ってください。
- 誰に、どこで聞くのがよいのか?質問に答えてくれる可能性が高いのは誰?リアルタイムにやり取りできる?
- どの種類のデータや起こっている現象をその人に伝えれば解決が早まるのか?
- 目的(あなたが何をしているのか回答者が理解するのに役立ちます)
- 完全な実装プロセスと、そのプロセスで起こった現象(回答者がプロセスとエラーを再現するのに役立ちます)
- エラーが起こった箇所、起こっている現象や結果が想定したものとどう違っているのか(何が想定と違っていたのか回答者が理解するのに役立ちます)
- エラーに関する情報。完全なスクリーンショットやログが多いほど役に立ちます。小さな画像や一部分だけのログなどはあまり役に立ちません。最後に同じような動作をさせた時から時間が経っていて、回答者は細部を忘れているかもしれません。スクリーンショットや完全なログは彼らが思い出す助けになります。詳細なログを追えば、どこに問題があるのか突き止められます。
- 真摯な姿勢で質問するには?真摯であれば、あなたが全てを完璧に理解していなくても、みんな回答してくれようとするでしょう。
5 質問のテンプレート
上手に質問をしましょう。余計な情報や不平を差し挟まずに、適切な言葉や句読点に気をつけてください。回答者の立場から問題を見ることを心がけて、回答者が問題を解決するにはどうすればいいか考えましょう。言葉が少なすぎては質問の内容が取りづらいし、多すぎても回答者をイライラさせるだけです。
6 タイトル
どこに質問を投稿するにしろ、タイトルは30語に収まるぐらいが望ましいでしょう。質問の中心となる部分を明確にするには、
- 質問、バグの投稿、自分が経験したことのシェア。いずれにしろ、問題の種類を明確にするのが重要です。文字だらけの画面の中から、あなたが何をしたいのか回答者がすぐに見つけ出せるようにしてください。
- 問題のコアが明確なタイトルを。
run the camera sample program, report an error reset fail, it may be a hardware problem.(「カメラのサンプルコードを動作させたらリセット失敗のエラーが出ました。ハードウェアに問題があるのかもしれません」)
など。
まとめると以下のようになります :
[Mycobot question] Running the camera sample program, the error reset fail is reported. Could it be a hardware problem?([myCobotに関する質問] カメラのサンプルコードを動作させたらリセット失敗のエラーが出ました。ハードウェアに問題があるのでしょうか? )
以下のようなタイトルは避けてください :
Why is my board not working again?(またボードが動作しなくなったんだけど?)
Why is my code not working?(コードが動かないのはどうして?)
Why is my screen black? (ディスプレイが黒いまま)
[Mycobot question] I received the development board, why is the development board screen red and has a small line of text?([myCobotに関する質問] 開発ボードを受け取ったんだけど、開発ボードのディスプレイが赤くてなんか小さい文字で書いてあるのは何?)
I ran a program and something went wrong.(プログラムを動作させたらなんかおかしくなった)
代わりにこんな風に質問しましょう :
[Mycobot question] My board can't start after I connected the power supply in reverse, how can I tell where the board is burnt, and if so, how can I save it?([myCobotに関する質問] 電源に逆に接続したらボードが起動しなくなりました。焼き切れてしまった箇所がどこなのか判別できますか?判別できるなら、どうすれば直せますか?)
7 内容
まず、回答してくれる人の立場に立ちましょう。質問をする際には以下のように考えると良いでしょう。
- まず何よりも、質問者がしたいことや目的は何なのか?
- その目的のために質問者が行ったプロセスは?
- その現象を回答者が再現するために必要な、質問者が行ったプロセスと、そのプロセスのどこで問題が起きたのか?もしその問題の解決が難しそうで、プロセスを再現する方法がないなら、再現には時間がかかるかもしれないので、その問題はいったん置いておいて他の問題に取り掛かろう。
- 起きた問題は何なのか?質問者が問題だけに言及しているなら、質問者にとって不都合なのは何?ちょっとうまくいかなくて気持ち悪いってだけ?じゃあ想定していた結果とどう違うのか質問者に聞いてみようか。そうでもないと何が問題なのか推測するしかないし、解決に時間がどんどんかかっていくよね。
- 問題があるなら、質問者のログファイルが必要かもしれない。ログファイルがあればソースコードを分析できるけど、ないなら解決が難しいし、問題が後々見過ごされていくかもしれない。
まとめると以下のようになります :
- ゴール、何がしたいのか、どんな現象が起こっているのかを明確にする
- 参考にした資料やコード、チュートリアルなどはあるか
- エラーの再現の仕方 : 問題が起こるまでの各プロセスを詳細に記述する
- エラーが起こった時何が起きたのか、想定と違った点は何かを明確にする。問題が起こった証拠も必要です。
- ログファイル、スクリーンショット、ビデオなどを添付する。ログやスクリーンショットは断片でなく完全なものが必要です。ログやスクリーンショットから、回答者はあなたが気づいていない問題に気づくかもしれません。
- コードを貼り付ける際にはフォーマットにも注意してください。ペーストした状態のままのごちゃごちゃした状態ではきちんと表示されません。コピーしたらそのままきちんと動作するような状態で貼り付けてください。
- 最後に、コミュニティの仲間に回答のお礼を言うことも忘れずに。
出典 : Elephant Robotics資料 How To Ask Questions Gracefully