プログラマの仕事って、「一人でもくもくと PC に向かって作業をする」というイメージを持っている方って少なくないと思いますが、実際はそうでもなくて、コラボレーションする頻度が増えているため、「人と関わらない仕事」と思って就職するとギャップを感じるだろうなと思ったので記事にしてみました。

開発規模が大きくなり、求められるスキルが変わってきた

私が IT エンジニアとしてデビューした頃はまだ小規模なプロジェクトがわりとあり「 プロジェクトのエンジニア担当が自分だけ 」ということが普通にありました。

まあこれは手掛けるプロジェクト、会社規模によってぜんぜん違うと思います。 今でも一人プロジェクトを持っている方はいらっしゃるでしょうしね。

しかし、業界的に見ても、次第に開発規模が大きくなってきており、その辺の事情もけっこう変わってきたと感じます。


先日、札幌で有名なある企業のエンジニアさんと話をする機会がありましたが、その方も

エンジニア担当が自分だけという「一人プロジェクト」はまずなくて

「チームで開発することが主流になってきた」

ということを言っており、私の感覚とほぼ同じだな、ということを確認しました。

これは 「自分のペースでコツコツ」ではなくて、チームという粒度で開発が進んでいく スタイルに変わってきていることを意味しており、 技術力はそこそこでも、しっかりコミュニケーションできることが強く求められる ようになってきています。

そして同時に、先程の方がいうには「超できる人が一人で引っ張っていくプロジェクト」も最近では求められなくなってきている、ということでした。

昔経験した一人プロジェクト

私の過去担当した経験したプロジェクトを思い出してみます。

初めて担当したプロジェクトは、「営業と自分」だけでした。

営業から E メールで連絡が来て、要件を伝えられ、疑問があれば質問したりしながら開発を進めて、できあがったら提出やリリースをする、という繰り返しでプロジェクトが進んでいきました。

引き継ぎ資料を見たり、コードを読んだり、基本は一人で PC に向かっているということが多く、タバコ休憩の時に同僚と少し話をする、というレベルだったと思います。

コラボレーションが必須の現プロジェクト

今はチームで開発をしていくスタイルが主流になってきました。

私が現在関わっているプロジェクトは、多いときでサーバエンジニアだけで 20 名くらい、という規模です。

その個々人がそれぞれのタスクをこなしていくため、リーダーでも常に全体を把握するのは難しいですね。

後でまとめてマージをドーンは、当然うまくいきませんし、「よくわからないところは分かる人にヘルプを求めながら開発」するほうが圧倒的に効率がいいのため、開発中も常にチャットを開いて、チームメンバーの発言にある程度注意を向けながら開発しています。
いつの間にかこれが当たり前になりました。

チャットがの流れが早いときはすべてを見きれない流量となるため、速度感は 10 年前と比較になりません。

また、コードも GitHub でプルリクエストをして、複数人の目を通します。

独りよがりなコードは相当数のマサカリが飛んできます。

自分の仕事をすすめるにも、コミュニケーションは必要だよね

私がゲーム系のプロジェクトが多い、というのがあると思いますが、仕事を進めるうえで必須となる 仕様書、指示書といったものも、時代とともにだんだんといい加減になって きています。

つまり、あいまいなままで仕事をスタートさせなければならないというケースが増えています。

けれども、プログラミングって曖昧なままではできないんですね。

いい加減な仕様書が降りてきた時にできることは 2 つあります。

一つは「こうだろう」と自分なりの解釈で進めていくこと。

もう一つは、指示者に意図を確認して、意思疎通を取ってから仕事を進めることです。

どちらがいいかというと、とうぜん後者で、「こうだろう」という自分の勝手な解釈が、そのまま通用することはまずありません。


経験が浅いと、詰めるべきところが把握できずに、提出されたものが見当違いということがよくあるのですが、そんなとき私は「 大阪に行きたいのに、東北へ向かって進みだしとしたら、いつまでたっても目的地たどりつかないよね 」というたとえ話をしてきました。

スタートする前に、ゴールを確認することは必須なのですが、 「人と関わりたくない」があまりにも強いとここを避けてしまって大変な目に合う事が少なくありません。

「あれ? ちょっと違うかも」と感じた時点で速やかにヒアリングすること、できること、そういう姿勢を持っていて、そういう労力を惜しまないこと、たとえ相手が「ちょっと苦手なタイプ」でも、です。

コミュニケーションスキルも磨けば光る

IT エンジニアには「技術が好きだけれども服装に無頓着、というか不潔」みたいな方や、「 PC と向かい合うのは好きだけれども、リアル対面で話をするのが苦手で相手の目を直視できない」みたいな方も稀にいますが、プログラマだからといって、いつも機械を相手に仕事にしているわけではないので、これから IT 系を目指したい方はそのあたりの現場のリアルな感じを知らないと、辛くなる場面も増えていると思います。


そして、 コミュニケーションは、能力 であるため、 磨けば、光 ります。

逆に言うと、苦手だからといつまでたっても磨かなければ、光ることもない、ということです。

人付き合いが苦手、関わりたくない、というのを全面に出すのは、やっぱり生きていく上で摩擦が大きいです。

けれども、伝え方の工夫などで、接触を減らすことは十分にできると思います。

例えば、要件を書いた紙を渡すなり、ですね。

また、事前準備に少し時間をつくかいり、「前提条件」や「疑問点」「質問点」を分かりやすく要点を絞ってから話しかけるようにすると、邪険にされないということもあります。

苦手であっても、誰とも関わらずに生きていくことは難しい以上、コミュニケーションのコツを掴んで慣れるしかないですよね。