前回、質問の仕方【対話篇】をご紹介いたしました。
質問力を高めると、自分自身の成長や問題解決の速度が上がります。
それは、プログラマーとしての一部の評価を底上げしてくれます。
質問の仕方を極めると様々なメリットがあります。
詳しくは前回の【超重要】未経験プログラマーでもガンガン出世できる?絶対に身に着けたい質問の仕方【対話篇】でお話いたしましたので、まだ読んでいない方は是非読んでみてください(^^)/
今回は、【メール篇】の記事を書いていこうかと思いますメールでの質問力を身に着けるとどんなメリットがあるのでしょうか。
1.相手の時間に余裕があるときにしっかりとした回答をもらえる。
2.対話力の低い人でも回答しやすい。
3.対話力の低い人でも質問しやすい。
5.自分の頭の整理ができる
6.記録に残る
7.無駄な時間を取らない
ざっとこんな感じです。
私は対話力に自信がないのでメールに頼りっぱなしです(;^_^A
また、文章は修正ができるので、落ち着いて質問を考えることができるのもメリットですね!
ではどのようなメールを作っていけばよいでしょうか。
具体的に見ていきましょう。
目次
悪い例
まず最初に悪い例だけ見ておきましょう。
件名:質問です。
本文
現在○○エラーが発生しており作業が滞っております。
いろいろと試してみたのですがどうもうまく動作いたしません。
△△を◆◆に記述すればいいと思っていたのですが合っていますか?
毎度例が極端ですが、一部でも当てはまる方がいればこの機会に直していくとよいと思います。
では早速このメールを直していきましょう!
件名は内容がイメージできるように書く
件名で内容がイメージできると、複数人宛に送る場合も誰が回答するかも明確になったりします。
例えば、
件名:デザイン修正依頼
などの件名であれば、デザイン担当の人が優先してみるべきメールですし、
「件名:【質問】○○アイコンのクリック時に発生する○○エラーの解決方法について」
という件名であれば、○○アイコンを担当しているエンジニアが適任だな・・・とわかるわけです。
さらに、エラーの内容も簡単に入れたり、いつどこで発生している問題なのかも明確にすることで、読み手側もざっくりと内容がイメージできるでしょう。
最近は社内でメールを使わずChatworkなどのチャットアプリなどでコミュニケーションをとるケースもあります。
そこには件名が存在しません。
しかし必ず件名を載せましょう。
件名を書く場所がない場合は、
【質問】○○で発生する○○エラーの解決方法について
と、冒頭に入れておくといいと思います。
一部改修【例】
件名:【質問】○○アイコンのクリック時に発生する○○エラーの解決方法について」
本文
現在○○エラーが発生しており作業が滞っております。
いろいろと試してみたのですがどうもうまく動作いたしません。
△△を◆◆に記述すればいいと思っていたのですが合っていますか?
問題点を書く
件名の後は本文です。
本文には最初に挨拶と問題点を書きましょう。
先の問題点を書くことでベテランの先輩方だと、同じ問題に直面した!というケースもよくあります。
そうすると解決までのプロセスまで丁寧に教えてくれる場合もあるでしょう。
また何が問題なのかを明確にすることで、自分自身で気が付くこともあります。
実際に多いのが、何が問題なのかすらわからないまま質問をしてしまうケースです。
これは自分の成長にもつながりませんし、その場しのぎになってしまうのです。
質問を投げる前に一度徹底してエラーについて調べていきます。
その際、参考にしたサイトは記録しておきましょう。
最低でも2~3つは見たほうがいいです。
一部改修【例】
件名:【質問】○○アイコンのクリック時に発生する○○エラーの解決方法について」
本文
お疲れ様です。
掲題の件について質問です。
■問題点
○○画面の○○アイコンをクリックすると、下記のエラーが発生してしまいます。
~エラー文のコピペ~
そのため作業が滞っております。
いろいろと試してみたのですがどうもうまく動作いたしません。
△△を◆◆に記述すればいいと思っていたのですが合っていますか?
やりたい事(目的)を書く
これは対話篇でもお話しておりますが、事の経緯よりも、エラーの内容よりも先にやりたい事を書きましょう。
件名である程度イメージをさせていれば、やりたいことを明確にしてあげると読み手側もすんなり読んでくれます。
「対話篇」を読んでいただいた前提でお話してしまうのも読みにくいと思いますので、おさらいがてら目的の重要性について再度記述します。
プログラミングには1つの事柄を成し遂げるために様々な手法が使用できます。
そのため、目的を相手に伝えることはとても重要になってきます。
前回と重複してしまいますが、確実にその方法を行えば問題を解決できる!という魔法のようなものは存在しないのです。
○○エラーは■■と△で解決できるよ!
ということはなく、状況や使用している言語によって解決方法は様々です。
また、目的を伝えることで質問を受けた側の人は目的を達成するための基本的な構造をイメージでき、質問の回答がしやすくなります。
一部改修【例】
件名:【質問】○○アイコンのクリック時に発生する○○エラーの解決方法について」
本文
お疲れ様です。
掲題の件について質問です。
■問題点
○○画面の○○アイコンをクリックすると、下記のエラーが発生してしまいます。
~エラー文のコピペ~
■やりたい事
アイコンをクリックしたときに「こんにちは○○さん」と表示したい。
しかしエラーによって作業が滞ってしまっています。
いろいろと試してみたのですがどうもうまく動作いたしません。
△△を◆◆に記述すればいいと思っていたのですが合っていますか?
問題発生までの流れを書く
だんだんと質問を受ける側にもイメージしやすい文章になってきました。
しかし、これだけだとまだ解決には至りません。
どういった経緯でそのエラーが出たのかを書きます。
これには少しポイントがあります。
・実際のソースコードを載せる
・問題発生のタイミングを書く
・できるだけ詳細に書く
詳しく見てみましょう。
実際のソースコードを載せる
一番いいのはソースコードを載せてしまうことです。
しかし、ただべた張りされても困ります。
PCには様々な機能があります。文字を強調したり画像にマーカーを引いたりできます。
実際にどの部分で困っているのかを強調していきましょう。
問題発生のタイミングを書く
ソースコードを載せたら、どこまでは動作が正常でどこからがうまくいっていないのかを明確に書きます。
これは、エラーが出てすぐ質問するということをしていると不可能なことになります。
この問題発生のタイミングを自分で見つけなくてはなりません。
意外とこういう細かいことをやらずに質問している人も多く見かけます。
これは私もそうだったので気持ちはわかります(笑)
なんか焦りますよね(-_-;)
どうやって見つければいいのか・・・
正直一つ一つ見ていくしかありません。
Aは動作OK。Bも動作OK。Cも動作OK・・・
と、その機能のスタートから確認するのがいいでしょう。
また、マメに動作確認をして実装を行うことも重要です。
これはまた別のタイミングで記事を書いていこうと思いますが、常日頃からテスト確認をしておけば問題発生のポイント見つけるのは容易になりますので意識してみてください。
できるだけ詳細に書く
事の経緯は出来るだけ詳細に書いた方がいいです。
といってもソースコードを載せているので、実際のところそれがすべてではあります。
しかし、ソースコードだけで相手に伝わらない部分もあります。
そんな時はしっかりと事の経緯を文面でも伝えていきましょう。
一部改修【例】
件名:【質問】○○アイコンのクリック時に発生する○○エラーの解決方法について」
お疲れ様です。
掲題の件について質問です。
■問題点
○○画面の○○アイコンをクリックすると、下記のエラーが発生してしまいます。
~エラー文のコピペ~
■やりたい事
アイコンをクリックしたときに「こんにちは○○さん」と表示したい。
■問題発生までの流れ
~実際のソースコードをコピペ~
①コードのマーカー部分で、「変数($user_name)」を使わないと「こんにちはさん」とエラーにならず画面に表示されることを確認しました。
②コードのマーカー部分で、「変数($user_name)」を「固定値(ことだけ)」に変えてテスト動作を行ったところ、「こんにちはことだけさん」と画面に表示されることを確認しました。
③コードのマーカー部分で、「変数($user_name)」を記述して画面表示を行ったタイミングでエラーが発生いたしました。
エラーによって作業が滞ってしまっています。
いろいろと試してみたのですがどうもうまく動作いたしません。
△△を◆◆に記述すればいいと思っていたのですが合っていますか?
実際に試したことを書く
私はこれが苦手です(笑)
エラーを解決するためにひたすらに調べて、たくさん試してしまうことがあって、そうするとなにしたかわからなくなる・・・
なんてことはよくありました(-_-;)
本当に良くないので皆さんはマネしないでくださいね・・・
調べて試したことというのは、単純にサイトに載ってるコードの例をコピペしたことを言ってるわけでありません。
サイトに載ってるコードは、その時の状況や環境によって当てはまるときと当てはまらないときがあります。
ですので、サイトに載っているコードを自分の環境に置き換えて試していかないといけません。
よくありがちなのが、「○○サイトに載っていたコードをコピペして使ったのですがうまくいきません。」
と、すべてコピペしたことを試したと思ってしまうことです。
エラーの解決に時間がかかると焦ってそういう行動に出ちゃいますよね・・・
しかしそれではいけません。
落ち着いて自分の環境に合わせてコードを書いていきましょう。
一部改修【例】
件名:【質問】○○アイコンのクリック時に発生する○○エラーの解決方法について」
お疲れ様です。
掲題の件について質問です。
■問題点
○○画面の○○アイコンをクリックすると、下記のエラーが発生してしまいます。
~エラー文のコピペ~
■やりたい事
アイコンをクリックしたときに「こんにちは○○さん」と表示したい。
■問題発生までの流れ
~実際のソースコードをコピペ~
①コードのマーカー部分で、「変数($user_name)」を使わないと「こんにちはさん」とエラーにならず画面に表示されることを確認しました。
②コードのマーカー部分で、「変数($user_name)」を「固定値(ことだけ)」に変えてテスト動作を行ったところ、「こんにちはことだけさん」と画面に表示されることを確認しました。
③コードのマーカー部分で、「変数($user_name)」を記述して画面表示を行ったタイミングでエラーが発生いたしました。
■試したこと
①ちゃんと変数に値が入っているか確認しました。
②○○サイトに載っていた書き方を環境に合わせて真似して書きました。
③キャッシュのクリアをしてからリロードを行いました。
エラーによって作業が滞ってしまっています。
△△を◆◆に記述すればいいと思っていたのですが合っていますか?
参考にしたサイトを書く
これはシンプルです。
自分が参考にしたサイトのURLをそのまま載せましょう。
理由としては、先輩もわからなかった場合一緒に考えてくれます。
新米プログラマーよりも参考にしたサイトの理解は濃厚です。
そのため、自分の見落としや理解不足のところを補足して解決に導いてくれることがあります。
また、良い参考サイトを送ってくださることもあります。
その時に、自分が参考にしたサイトを送られてきたら、それこそタイムロスですし、欲しい答えがもらえません。
意外と忘れられがちですので、必ず載せるようにしましょう。
一部改修【例】
件名:【質問】○○アイコンのクリック時に発生する○○エラーの解決方法について」
お疲れ様です。
掲題の件について質問です。
■問題点
○○画面の○○アイコンをクリックすると、下記のエラーが発生してしまいます。
~エラー文のコピペ~
■やりたい事
アイコンをクリックしたときに「こんにちは○○さん」と表示したい。
■問題発生までの流れ
~実際のソースコードをコピペ~
①コードのマーカー部分で、「変数($user_name)」を使わないと「こんにちはさん」とエラーにならず画面に表示されることを確認しました。
②コードのマーカー部分で、「変数($user_name)」を「固定値(ことだけ)」に変えてテスト動作を行ったところ、「こんにちはことだけさん」と画面に表示されることを確認しました。
③コードのマーカー部分で、「変数($user_name)」を記述して画面表示を行ったタイミングでエラーが発生いたしました。
■試したこと
①ちゃんと変数に値が入っているか確認しました。
②○○サイトに載っていた書き方を環境に合わせて真似して書きました。
③キャッシュのクリアをしてからリロードを行いました。
■参考サイト
URL:~~~~~~~~~~.~~~.com
URL:~~~~~~~~~~.~~~.com
URL:~~~~~~~~~~.~~~.com
以上、上記内容にて作業が滞っております。
ご多用のところ恐れ入りますが、ご教授いただけますと幸いです。
何卒よろしくお願いいたします。
自分の理解を確かめる
問題が解決した後のお話になります。
問題解決の過程で、完全に理解できて次回に活かせる知識として身についたのであれば、スルーでOKです。
しかし、
・不安が残る・・・。
・解決したけどなんで解決できたのかわからない・・・
などと、自分のためになっていないケースもあります。
そんな時は、解決した後に、必ず自分の理解を確かめましょう。
例
先ほどはありがとうございました。
おかげさまで無事エラーの解決ができました。
先ほどの○○の部分の理解がまだ足りておらず、なぜ解決できたのかが完全にはわかりませんでした。
お手すきの際で構いませんので下記質問についてもご教授いただけますと幸いです。
○○の部分はどうしてこのような記述になったのしょうか?
以上、何卒よろしくお願いいたします。
や、
自分は○○と理解したのですが、あっていますか?
などと、自分の理解を確認したり、不明点はわかるようにしておきましょう。
こうすることで、自分自身の成長に大きくつながっていきます。
おまけ
△△を◆◆に記述すればいいと思っていたのですが合っていますか?
についてですが、これはよくない質問の仕方です。
というのも、合っているのか合っていないのかが知りたいわけではありません。
問題をどうやったら解決できるかが知りたいのです。
考えすぎて細かいところに執着しすぎているとこうなることがあります(私だけ?笑)
質問する際は、必ず自分自身が目的を明確にすることが大切です。
一呼吸おいてから質問を考えるように心がけるといいかもしれないですね(^_-)-☆
まとめ
いかがだったでしょうか。
思ったより長文になってしまいますよね・・・
しかしこれはすべて大切な情報になります。
一つでもかけてしまうと、その分余計なコストがかかってしまい、結局時間がかかります。
個人的には、後から余計なことが増えてしまうのは好ましくないと考えています。
特にプログラミングの世界では、その小さな余計なことは、後々大きな余計なこととなって降りかかってくることがあります(笑)
日ごろから気を付けておきたいです。
この記事を読んで、参考になったと思っていただけると幸いです。
また、これからプログラマーを目指す人は、学習を始める前に覚えておくといいと思います。
独学の私でも結局わからないことはネットの掲示板だったり無料のコミュニティなどで質問することもありました。
相手のことを思いやり、相手の時間を無駄にしないことを心掛けるととても良い質問ができるようになると思います。
今回は【超重要】未経験プログラマーでもガンガン出世できる?絶対に身に着けたい質問の仕方【メール篇】でした!
最後まで読んでいただきありがとうございます(^^♪
それでは!