- 🕒
- 更新
最新の組込みソフトウェア開発業界動向と転職事情
※当サイトはマイナビ・リクルート等各社サービスのプロモーションを含み、アフィリエイトプログラムにより売上の一部が運営者に還元されることがあります。 なお、得た収益が記事中での製品・サービスの評価に影響を与えることはありません。
※当サイトは口コミの一部を掲載しています。
転職サイト名 | 特長 | 求人を探す |
---|---|---|
レバテック キャリア | 【全年代におすすめ】 |
|
マイナビ IT AGENT | 【20代におすすめ】 |
|
Geekly | 【スピード転職におすすめ】 |
この記事の目次
組込みソフトウェア開発動向
1980年代から2000年
組込みソフトウェア開発は、マイクロコンピュータが家電やOA機器、工作機械などに採用され始めた1980年代から2000年過ぎたころまでアセンブラからC言語への移行や組込みリアルタイムOS搭載などの変化はあったものの、エディタでコーディングしコンパイル・デバッグするという基本的な開発手順やウォーターフォールと呼ばれる開発プロセスに大きな変化はありませんでした。
2000年代から2010年
2000年代に入り、家電や各種OA機器、工作機械などの高機能化や車の電子化の進展などで、組込みソフトウェア開発の複雑化や規模拡大が急速に進みました。それでも、2010年ごろまでは、製品の動作・制御する機器内蔵マイクロコンピュータ上のクローズしたソフトウェア開発でした。
2010年以降
インターネットの普及による回線コスト低下や無線デバイスや各種センサーの登場と急速に普及したスマートフォンへの採用による低コスト化により、すべてのものがネットワークにつながるIoT(Internet of things)時代が到来しました。
デバイス、家電、自動車、工場の設備といった社会環境を構成するシステムが、ネットワークに接続され、利用環境や使われ方も大きく変化してきています。それぞれの家電、OA機器、工作機械や車がインターネットによりサーバー・クラウドに接続され、その「つながる技術」により利用環境や使われ方が激変しています。
これにともない組込みソフトウェア開発の内容や必要とされる技術も急激に変化しています。加えて、ロボットやドローンに代表される、これまでは構想や試作段階であったものが急速に実使用レベルに広がり、そこに必要な無線通信・ネットワーク技術、画像・音声認識技術/合成技術、センシング・機械技術等の技術要素の高度化にも対応していくことが必要になってきています。
組込みソフトウェア開発業界の課題
IoT、AIなどの「技術トレンドへの対応」は、単にソフトウェア開発技術者の課題に留まりません。製品を開発・提供する企業では、IoT、AIなどの新技術を活用したビジネスモデル(儲かるビジネス)の提供が容易ではなく、そのための新規投資が難しいのが現状です。
また、「つながる先の他産業・他分野の文化や技術の理解が難しい」、「関係する安全規格などへの適合、認証取得が難しい」という課題も挙がっています。
加えて、従来のウォーターフォール型開発手法に対し、大規模にシステム化しかつなかなか決定されないソフトウェア仕様や頻繁に発生する仕様変更に対応できるアジャイル開発手法などの非ウォーターフォール型開発手法の導入も重要視されています。
それに、対象機器の高機能化にともなうソフトウェアの複雑化だけでもその品質確保が大きな課題でしたが、IoTによるつながる技術により組込みソフトウェアとITシステムがつながり、その動作・検証範囲がさらに拡大したことで、設計品質の向上がより大きな課題になってきています。
さらに「つながる技術」に不可欠な「セーフティおよび製品セキュリティ技術」の導入も急がれます。これらの多くの課題に対し、その開発に関わる組込みソフトウェア技術者は、理系離れやIT系志向などで今後の大幅な増加は期待できず、既存の開発者の高齢化が進むとともに、自動運転を中心とした車載ソフトウェア開発に大量のエンジニアが吸い込まれており、国内の組込みソフトウェア開発業界は、大きな岐路に差し掛かっているといえます。
このように国内の組込みソフトウェア開発業界では難題が山積していますが、いくつかの追い風もあります。
機器の基本ハードウェアプラットフォーム共通化によるソフトウェア流用率アップ
CPUの高性能・低価格化によるRaspberry Piに代表される組込みLinuxが載った小型PCともいえる基盤PCが小型機器に実装できるレベルになりました。「汎用のLinux開発環境で開発できる」「ネットワーク接続やUSB接続が容易」「液晶表示やサウンドなどの各種デバイスドライバも既存のものを流用できる」など、ソフトウェアを開発することから必要なソフトウェアを探して組み合わせることでかなりのことが実現できるようになりました。
反面、すべて自前開発することで製品のブラックボックス化を図って利益を得ていた日本メーカーにとっては、ガラパゴス化からは開放されますが、中国メーカーなどでも同じものが容易に開発されてしまうというリスクもはらんではいます。
開発ツールの高性能化によるコーディング、テスト工数大幅削減と品質向上
MATLAB Simulinkに代表されるモデルベースで設計・開発しCやC++言語を自動生成するツールの実用化が進み、コーディングレス開発が可能になりつつあります。特に車のエンジン制御などの人為的ミスが許されないソフトウェア開発での採用が広がっており、バグリスクが大幅に削減されています。
また、組込みソフトウェア開発のツールベンダーから提供されるシミュレータの高性能化・低価格化で、実機が無くても高精度なソフトウェア動作確認やテストができるようになりました。
このことで、机上でかなりの精度まで開発を進めることができ、開発効率の大幅なアップが可能になってきました。
また、自動テストツールも実用化が進み、繰り返しテスト、網羅テストなどを一度の設定で自動実行でき、テスト担当者の工数負荷が大幅に削減できつつあります。
組込みソフトウェア開発の海外オフショア開発
IT系のシステム開発では、中国やインドでのオフショア開発がすでに軌道に乗っていますが、組込みソフトウェア開発では複雑な仕様やハードウェアの平行開発などで永らくオフショア開発が軌道に乗りませんでした。
しかし、基本ハードウェアプラットフォーム化や組込みLinuxのような汎用OS採用などで開発環境がオープン化し、基本機能のオフショア開発が進んできました。
ただ、ブリッジSEと呼ばれる日本語と中国語もしくは英語が堪能なシステムエンジニアの存在が不可欠ではあります。
組込みソフトウェア開発で求められる人材
このように大きな環境変化が起こっている組込みソフトウェア開発ですから、現場で求められる人材も当然大きく変化しています。
今までどらかというと機器・機能などで細分化され、専門的な技術を高めていくという職人のようなイメージがあった組込みソフトウェア開発人材ですが、今では以下のような要件の人材が求められています。
全体を俯瞰できる広い視点
システム全体を俯瞰できる広い視点やIoT、AIなどの最新技術を吸収しようとする技術に対する貪欲さをが必要になります。
機器側だけでなく、IoTで集まったビックデータの活用までイメージできる視野が必要です。各種センサーによるセンシング技術、ネットワークと接続しデータを安定に送受信する技術、その内容のセキュリティを確保する技術などこれまでになかった技術を調査しソフトウェア開発に積極的に取り込むことができるスキルが望まれます。
設計品質の確保にこだわる。
自己流ではなく、CMMIなどの開発標準やコーディング規約に従ったソフトウェア開発ができるマインドが必要です。
ソフトウェアの標準化・共通化・流用化を最優先に設計・開発ができる発想を持つことが必要です。
コミュニケーション能力
異なる分野の顧客や開発者と話ができるコミュニケーション能力が必要です。組込みソフトウェアエンジニアは、寡黙にキーボードをたたいているイメージがありますが、それは過去のことです。
外部とネットワークでつながる機器開発をするには、該当する分野の顧客やサーバー側のエンジニアと会話できるコミュニケーション力が必要になります。
上流設計・プロジェクトマネージメント能力
プログラム実装に加え、上流設計・プロジェクトマネージメントができることが重要です。特に開発メンバーの少ない中小規模の企業で望まれる要件です。
海外オフショア開発の管理
ブリッジSEをソフトウェア開発者自身ができれば、そのプロジェクトはかなり円滑に進みます。英語ならTV会議でコミュニケーションがとれるTOEIC600点以上ほしいところです。
最新情報を現場に取り入れる
最新の組込みソフトウェア開発環境の情報に敏感で、それらを取り入れる積極性・柔軟性と行動力が必要です。
導入にはコストがかかり、かつ開発部署で普及させる活動が必要ですので、効果を実証しメンバーに説明・説得できる行動力が必要です。
各種の開発言語に幅広く対応できる。
CPUの高速化やメモリの低価格化・大容量化でC言語が中心だった組み込みでもC++やJavaが使用される機会も増え、加えてPythonのようなスクリプト言語も開発効率の良さから採用され始めました。それらの言語に拒否反応なく対応することができれば、活躍の場が大きく広がります。
組込みソフトウェア開発エンジニアの転職事情
ソフトウェア開発者の絶対数が大幅に不足していますから、転職市場は極度な売り手市場といえます。また、組込みソフトウェア開発では、なんらかの形で自分の開発したものが世の中で役立つ姿を見ることができる可能性が高く、ものづくりとして非常に魅力的な仕事だと思います。
ただ、転職後に自身の期待を叶え、かつ期待される役割を果たせてこその転職成功と言えますので、各年代や経験を踏まえた自身の成長像を具体的に持って転職先を選択してほしいと思います。
20代前半や第二新卒で開発経験が浅いエンジニア
第二新卒など2尾台前半で開発経験が浅いエンジニアは、電子回路技術の基本を習得しながら従来型の組込みソフトウェア開発エンジニアをめざすのも悪くはありませんが、思考の柔軟性を生かしてまだまだ開発人口の少ないモデルベース開発にチャレンジしてはどうでしょう。
トヨタではエンジン制御などの車の安全動作に関わるソフトウェアはすべてMATLAB Simulinkで開発してC言語を自動生成し、ひとがC言語のソースコードを触ることは無いとのことです。モデルベース開発手法をマスターできれば、早期に車載ソフト開発の中心メンバーに抜擢されます。
30代の中堅組込みソフトウェア開発エンジニア
30代の中堅組込みソフトウェア開発エンジニアは、新たに無線通信・インターネット技術などのネットワーク技術習得に積極的にチャレンジしてください。
ネットワーク技術を習得しパケットキャプチャなどを駆使してトラブル対応ができれば、IoTの中核技術者に成長できる可能性があります。
デバイスドライバ開発経験があるベテランエンジニア
ハードウェアェアとソフトウェアのインターフェースの役割を果たすデバイスドライバ開発を多く経験しているベテランエンジニアは、今後も次々生まれる新しいセンサー制御デバイスのドライバ開発で活躍できますので、完成品メーカーやソフトウェア会社より電子部品・デバイスメーカーを目指したほうが、より専門性を生かせるかもしれません。
制御ソフトウェア開発が中心のエンジニア
WindowsPCやLinuxPC上の制御ソフトウェア開発が中心のエンジニアは、C#やJavaを使いこなしているでしょうから、PHPやPythonなどの新しい言語を習得することで開発守備範囲が大きく広がります。
離職中の女性エンジニア
育児休業中もしくはやむなく出産退職した女性エンジニアは、自宅でも簡単にできるスマホやタブレット上のアプリ開発で技術スキル範囲を広げることで復帰後の活躍範囲が広がります。
シニアエンジニア
ベテランを過ぎたシニアエンジニアは、CMMIなどの開発プロセス管理やソフトウェア品質管理の手法に加え、機能安全の知見を習得できれば、貴重なソフトウェア品質管理の専門家としてまだまだ活躍できます。
IT基盤のインフラ系エンジニア
IT基盤のインフラ系エンジニアで組込みソフトウェア開発をめざそうと思っている若手は、サーバー上で使用する各種スクリプト言語からプログラミングに入門し、今後の使用範囲の拡大が予想されるPythonに絞って習得してから転職活動に臨んではどうでしょうか。
まとめ
組込みソフトウェア開発業界では、企業もエンジニアもこれまでに述べたようなたくさんの課題があり、思わずすくんでしまうかもしれません。しかし、課題が多いということはチャンスも多いと思います。
極度な人材不足の業界ですから「これまでと違う技術にチャレンジしたい」「IoTなど最新の技術を習得したい」「より上流にチャレンジしたい」といったエンジニアとしての希望をかなえることができる機会を転職によって得られる可能性が大きい時代が来たといえます。
ITエンジニアを目指す人におすすめの転職エージェント5選
「どの転職エージェントを利用すればいいかわからない」という方のために、ITエンジニアを目指す人におすすめの転職エージェントを紹介します。
転職エージェントによって強みや特徴が違うので、自分に合った転職エージェントを選びましょう。
マイナビ IT AGENT
- 紹介できる求人情報の8割が非公開求人と業界トップクラス
- サポート期限は無期限で、登録から内定まで一人の担当者がサポート
- 登録者の約7割が20~30代のIT・Webエンジニアで、若い世代の転職に強い
ミライトーチMediaとは
転職やキャリアに関わるコンテンツを通じ、「今の仕事に悩む人」がより自分らしく働けるようにサポートしているメディアです。
不安のない転職活動や理想の転職先探しに役立ててもらうため、転職者や人材業界関係者へのインタビュー調査はもちろん、厚生労働省などの公的データに基づいたリアルで正しい情報を発信し続けています。