組込みソフト業界でニーズ高まる企業情報システムの開発経験者

http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20050601/161961/
さすがにこれは嘘だろう.

組込み機器用のアプリケーションは日を追うごとに大規模になり,企業情報システムの業務アプリケーションと変わらない複雑なソフト開発プロジェクトが増えてきた。

コードの行数だけなら業務アプリと同等かもしれない.しかし,もし行数が同じであれば,組込みソフトウエアの複雑さや難易度はおそらく業務アプリの比ではない.
組み込みソフトの規模が拡大したは本当だろう.これだけ多機能な機器になれば当然だ.現場の開発体制が追いついていないも本当だろう.それこそ携帯電話などは文句なしに世界最先端を走っている.前人未到の領域を突き進んでいるのだから,それようの開発体制は未だ誰も作ったことがあるわけがない.ハードルが下がったのも必ずしも嘘ではない.アセンブラベースで書いていたものがCやC++になり,OSもRT-Linuxなどが載ったりしているらしい.*1
しかしそのことと,企業情報システム開発者が組み込み開発に向いているということとは,なんら関係はない.企業情報システムのマネジメントにしても,それが組み込み分野のマネジメント手法とはどこまで共通しているだろう?*2作っているものが全く異なるのに,同じマネジメント手法が使えるなどと,一体誰が言えるだろう?

企業情報システム開発のスキルや経験は,組込みソフトの開発においても必ず生かすことができる。

これに至っては何一つ根拠が示されていない.これだけ両極端の世界で,何ゆえ生かすことができると断言できるのか.その理由を聞かせてもらいたいものだ.*3

組込みシステムの開発現場が企業情報システムと同様に厳しいことは確かだ。

いや,おそらくそんなものの比ではないと思う.企業情報システムなら大規模複雑化しても,それを効率よく実装するために豊富なハードウエア資源をふんだんに使える.多少コードサイズが大きかろうと処理速度が若干低下しようと,設計的に綺麗であれば採用できる.論理的に分離されていれば互いの影響は無視でき,独立したモジュールとして扱って問題ない.
これに対し組み込みシステムでは同じように(或いはそれ以上に)大規模複雑化している上に,ハードウエア資源は必要最小限(以下)しか使用できない.コードサイズを減らすために,汚くなることを覚悟の上で設計を変更することもあるだろう.論理的に分離されていることも珍しいし*4,論理的に分離されていても実時間的には相互に影響する.さらにはもっと単純にフットプリント/コードサイズは影響する.このため,十分に独立したモジュールにはなり得ない.
その他諸々の問題を考えると,どう考えても同じはずがない.少なくとも「難しい」ということの理由や性質が全く異なる.技術的にも管理手法的にも全く異なるものとなるだろう.*5

ITエンジニアにとってのキャリア選択肢の1つとして,組込みエンジニアへの道がクローズアップされてくるはずだ。

ここだけは同感.*6

*1:アセンブラからCになって敷居が下がったと言っても,コードの規模も激増しているので作っている人間の苦労が減ったとは限らない.

*2:私はそもそも企業情報システムに満足なマネジメント手法があるかどうかさえ疑問視している.時代錯誤なウォーターフォールモデルと,それを前提にした『上流行程神話』などその最たるものだ.ひょっとして30年前から一歩も進歩していないのではないか?30年まえならそれは正解だったかもしれない.10年前でもなんとかやっていけただろう.しかし今となっては,その仕組み自体が生産性を低下させる元凶になっている.過去の成功体験が失敗原因になるという,失敗パターンの一つでは.

*3:そんなに簡単に対応できるなら,転職にもこんなに苦労しないと思うけどなー.「私は昨日まで組み込みをやってました.ですので,明日から企業情報システムの開発を担当することは可能です」.こう言って,一体どこの企業が喜んで採用してくれるだろう?

*4:同じOSと呼ばれていても汎用OSとRTOSは別物だし,記述言語がアセンブラC++Javaでも異なる.

*5:J2EEJ2MEの両方を見比べても両者が全く異なることは明らかだ.言語としては同じであるにも関わらず,その性質も設計手法もコーディングスタイルも全く異なる.J2MEは比較的敷居は低い方だが,それでもJ2EEしか経験のない人が見ると,面食らうだろう.

*6:ITゼネコンと揶揄されることもあるSIと,世界を舞台にどうどうと戦える組み込みとを同列に扱うこと自体間違ってる.