【キャリア】エンジニアが20代で身につけるべきこと

【キャリア】エンジニアが20代で身につけるべきこと

終身雇用が崩壊し雇用が流動化している現在、ICTエンジニアも転職を前提にキャリアを描き、必要な能力を身につけていく必要があります。

また、ICT技術の発展で、開発に関する環境も大きく改善されてきました。例えば統合開発環境やフレームワーク、OSS、パブリッククラウドといったものの利用が進んできており、以前に比べてより少人数で高機能なソフトウェアの開発が可能になっています。

その反面、競合も増えてきており、かつての作れば使ってもらえる時代から、顧客にしっかりと価値提供できなければ、使ってもらえないという時代になっています。

以上のことより、開発効率や品質、さらにはビジネスの成功可否に対して、エンジニア個人の能力が与える影響が大きくなっています。そのため、エンジニアに対して、より多くの役割、スキルが求められているのです。

ICTエンジニアに必要な能力の中でも、特に20代の若いうちに身につけておかなければ、後で身につけるのが難しいものもあります。
今回は特にICTエンジニアが若いうちに身につけておくべき能力、4つを説明します。

実装能力

一般的にもよく言われている話ですが、プログラミングの実装経験は出来るだけ早いタイミングで積んでおいた方が良いとされます。理由としては、大きく以下の二つ。

実装能力を身につけるべき理由
・プログラミング実装能力は遅くなるほど身につけることが難しい。
・ICTエンジニアとして、プログラミング実装能力は大いに役立つ。

プログラミング実装力は遅くなるほど身につけるのが難しい

プログラミング実装は専門性の高い業務なので、頭がフレッシュな若いうちの方が身につけるのが容易です。近年の開発環境の改善、フレームワーク、SaaSなどの登場で、以前に比べてハードルは下がりましたが、依然としてプログラミングを学ぶイニシャルコストのは非常に高いです。

私の新卒入社時代、同期にはプログラミング経験のない文系も多くいましたが、教育と実務を通じて(地獄を見つつ)短期間でプログラミングを習得していました。
一方で、マネージャーを務めていた際に、新卒8年程度の実装経験のないメンバーがおり、実装能力を身につけられるよう実装業務にアサインしましたが、中々苦手意識はなくならず、最小限の実装はできるようになったものの、最後まで苦手意識は残ったままでした。

これが30半ばを過ぎてくると、学習のハードルはさらに上がりますし、一般的には会社でも中堅社員となってくるため、会社側としても育成のために実装案件にアサインというのも難しくなり、学習の機会事態も減っていってしまいます。

また、採用の観点からですが、やはりICT系の組織で人員を取る際には、実装経験の有無は非常に気になります。面接でも必ず実装経験の有無を聞いておりました。もちろん、実装経験がなくとも設計やマネジメントの能力がしっかりと伴っていれば問題ありませんが、採用するかどうかのボーダーラインにいる場合には、大きく判断に影響を及ぼしていました。

ICTエンジニアとしてプログラミング実装能力は大いに役立つ

ICTエンジニアでも、アーキテクトやPMなど上流工程の担当になればプログラミング実装自体は不要ですし、事実プログラミング実装経験がなくても優秀なアーキテクトやPMも多くいます。

ただ、プログラミング実装を経験することで、ソフトウェアの動く仕組みを深く理解することが出来ますし、プロジェクトで実装者から課題が上がった際に、理解が容易になり課題解決にも大いに役立つことがあります。

実際のプロジェクトでのよくある話ですが、実装経験のないプロパー社員がPMやアーキテクトを務め、実装をパートナーが担当する場合に、よくトラブルが発生します。
実装経験がないプロパーの場合、実装の難易度やリスクを理解できていないことが多く、パートナーの言われるままに工数増を受け入れてしまうことがありました。逆にパートナーの忠告を聞かずに課題を放置した結果、後で大きな問題に発展することもありました。

あとは感情的な面になりますが、プログラミング実装者はプログラミング実装スキルの高いエンジニアをリスクペクトしますし(設計能力ももちろんですが)、逆に実装スキルのないエンジニアは馬鹿にされてしまうリスクもあります。

アーキテクトにせよPMにせよ、ソフトウェア開発に関わる以上、プログラミング実装経験はあることが好ましいと言えます

コミュニケーション能力

ソフトウェアを開発する際には、多くのステークスホルダーとのコミュニケーションが必要となります。
例えば、プログラミング実装担当者であったとしても、少なからずPMやPLとのコミュニケーションは必須ですし、工程が進めば試験担当者とのコミュニケーションも必要となります。

さらには、冒頭に記載の通り、近年プロジェクト人員は減ってきており、エンジニアに複数の役割を求めることが多くなってきています。実装者が直接クライアントと仕様の詳細をすり合わせたり、上位マネジメントへ直接報告を行うことも増えてきています。

以上のような背景から、ICTエンジニアにとってコミュニケーションスキルはもはや必須の能力と言えます。

