- 🕒
- 更新
組込みソフト開発エンジニアに必要なスキルとキャリアパス
※当サイトはマイナビ・リクルート等各社サービスのプロモーションを含み、アフィリエイトプログラムにより売上の一部が運営者に還元されることがあります。 なお、得た収益が記事中での製品・サービスの評価に影響を与えることはありません。
組込みソフト開発エンジニアのキャリアパスを明確にするには「どんな職種があるのか」「その職種に必要なスキルは何か」を具体的にする必要があります。
回路設計や機構設計エンジニアのスキルは、実際の設計したものが見えるため評価は容易です。これに比べ、ソフト開発エンジニアのスキルは、プログラムという成果物があるものの直観的に評価することは困難です。
※当サイトは口コミの一部を掲載しています。
転職サイト名 | 特長 | 求人を探す |
---|---|---|
レバテック キャリア | 【全年代におすすめ】 |
|
マイナビ IT AGENT | 【20代におすすめ】 |
|
Geekly | 【スピード転職におすすめ】 |
この記事の目次
組込みソフト開発エンジニアのスキルの見える化
ソフト開発エンジニアのスキルの評価が難しいということは、ソフト開発エンジニアの教育・育成も難しいことになります。
日本では、2000年ごろからすでにITエンジニアや組込みソフト開発エンジニアを系統だって教育・育成し、キャリアパスを明確にするには、スキルの見える化が必要性との認識がありました。
このため、経済産業省の外郭団体であるIIPA(社団法人 情報処理推進機構)が、2002年にITSS(IT skill standard)でITエンジニアのスキル基準とキャリア基準を、2006年にETSS(Embedded Technology Skill Standards)で組込みソフト開発エンジニアのスキル基準とキャリア基準を規定しました。
その後、ITSSは大手IT企業や企業内情報システム部門でかなり認知され、その基準に従った教育カリキュラムも定着していますが、ETSSはほとんど普及していないというのが実情です。
スキル基準とキャリア基準が普及しない理由
ITシステムは、大型コンピュータから始まっているためハード・ソフトとも規模が大きく、初めからプロジェクトという概念を導入する必要があり、各工程でのエンジニアの役割分担も明確になっていました。
システムの中心のコンピュータは、世界に数種類しかない大型汎用機から徐々にダウンサイジングされて現在のパソコンレベルになったため、現在でもハードはIBM互換機、Macの2種類、OSはWindows、MacOS(iOS含む)、Linux(Android含む)の3種類しかなくスキル基準の共通の物差しがはっきりしています。
ETSSは、ITSSに準拠する形で規定されましたが、組込みソフトはマイクロコンピュータの誕生から始まり小規模開発からのスタートだったため、長らくひとり~数人の開発規模であり、プロジェクトや役割分担という概念とは無縁でした。
システムの中心であるマイクロコンピュータは組込む製品ごとに特化したものになり、ソフト開発スキル基準の共通物差しがはっきりしない。の2点から、現場に浸透していないようです。
職種別にみる組込みソフト開発エンジニアに必要なスキル
しかし、現在では組込みソフト開発の規模も大きくなり、ITシステム同様のプロジェクトや役割分担を進めないと立ち行かなくなってきています。
そこで、組込みソフト開発エンジニアのキャリアパスを考えるにあたって、あらためてETSSで規定されている「ETSSキャリア基準」の10の職種のうち現実的な6職種をピックアップし、それぞれの職種に必要な技術を説明して、組込みソフト開発エンジニアのキャリアパスを考えます。
テストエンジニア
プログラム経験の浅い初級エンジニアはもちろんですが、ある程度プログラム経験があっても、継続している組込みソフト開発プロジェクトに参加する場合は、必ずテスト工程からスタートします。それは、以下の目的のためです。
- ソフトを組込む対象製品の細かい仕様や要求する品質レベルを理解するために、対象製品の知識を得る
- テストが実現される条件や環境を理解し、ソフト開発するための明文化されていない知識を得る
- テスト環境は対象製品で異なるが、共通的な技術要素の知識(測定器やテストツールの使用方法など)を得ることが初級エンジニアに必要である
そして、ソフト開発工程に移るための以下の知識も学びます
- 機能要求・ソフトウェア要求分析やソフトウェア方式設計など、外部設計の知識
- テスト設計やテスト実行での期待結果の確認のために、開発ドキュメントの読み取りスキル
- テストカバレージやテスト評価を実施する上で開発プロセスの知識
また、テスト作業を通じて以下のような管理技術も学びます。
- 品質目標を達成するためのスコープ管理、リリースに向けての時間管理や人件費等のコスト管理
- 対象製品の仕様変更の管理を適切にテストに移行するための構成管理のスキル
- テストの再現性を確保し、仕様変更に伴い対象のテストの変更できること対応力
加えて、テストチームでの業務を通じて以下のようなヒューマンスキルも鍛えられます。
- 障害管理のためのコミュニケーションスキル
- 中級エンジニア以上では、テスト作業を円滑に進めるリーダシップスキル
- 機器の調達などを実現する交渉スキル
テスト業務を一定期間経験すると、テスト系、開発系、管理系の3つのどれかの適正を自分自身で感じると思います。
テスト系に適正があるエンジニア
- テスト仕様書や成績書の作成が苦にならず、その出来を評価されるようになった
- 何百とあるテスト項目を黙々とこなすことが苦にならない
- バグが出そうな仕様や操作パターンを推定できるようになった
- 自動テストツールに興味があり詳しく調べている、あるいは、いつもテスト作業の効率化を考えている
開発系に適正があるエンジニア
- バグが出そうな仕様や操作パターンを推定できるようになった
- テストをしているうちに、その動作プログラムの流れがイメージできるようになった
- プログラミング経験者なら、テスト対象のプログラミングの問題が推定できるようになった
管理系に適正があるエンジニア
- テストチームの進捗管理を任されるようになった
- 開発部門に品質状況をフィードバックしているうちに開発エンジニアとのコミュニケーションが良くなった
テスト系に適正があると自覚したエンジニアでも、そのままテスト業務に留まらず、一度は次のソフトウェアエンジニアに挑戦することを勧めます。
ブラックボックステストだけでなくホワイトボックステスト(ソフトの作りがわかってのテスト)にも取り組むことができ、エンジニアとしての幅と深さが得られます。
また、管理系の適正があると自覚したエンジニアも、同じくソフトウェアエンジニアをしばらく務めてください。ソフト開発での苦労を経験することで、後の管理業務がより現場に即した適切なものに近づきます。
ソフトウェアエンジニア
ソフトの各開発工程において開発・実装・テスト作業を担当するエンジニアで、いわゆるソフト開発エンジニアです。
開発対象製品に搭載されるプラットフォームを開発するエンジニアと、そのプラットフォームを使い対象製品のアプリケーションを開発するエンジニアに区分されます。
プラットフォーム開発エンジニアの場合は、プラットフォームに関する技術(カーネルやデバイスドライバなど)を自作できるスキルが必要です。
アプリケーション開発エンジニアの場合は、プラットフォームに関する技術を調査・理解して要求機能を実現するスキルが必要です。
実際の開発に必要なスキルとしてプログラミング技術は当然ですが、製品のいろいろな制約や特性に配慮して、担当する開発パートの要求仕様を実現するためのトータルな開発技術を要求されます。
また、自分の開発したパートの単体テストと正確な評価を自立的に行うことも必要になります。そして、プロジェクトマネージャの定めた指針に従って、担当範囲に関する進捗や仕様・構成バージョンなどについての整合性の維持・管理をきっちりと報告することもメンバーとして大切です。
担当範囲を数人のメンバーで開発する場合は、若手の指導や関係者とのネゴシエーションのスキル、問題が発生した場合にその解決や関係者との密にコミュニケーションを行うといった業務を円滑に進めるためのスキルも必要です。
ドメインスペシャリスト
聞き慣れない職種ですが、特定の技術・製品分野について高度で専門的な知識や開発経験を持つ開発エンジニアのことです。たとえば、「画像処理スペシャリスト」「プリンタスペシャリスト」という呼びます。
それぞれの製品開発に長期関わった開発エンジニアやそのメーカーのエンジニアになります。その製品や製品を構成する技術要素の深い技術スキルをもち、必要に応じて各開発および保守工程のレビューアとなることができます。
その製品のシステム要求分析、設計、テスト、保守の全工程に関するスキルに加え、技術の価値の認識や新製品展開を実現するマーケティングスキル、技術動向と自社の技術を考慮して技術開発の方向を示すスキルも要求されます。
一般の開発エンジニアが望んでなれる職種ではありませんが、チャンスがあった場合、チャレンジしがいのある職種です。
システムアーキテクト
ITSSでも定義されている上級エンジニアです。技術系エンジニアの頂点とも言えます。対象製品の利用・開発等の要件を満すソフト構造ならびにソフト開発プロセスを設計する技術者と定義されます。
使用できる技術、方式を評価・選択してシステムアーキテクチャを構築できるだけの技術理解が必要です。対象製品の要求分析、仕様設計、テスト設計に関するスキルが必要で、ステークホルダのニーズを明確にして、商品コンセプト設定を支援する役割もあります。
各種制約に配慮して対象製品のあるべき姿を描き、最適実現方式を選択・創造、およびシステム最適構成を描くという高度な専門職です。
また、技術選択やシステム構成がQCD に影響するため、経験に裏付けられた開発管理スキルが必要であり、 技術に関係するmake or buy を明示でき、開発スケジュール、コスト、品質計画の策定も主導します。
人的ネットワークを維持・発展できるコミュニケーションスキルや、各分野・人材の知識を動員してアーキテクチャにまとめ、理解して開発するためのリーダシップも重要です。
プロジェクトマネージャ
説明不要ですが、製品開発プロジェクトの構築ならびに遂行にあたり、プロジェクトを計画・指揮・監督する責任者です。
対象製品そのもの、および対象製品を構成する技術要素の知識(具体的に手を動かすのではなく、勘所を押さえた知識)が必要です。プログラム開発に関するスキルは必須ではありませんが、プロジェクト推進に関わる判断や分析の根拠となる開発技術の知識は網羅的に必要です。
日程管理、外注管理、リスク管理などプロジェクトの責任範囲を対象とする管理スキルをもち、開発局面において的確に意思決定するための情報収集と分析スキルが要求されます。
開発プロジェクトを推進するためのリーダシップの発揮はもちろん、開発の計画、商品価値創造、利益創出のためにビジネススキルが必要でステークホルダとの調整能力に長けるリーダとしての人間力を持った人材になります。
ブリッジSE
組込みソフト開発の規模も大きくなり、ITシステム同様、開発をソフト開発専業企業に委託する場合や海外企業に委託するケースも多くなりました。
委託元・委託先の両者に必要な開発を成功させるためのキーパーソンになり、組織的・地理的に分散するプロジェクト組織間の調整作業を担当するエンジニアと定義されます。対象製品の実現に必要な各種技術スキル(具体的に手を動かすのではなく、勘所を押さえた知識)が必要です。
また、関係するエンジニアの信頼を得るために、なにかの専門技術を持っていることが望ましいです。対象商品の「要求仕様分析」「設計」「ソフトウェア要求分析」「ソフト結合」に関するスキルが必要で、特に要件定義に関するスキルが大切です。
組織的・地理的に分散した委託先と委託元の間で仕様整合するための知識とスキルおよびレビューによる品質を向上させるための知識・経験と、社内外に通用する業界標準の管理スキル、ソフトウェアの開発プロセスに関する知識と理解、契約や知的財産・著作権に関する知識が必要になります。
当然、コミュニケーションスキル(海外相手の場合は当然語学力)が高く、ありがちな委託元と委託先の温度差のマネジメントもできる豊富な経験と実績を持ち、ステークホルダとの調整スキルは特に重要です。何か1つ以上のスペシャリストを経験した上でのジェネラリストであることが望ましいです。
まとめ
組込みソフト開発は、ますます規模が大きくなり、また内容もより高度に複雑化しています。開発言語でのプログラミング力は要素の一つにすぎません。この業界でキャリアを磨き、より上位職に就くには、プロジェクトでの業務のしかたや開発対象製品の業界競争力にまで興味をもって知識を広げる必要があります。
大変ですが、それだけソフト開発エンジニアのステータスも向上していると思います。組み込みソフト開発エンジニアとして10年後20年後にどうなっていたいかをはっきりイメージして毎日の業務に取り組むことが大切だと思います。
ITエンジニアを目指す人におすすめの転職エージェント5選
「どの転職エージェントを利用すればいいかわからない」という方のために、ITエンジニアを目指す人におすすめの転職エージェントを紹介します。
転職エージェントによって強みや特徴が違うので、自分に合った転職エージェントを選びましょう。
マイナビ IT AGENT
- 紹介できる求人情報の8割が非公開求人と業界トップクラス
- サポート期限は無期限で、登録から内定まで一人の担当者がサポート
- 登録者の約7割が20~30代のIT・Webエンジニアで、若い世代の転職に強い
ミライトーチMediaとは
転職やキャリアに関わるコンテンツを通じ、「今の仕事に悩む人」がより自分らしく働けるようにサポートしているメディアです。
不安のない転職活動や理想の転職先探しに役立ててもらうため、転職者や人材業界関係者へのインタビュー調査はもちろん、厚生労働省などの公的データに基づいたリアルで正しい情報を発信し続けています。