このような疑問をお持ちの方に向けて書いています。
プログラミングをしていると必ず解決が難しい問題に遭遇します。仕事でも自分で解決できない場合、誰かに聞く必要があります。
- どのくらいの時間考えてから質問すべきか
- どのように質問すべきか
- 質問のタイミングはいつがいいのか
この記事では、主に上の3つの点について解説していきます。
聞ける人が近くにいるが聞きにくいと感じている人、リモートになり質問するタイミングがわからない人など質問が苦手な人を対象としています。
僕は自分でも質問多めかなと感じているエンジニアだけど、考えて質問しているので参考にできる部分があると思います。
プログラミングの質問する前にすること
少し前に僕がツイートした内容です。5年以上の経験があるエンジニアが僕なら30分で解決できる問題に1日かけても解決できず、次の日の夕方までかかったので以下のツイートをしました。
30分で終わるバグ改修を1日かけても終わらない5年選手
わからなければ聞くが基本だけど、5年経験というプライドがあって聞けないのか?
それなら10分で聞いてなおせる1年目の方がいいよね
— マ-@駆け出してた (@Masaweb4) August 6, 2020
聞くのが苦手な人なのか、それとも5年経験しるというプライドが邪魔をして聞けないのかわからないが、このような仕事の仕方をしていると、プロジェクトに迷惑がかかっているということに気付くべき。
質問をすることもコミュニケーションのスキルに含まれると思っています。少し前に書いたコミュニケーションが必要だという記事もご覧ください。
プログラミングでわからないことは何か明確にする
わからない点があったとしても、自分で何も考えずにいきなり質問をすると失敗する可能性があるということを覚えておくといいです。
自分の中で整理できていない状態で質問をすると、聞きたい内容がまとまっていないため、質問の内容もよくわからないということになって相手に「何だこいつは?」という状況になってしまうことがある。
まずは自分がわからないことを整理して明確にすることが大事。
どのように調べたか
わからないことを調べるのは基本だが、わからないことに対してどのようなことを調べたのかチェックしておくとよい。
質問した時に、どんなことを調べてわからなかったのか相手に伝えると教える側も回答しやすいことがあります。
調べた内容をまとめる
調べた内容を簡単に箇条書きでメモっておく。もちろんPCで。メモ帳やエクセルでも何でもいいと思う。
調べた内容を整理しておくことで、後で調べたページにいき、読み直すことができるかもしれません。
プログラミングの質問をするタイミングを考える
ある程度調べて、自己解決は難しいと感じたら聞くしかないのですが、その判断が難しい。
調べる目安の時間はどのくらいか
問題を解決する難しさにもよりますが、単純にプログラミングの方法がわからない、どのようにコードを書くとよいのかわからないという内容であれば、15分を目安にするととよい。
悩んで進まない場合、進捗が悪く遅れがでることでチームの負担が増えるため、早めに聞くように言われる現場があります。
質問を誰にすべきか
質問する相手が決まっている場合はいいけど、誰に聞くかも大事で、聞いた時に嫌な顔してくる人は避けるべき。お互い嫌な気持ちになるなら聞かない方がよい。
僕の場合、プロジェクトで2人くらい聞ける人を探しておきます。
質問する相手の状況をチェック
オフラインの場合は、その人が忙しいのか余裕があるのか目に見えてわかるけど、オンラインの場合はその判断が難しくなる。
けれどもその日のスケジュールをGoogleカレンダーなどで管理しているため質問する時は空いている時間にするようにしています。
質問ができない人に起きやすい影響
チームで開発している場合は特に、質問ができないエンジニアには、いろいろと影響がでます。
仕事に時間がかかる
質問できずに悩んでいる時間が長いと開発に時間がかかることがあります。また、質問できない人の特徴としてコミュニケーションが苦手なので、チーム間での会話についていけず仕様を理解できておらず、開発したものをやり直すということが起こる場合がある。
評価が下がる
当然、チームのメンバーからは良い印象を持たれないため、失敗したときには「やっぱり」と思われてしまいます。
チームの管理をしている立場の人がヒアリングすると、メンバーの評価もよくないため、タイミングがいい時には契約が切られるということになります。
プログラミングの質問ができるようになる方法
プログラミングで問題を抱えても、比較的簡単に聞いたり聞かれたりするには以下の部分に気をつけます。
技術力をつける
質問しにくい理由の一つは、「自分が聞きたいことは知らなくて恥ずかしいことではないだろうか」という点です。
ある程度、経験や学習すると、知らなくて恥ずかしいことと、知らなくても恥ずかしくないことの違いがわかってきます。そのレベルになるまで経験や技術力を身につけましょう。
チームメンバーと良い関係を築く
一番の方法は、チームメンバーと良い関係を築くということです。
質問したり、されたりするためにはチームメンバーと良い関係を築けているかがポイントになります。たまに日常の会話やプライベートな話をできるような関係になっていれば、ちょっとした質問を気兼ねなくできると思います。
仕事だけの関係が気楽だと感じるかもしれませんが、スムーズに仕事をしていくことを考え、ちょっとしたコミュニケーションも大事にしていくことをおすすめします。
まとめ
プログラミングにおいて自分で解決できない問題が出た時の対処方法で、自分の評価も変わって来ます。
僕の現場にいるようなベテランでも質問ができずに30分の改修に2日近くかかる人もいるわけです。
そうならないために駆け出しの人もコミュニケーションのスキルをみがいて、効率的に開発できるようになるべきです。