私の過去にいた会社でも、長年プロジェクト内で実装や設計のみを担当し、外部とのコミュニケーションの経験を積んでこなかったエンジニアが多数いました。30を過ぎてもコミュニケーション能力がないため、外部ステークスホルダーとの調整やマネジメントを任せることができず、活躍の幅を広げることができなくなってしまっていました。

マネージャーを務めていた際、新卒のメンバーが入っが配属されたときには、実装経験と外部とのコミュニケーション経験を積ませるため、最初は極力小規模のツール開発や、少人数のPoCプロジェクトなどにアサインするようにしておりました。社外のクライアントとまでは行かなくとも、最低限、他の部門の関係者とのコミュニケーションを取らせることが好ましいと思います

自走する能力

冒頭に記載の通り、開発環境の変化により、プロジェクトの人員は減り、エンジニア個人に求められる役割がより大きくなっています。また、競合の増加から、開発スピードや製品の品質がより重要になってきています。

以上のような背景から、かつてのプロジェクトの様にPMがマイクロマネジントしていては、工数的にもスピード的にも難しく、個々のエンジニアが自分で考え判断し、課題を解決していくことが必要となっています。

ここでも過去の業務経験での事例ですが、特定の業務に長年アサインされ続け、自身で考えたり判断する機会を与えられなかったエンジニアが、言われたことしかできない、いわゆる「気の利かないエンジニア」になっていました。そういったマインドは歳を重ねるごとに変えるのが難しくなって行きます。
特に高い技術力でもあれば別ですが、そうでなれば使いづらくアサインに困るエンジニアとなってしまい、活躍の幅が大幅に限定されてしまいます。

採用の際にも、こういった能力や経験は必ず確認するよにしています。過去の経験の中で、自分で自発的に課題を見つけて解決したか、自分で考えて判断をしたかという点を、質疑の中で確認します。

学ぶ能力

ICT技術の発展も激しく、ICTビジネスも加速している中、必要とされる技術や開発手法なども大きく変化し、選択肢も非常に多くなってきています。そんな中、特定に技術のみを使い続けるというのは難しく、必ず長いキャリアの中で新しい技術や手法をまなばければならない機会がやってきます。

具体的な例としてWebアプリのアーキテクトの場合、「LAMP」「Ruby on Rails」「Java SpringBoot」「nodejs」「ASP.Net」と、ざっと思いつくだけでもこれだけあります。例え同じ会社でずっと働いていたとしても、利用しているアーキテクトが古くなれば刷新する機会はあります。

採用の観点からも、面接の際、自社で利用している技術にマッチしているかはある程度見ますが、それ以上に新しい技術を学んで習得した経験があるかというのを、より重視して見るようにしています。
例え現状スキルがマッチしていても、将来的に利用している技術が変わることもありますし、何より新しい技術を使ったチャレンジをする機会も多くあり、その際に新しい技術を抵抗なく受け入れ学ぶ能力が大いに役に立ちます。逆にスキルがマッチしていなくても、過去に新しい技術を学んで習得した経験が多くあれば、入社後に素早くキャッチアップしてくれると判断します。

私自身、過去に3回転職してきた中で、毎回利用する技術が変わってきています。
「オンプレJavaアプリ」⇨「LAMP+自社データセンター」⇨「ASP.Net+Azureクラウド」⇨「Ruby on Rails+AWS」
といった感じです。
直近2回の転職では、技術のキャッチアップは可能かという質問をよく受けましたが、過去に新しい技術にチャレンジした経験を話し、胸を張って「キャッチアップ可能です」と答えることが出来ています。

まとめ

以上、ICTエンジニアが学ぶべき4つの能力について説明しました。
これら4つに共通するのは、いずれも歳をとってからは身につけるのが難しいということです。

私もマネージャーとして、新卒や若手の社員に対してはキャリア面談、1on1や業務アサインを通じて、これらの能力を身につけられるよう心がけております。

過去の経験の中で、これらの能力を身に付けずに30半ばを超えてしまったエンジニアを多数見てきました。いずれも会社での立ち位置は悪く、特にひどい例ではアサインできる仕事がなく社内ニートになってしまっていました。

こういったエンジニアになってしまうと、転職して社外に行くのも難しく、会社にしがみつくしかなくなってしまいます。しかし、大手企業でも早期退職制度(悪い言い方をすると肩たたき)が始まっている中、今後も広がっていくが考えられ、そうなると肩をたたかれるのを震えながら過ごすという状況に陥ってしまいます。

現代の社会でのキャリアを考えると、一番のリスクは転職に失敗することではなく、社内に残ることも転職も出来ない状況に陥ってしまうことだと言えます。

最悪のリスクするために、早い段階でこれらの能力を取得できるような業務にアサインされるよう上司に働きかけたらり、それも難しい場合は転職を選択するという判断も必要になってきます。
理想のキャリアを描くために、自身でしっかりと判断して行動することが一番重要なことです