「エンジニアはコミュニケーション能力が大切だ」と聞いたことはありますか?
コミュニケーション能力とは具体的にどのようなスキルを指すのか、そしてなぜエンジニアにとってそれが重要なのかを考えてみました!!
コミュニケーションとは?
コミュニケーションとは、「自分の頭の中にある考えを相手に伝えること」です。
私たちは普段の会話を通して、自分の考えを相手に伝えています。日常のコミュニケーションを思い浮かべると、簡単そうに感じるかもしれません。
しかし、「相手が知らないこと」を伝えるときは、コミュニケーションは一気に難しくなります。自分だけが知っている概念を相手に理解してもらうことは、とても難しいし重要です。コミュニケーションスキルが不足していると、円滑な意思疎通ができないだけでなく、お互いにストレスを感じるようになったりネガティブな感情を生む原因にもなりかねません。
コミュニケーションスキルはなぜ重要なのだろうか?

仕事をしていると、次のように「相手が知らないこと」を説明しなければならない状況が多くあります。
- 業務を引き継ぐとき
- 他の部署と協力するとき
- 業務に関するアイデアを提案するとき
このような状況でコミュニケーションスキルをうまく活用できれば、相手に自分の考えをより的確に伝えることができ、知識共有にかかる時間を短縮し、業務の効率を最大化することができます。
では、簡単な状況を想定しながら、どのようにコミュニケーションスキルを活用できるのか、そしてなぜそれが重要なのかを見ていきましょう。
1️⃣ Onboarding
一般的に、会社に入社すると「Onboarding」と呼ばれる新入社員向けの研修を受けます。
その過程で、既存の業務内容(R&R)やシステム構成など、全体的な業務プロセスについて説明を受けます。
オンボーディングは多くの場合、口頭で行われることが一般的です。
しかし、コミュニケーション手段の一つであるドキュメントをうまく活用することで、そのプロセスをより効率的に進めることができます。
整理されたオンボーディングドキュメントがあれば、一人ひとりが口頭で説明する代わりに、文書を通じて新入社員が業務を理解できるようになります。
その結果、同僚は自分の仕事に集中でき、生産性の向上につながるでしょう。
もちろん、このような成果を得るためには整理されたドキュメントが必要です。
もし文書の内容が不十分であれば、情報が十分に伝わらず、説明にかかる時間も長くなってしまいます。
そのため、このような内容をうまくまとめるためには、コミュニケーションスキルの中でも文書化というスキルが重要になります。
2️⃣ 採用 Process
採用プロセスを進める中でも、コミュニケーションスキルを活用することができます。
履歴書を作成するということは、自分という人材を会社に「販売」するカタログを作るようなものです。
限られた数枚の紙の中で自分を詳しく表現しつつ、要点を的確に伝えなければならないため、文書化スキルが求められます。
履歴書を読む人が内容を理解しやすいように配慮することも大切です。
そのためには、整ったフォーマットを使用すること、読みやすいフォントを選ぶこと、適切に段落を分けることなどが基本です。
また、文章力そのものも非常に重要です。
さらに、面接の場では会話スキルが必要になります。
面接官が応募者について知っている情報は、提出された履歴書や添付資料の内容に限られています。
つまり、面接官は応募者のことを十分に理解しているわけではありません。
自分の経験や考えをできるだけ正確に伝えることで、より正しい評価を受けることができます。
そのためには、会話の構成をしっかり設計するなど、コミュニケーションスキルが非常に重要です。
たとえば、自分が担当したプロジェクトについて説明する場合、まずは背景やテーマなどを伝え、どのようなプロジェクトなのかを面接官に理解してもらう必要があります。
全体像をイメージしやすくすることで、話の内容がより伝わりやすくなります。
優れたコミュニケーションスキルを持っていれば、面接の場で自分の強みを効果的にアピールすることもできるでしょう。
3️⃣ コードを書くときのコミュニケーション

