プログラマーってコミュニケーション能力は、必要なのかな?
コミュニケーションは、苦手なんだけど僕に務まるかな…
上記のような疑問を解決します。
結論としては、コミュニケーション能力は必要です。
ネットで検索してみると「コミュニケーションが苦手な人におすすめな仕事」として、よくプログラマーが紹介されています。これは、あながち間違いではないと言えるのですが、鵜呑みにしてはいけません。
プログラマーは、「黙々とプログラムを書いていればいいんだ」と思われがちですが、基本はチームで作業することになるので、意外とコミュニケーションが必要になってきます。
私自身もコミュニケーションがかなり苦手なので、ネットの情報を鵜呑みにしてプログラマーになったはいいものの、やはりコミュニケーション能力は必要だと実感しました。その中で感じたことを紹介していきたいと思います。
この記事では、「どんな時にコミュニケーションが必要になるのか」、「どれぐらい重要なのか」など、ここら辺を解説していきます。
コミュニケーションは、チャットですることが多い
コミュニケーション方法は、大きく分けて二つあります。
・チャット ・対面で話す(zoomなどでネットを通じて会話することも含む)
上記の通りです。会社にもよると思いますが、チャットでコミュニケーションをとることが圧倒的に多いです。使用するソフトは、slackやchatworkなどですね。
同じオフィス内でも、自分の席から離れずにチャット上で不明点を聞いたり、報告などをすることになります。
対面で会話することは少ないですが、テキストで伝わりにくい事や説明が難しいことは直接話すことになりますし、ミーティングなどもあるので、全くない訳ではありません。複雑なプロジェクトになるとミーティングの数も増えることになります。直接会話をすることが少ない分、チャットで会話する量は多くなります。
仕様の不明点や修正作業で詰まっている部分の解決方法など、そのままほっとく訳にもいかないので頻繁にチャットで聞くことになります。
コミュニケーション能力が意外と必要な理由としては、「直接話すことは少ないけど、チャットを含めるとコミュニケーションを取ることは多い」からです。
「直接話すのは苦手だけど、チャットで会話する分には問題ないかなぁ」という人には、向いている仕事だと思います。
プログラマーにコミュニケーション能力が必要な理由
基本はチームで作業することになるので、コミュニケーションは欠かせません。以下がチームで開発する際にコミュニケーションが必要になる要素です。
・スケジュールの調整 ・作業の進捗報告(作業で分からないところは無いか、進捗は何%か) ・確認や情報伝達(不明点の確認やファイル修正時に他の人に影響はないかなど) ・情報の共有(プロジェクト全体に影響があることの共有など)
作業を進める上で必要になってくるプロセスばかりですね。チーム内でコミュニケーションが取れないと作業がストップしたり、取り返しのつかないミスに発展することもあります。そのため、常にコミュニケーションをとる必要があります。
また、クライアントの要望にあったシステムを開発する必要があるので、立場によってはクラアントとのやり取りも行うことがあります。要望に沿った質の良いシステムを開発するには、クライアントが何を求めているのかヒアリングする必要がありますし、こちらから積極的に提案することも重要です。
プログラマーに必要なコミュニケーション能力
プログラマーに必要なコミュニケーション能力を紹介していきます。主に以下の二つです。
理解力
仕様など作成する上での資料を見て、どのようなシステムなのか、どのように動作する機能なのか、というのを理解する力が必要になります。
現状のシステムがどんな処理になっているか把握することも重要ですし、ミーティング時には、処理内容について会話することがあります。相手の話を聞いて「ああ、あそこの処理ね。こんな感じで修正すればいいんじゃない?」という感じで、その場で理解する力が必要になってきます。
また、最初に伝えたとおりチャットでのやり取りが基本なので、テキストから読み解く力も必要になります。直接の会話より相手の意図を汲み取りづらいので難しい部分ですが、やっていく内に段々と慣れてきます。
交渉力
「仕様上は、このようになっているけど実装が難しい」など、技術的な面や工数的な面で実現が難しい場面が多々あります。そのような場合は、相手と交渉して妥協点を見つけ、お互いに良い関係性のまま作業を進められるように交渉する力が必要になります。
プログラマーにとって『仕事ができる=コミュニケーション能力』が高いではない
散々コミュニケーション能力の重要性について説いてきましたが、プログラマーにとっての優秀さは、コミュニケーション能力によって決められるものではありません。
プログラマーにとっての優秀さは、プログラミングとそれに付随するスキルによって決められます。どれだけスピーディーにこなせて、無駄がなく効率の良いシステムが作れるか、幅広い知識に精通していてどんな場面でも頼りになる、など。これらによって決められるものです。
コミュニケーションは、今までの内容が最低限できれば問題ありません。「いや、俺は誰とも話したくないんだ」という人は厳しいかもしれませんが、そうでなければ、プログラミングスキルを磨き上げることに力を注ぎましょう。
今回は、以上です。有り難うございました。