組み込み開発ってどんな仕事なの?エンジニアの俺が教える
入社してから2年も経ちました。
ブログ管理人のmeideruは現在、組み込み開発の仕事に従事しております。
今日は、組み込み開発を始めて、知ったこと・感じたことを紹介します。
目次
スポンサーリンク
私のプロフィール
新卒2年目。
大手家電メーカーにて、組み込み開発の仕事に従事しております。(meideru blogは匿名で運用しているため、会社名は秘密です)
学生時代は、画像処理系の研究と、趣味でウェブ開発やスマホアプリ開発などをしてました。
その他にも、プログラマのアルバイトという形で、機械学習を扱ったりしていました。
入社するまでは、組み込み開発とは無縁の生活を送っておりました。
詳しいプロフィールは、以下をご覧ください。
組み込み開発を始めて、知ったこと・感じたこと
C/C++が主な開発言語
デバイスのレジスタを直で叩いたりする必要があるため、開発言語はC/C++となります。
PythonやPHPといったスクリプト言語しか書けない、ゆとり世代には、キツイと思います ><
(ちなみに、私は学生時代からどちらも触れたことがあるので、なんとか上手くやれています)
リソースが限られているため、タスク/スレッドの作成は厳重に管理されている
ウェブ開発やスマホアプリの開発と違って、組み込み開発ではリソースがとても限られています。(ここでいうリソースというのは、CPUやメモリのことです)
タスク/スレッドを作成してプログラムを動かす場合は、要注意です。私の会社だと、ソフトリーダーと呼ばれる取りまとめの方に、申請し許可を得る必要があります。
また、優先度の高いタスク/スレッドだと、しっかりと理由を説明しなければ、作らせてもらえません。
勝手に作ってmasterブランチにマージしたりすると、マジで怒られますw
開発に窮屈さを感じることがある
上で書いたとおり、組み込み開発では、リソースが限られており、自由にコードを書くことが許されないケースがたくさんあります。
些細なコード修正を行うときでも「この修正は、他チームが動かしている処理を妨げないだろうか?」と、常に考える必要があり、窮屈さを感じることが多々あります。
(逆に、限られたリソースの中でコードを書くのが面白い、という人たちもいます)
電気設計エンジニアと喧嘩の毎日
ウェブ開発やスマホアプリの開発だと、ソフトエンジニアだけの話で閉じますが、組み込み開発だと、電気設計エンジニアと常に話し合いをする必要があります。
(ここでいう電気設計エンジニアとは、実際に回路図を引いたりする人のことです)
大体の場合、喧嘩になることが多いです (^o^)
「データシート通りにレジスタ叩いてるけど動かねーぞ。回路図間違ってんじゃないの?確認しろ」
「は?なんで勝手にデバイス変えてんの?またドライバ書かなきゃじゃん!」
こんな感じですw
基本的にソフトエンジニアと電気設計エンジニアは仲が悪いです。
私の会社だけの文化かと思っていましたが、他の大手メーカーで働いてる友達に聞いても同じようなことを言っていました。どこも大体、同じような感じだと思います。
組み込み開発は、進化が遅い分野(というか、進化はない?)
ウェブ開発やクラウド、AIといった分野と比較すると、組み込み開発という分野は、かなり進化が遅いと感じます。(というか進化がないんじゃないかと感じます)
なので、常に新しいことにチャレンジしたいエンジニアには、あまり向かないです。
ちなみに、私は常に新しいことにチャレンジしたいタイプなので、組み込みの仕事を長く続けるつもりはありません。
リリース前の評価(テスト)に莫大なコストを費やす
ウェブやスマホアプリだと、リリース後のバグ修正は簡単です。
ウェブであれば、サーバ上のコードを書き換えるだけで済みます。スマホアプリなら、ストアに修正したアプリを公開すればよいでしょう。
しかし、組み込み機器だと、そうはいきません。一度出荷してしまうと、バグ修正のアップデートに莫大なコストがかかってしまいます。
(スマホやゲーム機のような、ネットワーク経由でアップデートができる組み込み機器は除く)
したがって、リリース前の評価(テスト)には、莫大なコストを費やします。
高齢エンジニアが多い
若きエンジニアは、ウェブ系やスマホアプリ、AI、クラウド、フィンテックといったような先端分野で働きたがる傾向があります。
したがって、組み込みエンジニアは比較的、高齢エンジニアが多いです。
私の会社だと、平均年齢は40中盤くらいです。
下の階層に行けば行くほど、高齢で職人気質の熟練プログラマが集まる
ソフトウェアの下の階層とは、よりハードに近いセクターのことで、最下層は、デバイスドライバを書いたりする人たちのことです。
不思議なもので、ソフトウェアの下の階層に行けば行くほど、職人気質の高齢熟練プログラマが集まる傾向にあります。
この人達の特徴は、超人的に綺麗なコードを書きますが、ウェブ開発やAI、クラウド、フィンテックといった最新の技術に全く興味がありません。
私は、こういった人たちと働いており、日々、苦戦しながら学びを得ています(´・ω・`)
総括
近年、消費がモノからサービスに移行しており、組み込みエンジニアよりも、ウェブ系、スマホアプリ、クラウド、AI、フィンテックのような分野のエンジニアが重宝されるようになってきていると感じます。
しかし、組み込み開発も重要な仕事であり、面白いところも多々あります。
今日は、そんな組み込み開発の実情を少しでも知って、興味を持ってもらえればと思い、こんな記事を書いてみました。
それでは、また
スポンサーリンク
関連記事