エンジニアの世界でよく言われていたのは「スペシャリストになるべき」だということです。システム開発において、プロジェクトマネージャー、設計エンジニア、プログラマ、テスターなど開発人材の役割ははっきりしています。一つの能力に長けた人材の方が力を発揮しやすい環境です。
ただ、現在では「スペシャリストを目指すよりもゼネラリストを目指すべきではないか」と感じることが多くなっています。今回の記事ではその理由についてお伝えしていきたいと思います。
多様化するエンジニアの業務
現代のエンジニアの業務は多様化しています。例えば、開発を担当するためのプログラマであっても、顧客との折衝を求められたり、設計書の作成を担当したりすることは多々あります。
将来的には、システム開発のモデルが進化することにより、より業務の多様化が顕著になっていくはずです。例えば「アジャイル」と呼ばれる開発モデルでは、要件定義から設計、開発、テストまでを繰り返し行います。経験を積んでいくにつれて、広い工程を携わるようになるでしょう。
業務が多様化すると、一つのことに秀でたスペシャリストよりも、様々な業務をこなせるゼネラリストが求められるようになります。エンジニアは常に新しい業務に挑む挑戦心を忘れなければ、たくさんの業務に携わる機会があるはずです。
次々と登場する新技術への対応
家具や家電といった様々な物をインターネットにつなぐことを「IoT(モノのインターネット)」と呼びます。最近では、このような新技術が次々と普及しており、システムを開発するエンジニアも対応を迫られています。
スペシャリストとしてある特定の技術に特化してしまうと、同じ仕事ばかりを担当することがあります。もしも、その技術の需要がなくなった際に困ることになる可能性だってあるのです。
様々な技術を習得したゼネラリストであれば、需要が変化しても仕事があります。特に普及し始めたばかりの新しい技術は人材不足になりやすく、声がかかりやすくなります。
さらに、複数のスキルを併せ持つと、それだけで貴重な人材となります。例えば、英語だけできる人やプログラムだけできる人はたくさんいますが、両方のスキルがビジネスレベルにある人は少ないでしょう。様々なスキルを持つ人材は、組み合わせることで大きな武器となります。
人工知能への対抗
現在、AIと呼ばれる人工知能が進化しています。近い将来、様々な仕事でAI化が進むと言われています。エンジニアは、AI化によって仕事が奪われる職業として名前が上がることは多くありませんが、将来のことは誰にも分かりません。プログラミングが自動化し、エンジニアの需要が減る可能性もあります。
人工知能に仕事を奪われないためには、人工知能が得意でない分野で活躍することです。例えば、顧客との折衝といったコミュニケーション能力や、システム開発を新たな分野に応用させるといった創造力は、人工知能にとって難しいことです。プログラミングだけでなく様々なスキルや能力を駆使して、人工知能に対抗していきましょう。
さらに、人工知能に関連したプログラミングの技術を身に付けるという方法もあります。人工知能が普及するほど、仕事が増えるはずです。
まとめ
移り変わりが激しいIT業界において、常に新しい技術への勉強を欠かさないことはとても大切です。勉強していくことにより様々な分野の知識を身に付けられます。
設計から実装やテスト、インフラ構築までできる技術者は貴重です。特に少人数のシステム開発において、様々な工程に長けたゼネラリストは重宝されます。システム開発全体の視点から見れば、ゼネラリストは必要不可欠な存在です。