良い質問・悪い質問

53日目です。
チーム開発を残し、一通りカリキュラムが終わったので、ここまでで感じた「質問」について書きます。

良い質問

・相手の時間も自分の時間も無駄にしないこと
カリキュラムでは「15分調べても分からなかったら、質問しましょう」といった時間の目安があります。確かにそれ以上自分で調べ続けると、自分の時間を無駄にしてしまうこともあるかと思います。ただ、デプロイなどチェック箇所が多くエラー箇所が特定しづらい場合に、「きちんとコマンドを実行したか」などチェックせず「15分たったから質問しよう」というのは、相手の時間を奪うことになります。 私はカリキュラムの「手動デプロイ」に躓きました。15分以上かかりましたが、「全てのコマンドを実行したか確認した上で、エラー時にすべきチェック項目を実施」したことで手動デプロイは自力で解決できました。このように自分できちんとチェックすれば自分で解決できることもたくさんあります。

また、ネットで「良い質問」とはどんなことかを調べる上で、下記が大切だと思いました。
・目的を明確にする(欲しい回答は最初に伝える)
・状況を明確にする(推測ではなく事実を伝える)
・教えてもらったことや指示をその場で確認する(その場で理解しきる)

【脱!質問ベタ】エンジニアに向けた質問の6つのコツ

悪い質問

・調べたつもりにならないこと
私は「自動デプロイ」も躓きました。自動デプロイも全てチェックした(つもりで)メンターに質問したら、なんてことないスペルミスが原因でエラーになっていたことが発覚しました。 このようにきちんと調べたつもりになって質問してしまうと、次回質問するときに「どうせ大したチェックしないで質問しにきたんだろ」と思われてしまいかねません。

・整理しないで質問すること
整理しないでいきなりする「エラーが起きました。どうしたらいいですか?」という質問。カリキュラムでも「応用からは必ず質問フォーマットを利用してください」という規定があるにも関わらず、何も書かずに質問する人がいます。案の定メンターから「質問フォーマットがないと答えられません」と言われ、「全然わからないから聞いてるのに冷たい」「メンターの対応が悪い」と逆ギレしている人が多い印象があります。

私がしてきた質問の例

メンターに「これだけで質問するな」と言われるのが怖いので、解決したいこと自力で調べた内容仮説と検証作業の結果は必ず書くようにしています。


質問「JavaScriptで自動更新機能実装の際のエラー」
■解決したいこと
ページを2つ開くとターミナル上では2つとも自動更新しているのにも関わらず反映されない

■自力で調べた内容
ターミナルを確認すると片方でメッセージのidが取得されていない(group_idはどちらも取得されている)

■仮説と検証作業の結果
試しに違うユーザーでログインして同じグループで投稿しても反映されず、その状態でリロードするとどちらも片方のユーザー名に戻ってしまう そうするとgroup_idしか取得しなくなった

再度メッセージを投稿すると、また片方だけでメッセージのidを取得するようになった。

→記述がおかしい?

  1. messages.js
  2. api/messages_controller.rb
  3. index.json.jbuilder

上記3ファイルを確認したが特におかしなところはなさそう

→ターボリンクスが悪さをしている?
application.jsはのターボリンクスの記述は削除済み

→ターボリンクスを無効にする他の方法

  1. Gemfile から「gem ’turbolinks’」を削除してbundle update後サーバー再起動。
  2. app/views/layouts/application.html.erb の
     javascript_include_tag や stylesheet_link_tag から
     「"data-turbolinks-track" => true」を削除する。

上記2点も実施したが変わらず


上記の改善点

  1. 欲しい回答を最初に伝えていない
    「ページを2つ開くとターミナル上では2つとも自動更新しているのにも関わらず反映されない 」
    で質問が始まっていますが、欲しい回答ではなく状況を書いているだけです。 これではどうしたいのかが分からないですね、、
    まずは「自動更新がされるようにしたい」という目的を伝えるべきだったと反省しました。

  2. 事実を書いていない
    「ページを2つ開くとターミナル上では2つとも自動更新しているのにも関わらず反映されない」というのは、そもそもが間違っていました。「自動更新している」と自分が思っていただけで、メンターにデバッグしてもらったところ「きちんとAjax通信ができていなかったのでそもそも自動更新はされていなかった」ことが判明しました。 このように、自分の思い込みで間違ったことを事実かのように伝えると、相手を混乱させてしまうので、きちんと調べた上で事実を伝えるというのが大切だと反省しました。


本日は就活セミナーがあり、職務経歴書を添削してもらいましたが、かなりの訂正が入りました。
とにかく「長い」「言いたいことが混在している」とのこと。
コードも職務経歴書も「短く分かりやすく」が大事ですね、、笑
明日から7日間はとにかく集中して個人アプリを作り上げます。