エンベデッドエンジニアを知っていますか?
情報処理の資格にに「エンベデッドスペシャリスト」というのがあるので名前くらいは知っているかもしれませんね。
他のエンジニアから見ると、少し違う世界で暮らしているので、紹介したいと思います。
- プラットフォームが違う
- 強いウォーターフォール
- トラブルシューティングはメモリダンプ
- 炎上が分かりにくいが炎上しやすい
- 他のエンジニアと話が通じない
- でも、引く手あまた
エンベデッドエンジニアの生態
イト屋です。
エンベデッドエンジニア(組み込みエンジニア)の経験は数年あります。
根本的にはIT技術の中にいるので他のITエンジニアと同業ではあるんですが、かなり別のところに住んでいるという印象です。
- プラットフォームが違う
- 強いウォーターフォール
- トラブルシューティングはメモリダンプ
- 炎上が分かりにくいが炎上しやすい
- 他のエンジニアと話が通じない
- でも、引く手あまた
プラットフォームが違う
エンベデッド(組み込み)というのは、家電などの一見PCやサーバでないものに入っているITのことです。
勝負している世界がPCやサーバではないんです。
PCやサーバでしかプログラムが動くところが想像できない人にとっては新鮮ですね。
プラットフォームが違う
CPUは、ARMとかMIPSとかのPCでは聞いたことがないものであったり、ディスクがなかったりします。
多くのエンベデッドエンジニアは、その他のITエンジニアに比べて、リソース貧乏な環境にいます。
以下のようなことがあります。
- CPUが20年前のPCに入っているような性能しかない
- メモリが数MBしかない
- 不揮発領域(いわゆるディスク)がない、あるいはほとんどない
メモリを節約するために1バイト変数を4ビットずつ分けてビット演算で取り出すみたいなハックは、エンベデッドだけの世界の話です。
OSが違う
VxWorks, RTOS, TRONなど聞いたことがありますか?それぞれのOSでノウハウが違うため、最初は面食らうかもしれません。
組み込みLinuxに当たった方はラッキーです。Linuxの情報はほぼ使えますね。
言語の環境が違う
組み込みといっても様々な言語を使います。
C, C++, Java, PHPなど様々ですが、使えるライブラリーが限定されることがあります。
エンベデッドでなければ関数コールだけでよかったものが、自作しなければならない、という罠です。
ライブラリ関数をどうやって実装するかを考えるのは非常に勉強になります。仕事以外でやりたくはないですが。
強いウォーターフォール
組み込みで不良があると製品リコールに繋がる可能性がありますので、不良を徹底的に排除するのは至上命題です。
現代的な考えでは開発手法と不良の多寡に関係はないのかもしれませんが、ひと昔前の考え方では各工程でその工程でとれるバグをとり切ることに一所懸命になります。
ユーザアプリに比べると、厳密なウォーターフォールを用いることが多いと思います。
アジャイルという開発手法は伝説では聞いたことがあるくらいで、実在するとは信じていないと思われます。
トラブルシューティングはメモリダンプ
エラーが起こったとき、メッセージをユーザに出して何らかの対処をしてもらう、というのがユーザアプリの世界です。
しかし、組み込みの世界ではユーザとコミュニケーションをとれることが少ないので、メモリダンプを取得するくらいしかやれることがありません。
メッセージは、トレース番号だけ出して終わり、とか全くユーザのことは考えません。
メッセージを人間にとって分かりやすくする、という発想さえないと思われます。
炎上が分かりにくいが炎上しやすい
ITの製品開発では、バグが予想以上に出たり、予想以上に実装に時間がかかっても、傍目では何が起きているか分かりづらいです。
エンベデッドではさらに分かりづらいです。
別プロジェクトの人間にとっては「最近、あのプロジェクト、帰るの遅いな」くらいにしか思ってもらえません。
下手をすると、同じプロジェクト内でも気づいてもらえないこともあります。
経験者が少ない、情報が少ない、問題が他ITと違う、、、、などによって、アプリに比べると燃えやすいです。
他のITエンジニアと話が通じない
以上のことから、他のITエンジニアとは微妙に話が通じません。
他のITエンジニアは
- メモリを節約するプログラミングをしたことがありません
- インラインアセンブラとか書けません
- 自分でライブラリの関数を実装したことがありません
- WindowsとLinux以外のOSを知りません
- 厳密なウォーターフォールなど知りません
やっぱり話が通じませんね。
でも、引く手あまた
エンベデッドエンジニアは特殊です。
しかし、その特殊さのために、技術が重宝されます。
エンベデッドの長けるための本はほとんど無く、パタヘネだったりするので硬派です。
イト屋は第3版を持っています。時代の差を感じます。
まとめ
エンベデッドエンジニアと他のITエンジニアの違いをまとめてみました。
コメント