組み込みエンジニアのあるあるを、私の経験から18個書き出しました。
私は会社員のとき、テレビ・スマホ・カメラなどの組み込みの開発を担当していました。いまはWebの仕事をしています。
どの現場にも当てはまるとは限りません。私の場合として読んでください。
先に結論
- 書き出してみると、ほとんどが機材の話でした
- パソコンより機材のほうが大きく、機材を置くだけの席もあります
- 機材は人数分なく、テストチームに貸すと自分の開発が止まります
- ビルドに数時間かかるので、16時に直す所が見つかると、その日の残業が決まります(23時過ぎ、終電ギリギリまで)
- 不具合の調査は、ハードウェアに問題がないことを確かめるところから始まります
- それでも、書いたものが現実の機械を動かす面白さがあります
机まわりのあるある
パソコンより、機材のほうが大きい
パソコンだけでなく、機材を置く場所も要ります。しかも、パソコンより機材のほうが大きいです。
機材を置くだけの席がある
機材を置くためだけの席があります。
その席の上にはダンボールで作った棚があって、そこに機材を入れていました。
配線がすごいことになる
機材をつなぐ配線が、すごいことになります。ぐちゃぐちゃです。
コーヒーは、ふたつきが暗黙の了解
機材にコーヒーがかかると怖いので、ふたつきでないとだめという暗黙の了解がありました。
機材の数のあるある
機材が人数分ない
開発する人の数だけ、機材があるわけではありません。
足りないときは、機材が空くのを待つしかありません。 もしくは、先に交渉しておきます。
テストチームに貸すと、自分の開発が止まる
テストチームにテストをお願いするときは、機材を貸し出します。すると手元から機材がなくなり、その機材での開発ができなくなります。
機材が動かなくなるあるある
回路が光って、パチっと鳴って、それきり動かない
開発中に、回路が光り輝いて、パチっと音がする。それ以後、動かなくなります。
壊してしまったときは、上長に相談してから、顧客に謝罪しに行きました。 そのあとで、新しい機材をいただきました。
別の機材用のアプリを入れて、壊す
機材ごとに、インストールできるアプリが違います。別の機材用のアプリを入れてしまい、機材を壊すことがあります。
過去のものが入っていて、入れ直したら動かない
機材には、過去のものがインストールされたままのことがあります。新しいものを入れ直すと、動かなくなります。
ものによっては、先に OS をインストールしてから、アプリをインストールします。OS とアプリには組み合わせがあり、間違えると起動しなくなります。
機材と OS にも組み合わせがあって、間違えると動かなくなります。
覚えることのあるある
説明書が長すぎる
機材の説明書が長すぎます。長いなぁと思ったものは、PDFで50ページほどありました。
プロジェクトの話が、あちこちに散らばっている
プロジェクトの話は、いろいろなところに散らばっています。だから、キャッチアップに時間がかかります。人から聞くしかありません。
機材の勉強ばかりしている
機材の勉強ばかりしています。
組み込みとWeb、どっちがいい?にも書きましたが、組み込みはハードウェアを前提にソフトウェアがあり、主役はあくまでハードウェアです。
ビルドのあるある
16時に、その日の残業が決まる
昼前(12時)までに開発を終わらせて、昼食に行く前にビルドを走らせます。
昼食を終えて13時。ビルドが終わるのは15時か16時で、そこから動作確認をして、レビューのリクエストを出します。だから、昼前にビルドを始めないと、ゆとりを持って仕事ができません。
そして16時、コードに直さなければいけない所が見つかる。この時点で、その日の残業が決まります。
直してもう一度ビルドすると数時間かかり、そのあとに動作確認も要るからです。上司も残ります。
残るのは23時過ぎまで。終電ギリギリです。
カーネルまわりのビルドでは、16時間かかったこともあります。
不具合の調査と検証のあるある
まず、ハードウェアに問題がないことを確かめる
不具合を調べるときは、ハードウェアに問題がないことを確かめてからです。だから、調査の工程が多くなります。
私が組み込みでいちばんつらかったのも、この原因探しでした。
ログを取るにも、専用の機材を差し込む
ログの取り方が特殊です。コンソールログなどは、ログを取るための機材を差し込まないと取れません。
リリースのあるある
リリース直前に不具合が見つかり、帰れない
リリースの直前に不具合が見つかると、直さなければならず、帰れません。
レビューが長い
レビューが長いです。
組み込みは、一度リリースしたら取り消せません。だからリリースまでのハードルが高く、レビューにも時間がかかります。
仕事の外のあるある
謎の動画が流れると、時間稼ぎを疑う
画面で謎の動画が再生されると、「あー、何かを読み込むための時間稼ぎをしているのかな」と思ってしまいます。
組み込みエンジニアは、きつい?
あるあるを書き出すと、苦労の話が多くなりました。
私がつらかったのは、ハードとソフトのどちらが原因かを探すことと、長いビルドでした。長いビルドは、正直、精神的にもこたえました。
それでも、組み込みにはパソコンで書いたものが、現実の機械を動かす面白さがあります。ロボットを自分の手で作ったような感覚でした。
ラズベリーパイを駆使して、機材のテストを遠隔操作で自動化するのも面白かったです。
残業した日の22時ごろ、周りに誰もいないのを見計らってから、それぞれの機材にラズベリーパイを接続します。パソコンからラズベリーパイにアクセスして、複数の機材を同時に自動で動かす。機材がテレビだったので、複数のディスプレイでイルミネーションを作るようなこともしていました。
いくつもの席でキラキラしていて、あれはきれいでした。私はコーヒーが飲めないので、カフェオレを飲みながら「今日、僕頑張ったよなぁ。イルミネーション、きれいだな」という感じで遊んでいました。
そのあと我に返って、「あっ、そうだ。これは何もなかったかのように直さなくてはならないのか」と思い、自分で仕事を増やしていました。もちろん、ほかの人は帰宅しているので、バレてはいません。
最近は CAD やレーザー、センサー、フィジカルAIに興味が出てきていて、また組み込みに戻るのも、そう遠くないと思っています。
まとめ
- 組み込みエンジニアのあるあるは、ほとんどが機材の話だった
- パソコンより機材が大きく、機材だけの席(ダンボールの棚)があり、配線はぐちゃぐちゃ。コーヒーはふたつき
- 機材は人数分なく、空くのを待つか、先に交渉しておく。テストチームに貸すと開発が止まる
- 機材を壊す。光ってパチっと鳴る、別の機材用のアプリを入れる。壊したら、上長に相談して顧客に謝罪しに行く
- 機材と OS、OS とアプリには組み合わせがあり、間違えると動かなくなる
- 説明書が長く(PDFで50ページほど)、プロジェクトの話は散らばっていて、人から聞くしかない。機材の勉強ばかりしている
- ビルドは昼食の前に走らせる。16時に直す所が見つかると残業が決まり、23時過ぎ、終電ギリギリまで
- 不具合の調査はハードウェアの確認から。ログを取るにも専用の機材が要る
- リリース直前は帰れず、レビューは長い
- それでも、書いたものが現実の機械を動かす面白さがある。ラズベリーパイで、テレビを使ったイルミネーションを作ったこともある
組み込みとWebのそれぞれの良さは、組み込みとWeb、どっちがいい?に書いています。組み込みの現場から、転職せずにWebの案件へ移った経緯は、組み込みエンジニアのWeb系転向にまとめました。