コードを通じたコミュニケーションにおいても、スキルが求められます。
一般的に、個人でサイドプロジェクトを進める場合は、自分が書いたコードを自分だけが使用します。自分で書いたコードであれば、その意図を理解しているため、問題なく目的に沿って利用することができます。
しかし、チームでの開発となると話は違います。コードを利用する同僚は、それぞれのクラスやメソッドがどのような意図で書かれたのかを知らない可能性が高いです。
そのため、コードの意味をより明確に伝えるために、コメントを付けたり、開発内容をドキュメント化したりします。もちろんそれも重要ですが、さらに一歩進んで、コードそのものから意図が伝わるように工夫することが重要です。コードを読む人が意図を理解しやすいように配慮することが、優れたコミュニケーションの一部なのです。
では、具体的な例を見てみましょう。
// 0 = なし、1 = あり
int isExistUser(long userId);
boolean isExistUser(long userId);
2つのコードのうち、どちらの方が意図がより伝わりやすいでしょうか?
コメントのおかげで、1つ目のコードでも意図を把握することはそれほど難しくないように見えます。
しかし、2つ目のコードはコメントを読まなくても、メソッドのシグネチャだけでその役割を理解できるという大きな利点があります。メソッド名をそのまま読むと「この userId を持つユーザーが存在するか?」という問いに対して、はい/いいえの形で答えを返していることがわかります。そのため、メソッドの入力値と出力値の意図を十分に推測することができます。
一方、1つ目のコードの戻り値の範囲は、メソッド作成者が任意に決めたものであるため、理解しづらいという問題があります。0 が false、1 が true を意味しているとしても、それ以外の数値が返される可能性が残っています。しかし、戻り値の型が boolean であれば、はい/いいえ以外の値が返る可能性を根本的に排除することができます。
また、このようなコードの違いは、メソッドを利用する側のコードにも影響を与えます。1つ目のコードと2つ目のコードを呼び出す側の違いを見てみましょう。
if (isExistUser(userId) == 1) {
// ユーザーが存在する
} if (isExistUser(userId)) {
// ユーザーが存在する
}
1つ目のコードは、保守を行う際に「1」が何を意味しているのかが明確ではありません。つまり、そのコードを継続的にメンテナンスする場合、「1」がどんな意味を持つのかを調べなければならないという手間が発生します。この値を定数として管理すれば多少は可読性が向上しますが、その定数自体を管理する手間が増えてしまいます。
自分が書くコードの意図をどう伝えるかを意識して、より読みやすく書こうとする努力は、他のエンジニアが自分のコードを理解し、利用するまでの時間を短縮するための配慮です。そしてこれは、相手が自分の意図を理解するまでにかかる時間を減らすという点で、立派なコミュニケーションスキルであると言えます。
4️⃣ 技術共有
エンジニアは、カンファレンスや社内セミナーなどを通じて知識を共有する機会が多くあります。
新しい技術を紹介する場合は、まず「これまで使っていた技術にはどのような課題があったのか」といった背景を説明し、その技術がなぜ必要なのかを聴衆に納得してもらうことが大切です。
そのうえで、「この技術を使うことで、どのような問題を解決できるのか」といった内容を発表することで、聴衆がより深く理解できるようになります。このように、自分の考えや意図をわかりやすく伝えるためには、コミュニケーションスキルが欠かせません。
このような形で、コミュニケーションスキルを活かせる状況は実にたくさんあります。
5️⃣ 上下関係
ビジネスにおける上下関係では、相手の気分を害してしまうようなコミュニケーションが発生することがあります。
たとえば、仕事を頼む側と頼まれる側の間にも利害関係に基づく上下関係が存在すると考えられます。また、会社の中には発言力の強い部署と弱い部署があり、そこでも目に見えない上下関係があることがあります。このような関係は表面上は見えなくても、各部署のメンバーはそれを意識していることが多く、コミュニケーションの取り方によっては相手を不快にさせてしまう可能性があります。
だから、コミュニケーションを取るときは、相手と自分の関係性を意識しながら、「どうすれば相手に誤解されず、素直に受け入れてもらえるか」を考えて言葉を選ぶことが大切です。
6️⃣ 強圧的なコミュニケーション
自分の思い通りに物事を進めるために、立場や権限などを利用して強圧的にコミュニケーションを取ってしまうケースがあります。
しかし、良いコミュニケーションとは、相手が自発的に自分の意図に沿って行動できるように導くことです。
強圧的な方法でコミュニケーションを取ると、相手は納得していない状態で行動することになり、結果的に効率が低下してしまいます。そのため、相手に自分の意図に沿って行動してもらうためには、なぜそうすべきなのかを納得してもらうこと、そして自分の意見に共感してもらえるよう十分な根拠を示して説得することが大切です。
また、自分が「正しい」と強く信じていることであっても、その主張を支える根拠が十分でなければ、その方法自体が非効率的である可能性もあります。相手を納得させる過程の中で、自分の主張の矛盾や改善点に気づき、より良い方向へ意思決定を導くきっかけになることもあるでしょう。
このように、コミュニケーションスキルはさまざまな場面で役立つ重要な能力です!
