見出し画像

ソフトウェアとハードウェアエンジニアの相互関係

5月ももう終わろうとしていて、段々暑くなってきましたね。
皆さん、UV対策をお忘れなく!🌞

さて、本題に入りましょう!

ソフトウェアハードウェア密接に関係していると言ったら皆さん当たり前だと思うでしょう。しかし、【鶏が先か、卵が先か】と同じように、アプリ機械を作るときに、ソフトとハード、どちらが先か、分かりますか?


今回の記事では、開発から見たソフトウェアハードウェアの関係と、
開発時に考慮すべき点について解説していきます。
弊社のハードウェアエンジニアの日高さんと、ソフトウェアエンジニアのフランシスカさんの開発過程を参考に書きました。

エンジニア間のコミュニケーション

             【エピソード】
昔使おうとしていたCPUが生産中止になったことがあります。
その生産中止になったCPUの性能は良かったので、別のCPUではどうしても性能が下がってしまうんです。
選択肢が限られている中で、ハードウェアの部品でも、選んでも大丈夫かどうかというのは、ソフトエンジニアの人に相談して、そのスペックで行けるか確認して、評価して、採用したというのはありますね。

このように、ハードウェアの部品でも、ソフトウェアが動かないとただの金属になってしまうので、「ハードウェアのスペックで足りるか」をメインに、ソフトウェアのエンジニアと相談する必要があります。

お互いをどれぐらい理解する必要があるか

弊社のハードウェアエンジニア曰く、「実際は、半分ぐらい知っておきたい気はするんですけど、実際はその半分の2割ぐらい知ってたらいいかなぁっていうとこだと思いますね。」

ハードウェアエンジニアとしては、ソフトウェアのエンジニアの人が開発しやすいように、そして迷惑をかけないように、できれば良いハードウェアを選びたいという気持ちがあるそうです。

また、弊社の場合、ソフトウェアエンジニアハードウェアことをけっこう理解している状態です。

弊社のソフトウェアのチームリーダーであるフランシスカさんはCEO・COO共に優秀だとおっしゃっていました。
気になる方は の社長とのインタビューもぜひ読んでみてください。

なぜハードを、ソフトの方に合わせるのか

「そっちの方じゃないと逆にダメだと思います。」 

理由を尋ねると、「ハードウェアだけ作っても仕方がないという部分があるんですよね。」と答えました。

「これはけっこう有名な話なんですけど、ゼルダの伝説シリーズを作った宮本さんが、ファミコンが出せる色決めたのはハードウェアのエンジニアじゃなくて、ソフトウェアのエンジニアだと言ったらしいです。」

「その話が印象に残ってて…確かにハードウェアの必要な機能をソフトウェアの人が決めるような気がするんですよね。その昔の話でわりと納得するので、その考えでずっと作ってたつもりです。」

つまり、ソフトが人間でいうのであれば「脳」で、「体」(ハード)を動かすものになりますね!🧠

⚫ソフトとハードの本質

もう一つの理由が、ハードウェアというのは一度作ってしまうと中々変更が効かないので、作る前の段階でソフトウェアの人と相談する必要があります。「ソフトウェアの人がメインの方が、結果的に良い製品・サービスができると思います。」

確かに、ソフトウェアはコードなので、いつでも書き換えられますし、定期的にアップデートを行いますが、ハードウェアの買い替えは会社にとっても消費者にとってもけっこうお金がかかりますね。

「新テクノロジー」とソフトとハードとの関係

エンジニアとして、どんどん出てくる新しいテクノロジーに追いつくのはけっこう大変なイメージもあるかと思いますが、これも実はソフトウェアとハードウェアとでは全然違います!

「大変という感覚は半々ぐらいですね。めっちゃ大変っていう感じでもなく、テクノロジーが上がると、逆に機能実現が簡単になることが多くあるので、ちょっと難しいんですけど、それを覚えると楽になるという見返りの方が多いです。」

ハードウェアのエンジニア

長年の経験を持つエンジニアでも、常に新しい情報を集めたり勉強したりしているようです。技術が良くなると、それを基にして、色んな物を作る人も出てくるので、それがまた新しい刺激を与え、また新しいことを生み出す、というサイクルです。これはソフトウェアでもハードウェアでも一緒ですが、新しい技術が出てくるスピードが違います

ハードウェアは電気などの物理の現象が基になっているので、いきなり根本的に変わったり、複雑になったりすることはありません。
一方、ソフトウェアはベースやサービス自体が変わったりすることもあるので、全てが一気に変わることもあります。

「テクノロジー」とひとくくりにしているのですが、ハードウェアの側面では、機能がよりよくなる、あるいはより効率的になることが多いです。例えば、「CPUが小さくなりました」とか「電池の発熱を防ぐことができました」など、今までの物のとは仕組みや機能が似ており、もっと楽に使えるものになることが多いです。
それに対し、「このサービスが終了しました」や「古いプログラミング言語には対応していません」などの、ソフトウェアの変更の方が激しいものになります。

共同開発の実体験

弊社の「Care Cube」という手のひらサイズのAIアシスタントなのですが、

「あの中に組み込みのリナックスのボードを載せて、カメラを載せて、声をする方向を向くという機能もあって、しかもバッテリーも載せるという、製品の使用に対して、よく必要なハードウェアの要素を詰め込んだと思いますね。」
「あそこまでぎゅうぎゅうに詰め込んだ製品というのは意外と少ないんじゃないかなと思います。」

開発しているときは、メカの人と電気の人(ハードウェア)が、Cubeのその空間をどう譲り合うかというのが課題でした。また、顔認証のソフトウェアは動くかどうか、カメラの画像処理をして、発話をして、というところの処理能力が十分かどうかというところをソフトウェアのエンジニアと話をして部品を決めていきました。

「Cubeの製品自体が、メカも電気もソフトも、メカだけで作っていなくて、電気だけで作っていなくて、ソフトだけで使っていなくてという、足らないところももちろんあるんですけど、けっこうバランス良く作った技術的にもけっこう珍しいものです。」

そして、コロナになって、あとから体温を測る温度センサーを追加しました。しかし、ハードウェアは後から変えることは中々難しいので、Cube本体の中ではなく、隣に取り付ける形になりました。

PLEN Cube と Care Cube

技術的な観点から見た弊社のCare Cubeの一番の強みは、エンジニア同士で相談して譲り合って中に色々積み込むことができた、というところですね。

弊社のエンジニアにインタビューする機会があって本当によかったと思います。「ハードウェアは後から変えられない」とか「ソフトウェアはハードウェアを動かすものだ」とか、こういうふうにまとめると当たり前のことにはなってしまいますが、普段からこの関係を考えて開発していく重要性を思い知らされました。

弊社のCare Cubeを6月6日までTiBで展示しております!

東京にいらっしゃる方はぜひ見に来てください!
音声からわずか3秒でストレスチェックを行う小型AIアシスタントなのですが、TiBで誰でも試せるようにしております!

🚩「有楽町駅」から徒歩1分、「銀座一丁目駅」から徒歩3分です!

弊社のnoteは毎週金曜日に投稿しております!また来週もぜひ見に来てくださいね 📝


この記事が参加している募集