組み込みソフトウェア開発を9年間続けて感じた5つの事

ソフト開発

2011年から約9年間、組み込み用ソフトウェアの開発をしてきて感じたこと5つについて紹介します。

  1. メーカーの組み込みソフトウェアエンジニアは、メカ設計者に比べて評価されにくい
  2. メーカーの組み込みソフトウェアエンジニアは、基本的にモチベーションが低い
  3. 組み込みソフトウェアは製品に組み込まれる特性上、高い品質が求められる
  4. 組み込みソフトウェアは品質が求められるため、開発プロセスとエビデンスが重要
  5. 上流工程だと要求仕様の決定、ドキュメント作成が主な業務になり、ソフトウェア開発のスキルが上がりにくい

下記で詳しく説明していきます。

1.メーカーの組み込みソフトウェアエンジニアは、メカ設計者に比べて評価されにくい

 なぜかというと、メカ設計者の業務の成果がわかりやすいのに対して、組み込みソフトウェアエンジニアの成果がわかりにくいためです。メカ設計者の成果は、完成品を見れば、その製品の事を詳しく知らない人が見ても、一目で理解できます。また、前の製品からどのような変更があったのかも視覚的に理解できます。さらに納期通りに完成していればOKです。一方で、組み込みソフトウェアエンジニアの成果は制御プログラムです。パッと一目で何がどのように変わったかわかりません。そもそも制御プログラム自体、よくわかりません。そんな状況なので、制御プログラムの変更点の説明を聞いたところで、よくわかりません。また、仕様通り動いて当たり前と考えられがちです。「なんだかよくわからないけど、仕様通り動いたのね」って思われます。

 次にメカ担当者と組み込みソフトエンジニアの二人を評価する中間管理職の気持ちになって考えてみます。

 メカ設計者については、どんな製品をどのくらいの納期で完成させたか、また、前の製品からどのくらい改善させたかが理解でき、さらに上の上司に自信をもって説明できます。

 一方、組み込みソフトエンジニアについては、どんな製品をどのくらいの納期で完成させたかはわかりますが、どんな変更を加えたか、その効果を自信をもってさらに上の上司に説明できません。

 上記の理由で、私は、組み込みソフトウェアエンジニアはメカ設計者より評価されにくいと考えています。

2.メーカーの組み込みソフトウェアエンジニアは、モチベーションが低い人が多い

 なぜ、メーカーの組み込みソフトウェアエンジニアは、基本的にモチベーションが低いかというと、元々組み込みソフトウェア開発を希望していない人が多いためです。

そもそもどんな人がメーカーを志望するかを考えてみます。

例えば、車メーカーに入るような人は「小さい頃からモノ作りが大好きで、車を自分で作ってみたい」という熱い思いを持った人が多いかと思います。そのため、メーカーには大学で機械工学科を卒業したような人がたくさん入ります。そんな熱い思いをもってメーカーに入社したものの会社の都合で希望していなかった組み込みソフトウェア開発を行う部署に配属されてしまったとします。そんな人は「大学では機械を勉強したから、会社に入ってからは機械の設計・開発がやりたかったのに、なんでソフト開発をやらなければいけないのか。」と考えます。なので、メーカーの組み込みソフトウェアエンジニアの多くはモチベーションが低いです。

3.組み込みソフトウェアは製品に組み込まれる特性上、高い品質が求められる

 組み込みソフトウェアは、その名前の通り、製品に組み込まれるソフトウェアで、windowsやスマホアプリのように、ネットワークを介して定期的にバージョンアップを行うことができません。そのため、製品が量産されるまでの間に、数多くの評価を実施し、問題がないかを社内で十分検証します。特に、人の命に係わる製品は評価を重視していると思います。上記の特徴があるため、組み込みソフトウェアには高い品質が求められています。

4.組み込みソフトウェアは品質が求められるため、開発プロセスとエビデンスが重要

 3.で述べた通り、組み込みソフトウェアには高い品質が求められます。ソフトウェア開発にはV字プロセスというプロセスが存在し、そのプロセスに則った開発を進めるように指示されるかと思います。(どんなプロセスを採用するかはメーカー毎に異なると思いますが。)

 開発プロセスには節目管理というものがあります。例えば、設計書類(ドキュメント)のチェックを行ったり、評価の妥当性を確認するための証拠(エビデンス)のチェックを行ったりします。そのため、組み込みソフトウェアエンジニアは、ソースコードをコーディングするだけでなく、設計の妥当性を説明するための設計書類、評価に問題ないことを説明するためのチェックリストなど、プロセスごとにドキュメントの作成をする必要があります。むしろ、これらのドキュメントを作成する工数が非常に多く、これが組み込みソフトウェアエンジニアの主な業務になる人もいるかと思います。(上流工程に限りますが。)

Vモデル(V-Model)とは、IT製品開発の手法の一種。ドイツ政府と軍関係のプロジェクトで標準として採用されている。また、一般に利用可能であるため、様々な企業でも使われている。プロジェクトマネジメント手法としては、PRINCE2に匹敵する。また、システム開発やソフトウェア開発の手法としても使われている。

https://ja.wikipedia.org/wiki/V%E3%83%A2%E3%83%87%E3%83%AB

5.上流工程だと要求仕様の決定、ドキュメント作成が主な業務になり、ソフトウェア開発のスキルが上がりにくい

 4.で述べた通り、上流工程ではドキュメント作成が主な業務になります。そのため、元々ソフトウェアエンジニアとしてソースコードを書きたかった人には物足りないと感じることがあるかと思います。また、メーカーの組み込みソフトウェアエンジニアは主に上流工程を担うことになるかと思います。(一部、社内にノウハウを蓄積するために、外部に開発委託せず、社内で要求仕様の決定からコーディング、評価を行う素晴らしい会社もあるかと思いますが。)

 上記の背景から、私は、ドキュメント作成が主な業務となる上流工程の組み込みソフトウェアエンジニアは、下流のソフトウェア開発に関するスキルが向上しにくいと思っています。

以上で終わりです。

上記は、あくまで私の個人的な感想です。

タイトルとURLをコピーしました