プログラマーに必要なコミュニケーション力プログラマーに必要なコミュニケーション力ツイート仕事ではコミュニケーション力が必要だといわれることが多いですが、プログラマーにもコミュニケーション力は必要でしょうか?プログラマーはパソコンに向かってプログラムを書いていくという仕事を行いますので、あまりしゃべらず、コミュニケーションをとる必要がないと思うかもしれませんが、全く会話をしなくていいというわけではありません。会社にはSEや同僚のプログラマー、後輩や上司、デザイナーもいますし、担当する顧客や取引企業がつく場合もあります。関係する人間とコミュニケーションをとりながら仕事を進めることが必要になりますので、コミュニケーション力というのは必要になります。コミュニケーションといっても漠然としているかと思います。ここでは、プログラマーにとって必要なコミュニケーション力とは何かをご紹介したいと思います。会話を理解する力まずSEとプログラマーの仕事内容が分かれているような会社の場合、プログラマーはSEと連携しながら仕事を進めていく必要があります。SEは顧客のシステムやプロジェクトの仕様を決めて、プログラマーと打ち合わせをします。このときにSEがまとめた仕様を理解する必要があります。わからない部分があれば質問して開発する内容を明確にしておく必要があります。わからない部分をそのままにしておくと、できあがったシステムがデタラメな動作をしてしまうことにもなりかねませんし、他と連携するような機能を持つ部分であれば、正しく連携できない可能性も出てきてしまいます。これまで経験したことのないようなスキルや知識が必要なものであっても、臆することなく質問したり調べたりして解決していく必要があります。どのようなものを作ればよいかを正しく理解する力と、わからない部分をそのままにせず、わかるまで質問したり明確にする力が求められます。動作するものを作るために必要な力です。実際にプログラムを開発する段階に入ってくると、今度は一緒にプログラムを書いている同僚や先輩、後輩と相談しながら進めることも増えてきます。うまくプログラムを書くことができないような場合は仲間に聞いて解決することもあります。自分が書いているプログラムが同僚や後輩が書いているプログラムから呼び出されて使用されるような場合は、どのような形で呼び出すのか、そのときに使うメソッドやパラメーターはどのようにするか?といったことも相談しながら決定していく必要があります。操作画面のデザインと関連するような場合には、プログラマーではなくデザイナーと話をして進めることもあります。チームでプログラムを構築していく場合には、メンバーと相談して、関連するプログラムの整合性をとりながら進めていく必要があります。考えていることや起こっていることを伝える力プロジェクトが開始され、プログラムを書き進めていくと、最初に決定した仕様ではうまくいかないという場面が出てくることがよくあります。実際にプログラミングを進めて具体的なものができあがってくると、当初の予定とは違う部分も出てくるようになり、どうしても仕様をもう一度すり合わせたり、関係者とソース(プログラム)の見直しを進める必要が出てきます。見直しを進めずにそのまま進めてしまうと、大きな不具合を作りこんでしまったり、本来なら軽い処理になるはずが重たく使い物にならないような処理になってしまったり、セキュリティホールを作りこんでしまったりなど、影響が大きくなってしまいます。コーディング(プログラムを書くこと)をしていて気がついた場合には、なるべく早い段階で関係者とシェアをして、軌道修正をしていく必要があります。プロジェクトを進めていくと最終的な締め切り(納期)以外にも、小さな締め切りをいくつか迎えることになります。プロトタイプ(試作品)を作って顧客に見せるための締め切り、区切りの良い段階で進捗状況を顧客に伝えるための締め切り、動作確認をしてもらうための締め切り、不具合を修正して確認してもらうための締め切りなどがそうです。これらの締め切りに間に合うように作業を進めていくのですが、どうしてもプログラムを作成・修正する量が多いような場合には、締め切りに間に合わないようなこともあります。締め切りに間に合わないことになれば、顧客を含め社内の関係者など迷惑がかかる範囲が広がってしまいます。締め切りに間に合わなさそうであれば、事前に関係者に伝わっていれば大きな混乱を避けることができます。わかっていれば締め切りを延ばしてもらうということは比較的やりやすい作業になるのですが、ギリギリのところや締切当日にやっぱり間に合いません・・・、とはなかなか言いにくいものですし、印象も悪くなります。締め切りに間に合う場合でも間に合わない場合でも、事前に状況を関係者に伝えて全体の進捗状況がシェアできていることが大切です。規模が小さいい会社だと、プログラマーがSEと兼業でシステムやソフトウェアの開発を担当することがあります。1人でプログラマーもSEもこなす、ということです。このような場合にはプログラマーが直接顧客やユーザーから要望を聞くことになります。顧客やユーザーがどのようなシステムやサービスを望んでいるのかをくみ取る力と、それを仕様にまとめプログラムに落とし込む力が必要になります。プログラミングだけではなく、サーバーの知識やアルゴリズムの知識などが必要となることもあり、かなり幅広い知識を持っていないとうまく対応できません。「こんなことをしたいんだけど、できるかな?」と顧客から言われたら、それを実現するための方法を考え、どれくらいの工数でできるかを見積もれるようになることが必要です。規模が小さい会社に入社したからといって、いきなり最初から一人で顧客と打ち合わせを行うということはありませんので安心してください。最初は先輩とともに顧客先に行って、徐々に経験を積んで3年〜5年ほど経つとできるようになってきます。複数人でプロジェクトを進めることになった場合には、関係者と情報をシェアをすることになります。顧客からの要望を仕様としてまとめ、それをさらに関係者(他のプログラマー)にわかりやすく伝える必要があります。会話を理解する力」と逆の力が必要になります。理解する側から伝える側になります。