ソフトウェアとハードウェアエンジニアの相互関係
5月ももう終わろうとしていて、段々暑くなってきましたね。
皆さん、UV対策をお忘れなく!🌞
さて、本題に入りましょう!
ソフトウェアとハードウェアが密接に関係していると言ったら皆さん当たり前だと思うでしょう。しかし、【鶏が先か、卵が先か】と同じように、アプリや機械を作るときに、ソフトとハード、どちらが先か、分かりますか?
今回の記事では、開発から見たソフトウェアとハードウェアの関係と、
開発時に考慮すべき点について解説していきます。
弊社のハードウェアエンジニアの日高さんと、ソフトウェアエンジニアのフランシスカさんの開発過程を参考に書きました。
エンジニア間のコミュニケーション
このように、ハードウェアの部品でも、ソフトウェアが動かないとただの金属になってしまうので、「ハードウェアのスペックで足りるか」をメインに、ソフトウェアのエンジニアと相談する必要があります。
お互いをどれぐらい理解する必要があるか
ハードウェアエンジニアとしては、ソフトウェアのエンジニアの人が開発しやすいように、そして迷惑をかけないように、できれば良いハードウェアを選びたいという気持ちがあるそうです。
また、弊社の場合、ソフトウェアのエンジニアはハードウェアのことをけっこう理解している状態です。
弊社のソフトウェアのチームリーダーであるフランシスカさんはCEO・COO共に優秀だとおっしゃっていました。
気になる方は ↓ の社長とのインタビューもぜひ読んでみてください。
なぜハードを、ソフトの方に合わせるのか
理由を尋ねると、「ハードウェアだけ作っても仕方がないという部分があるんですよね。」と答えました。
「これはけっこう有名な話なんですけど、ゼルダの伝説シリーズを作った宮本さんが、ファミコンが出せる色を決めたのはハードウェアのエンジニアじゃなくて、ソフトウェアのエンジニアだと言ったらしいです。」
「その話が印象に残ってて…確かにハードウェアの必要な機能をソフトウェアの人が決めるような気がするんですよね。その昔の話でわりと納得するので、その考えでずっと作ってたつもりです。」
つまり、ソフトが人間でいうのであれば「脳」で、「体」(ハード)を動かすものになりますね!🧠
⚫ソフトとハードの本質
もう一つの理由が、ハードウェアというのは一度作ってしまうと中々変更が効かないので、作る前の段階でソフトウェアの人と相談する必要があります。「ソフトウェアの人がメインの方が、結果的に良い製品・サービスができると思います。」
確かに、ソフトウェアはコードなので、いつでも書き換えられますし、定期的にアップデートを行いますが、ハードウェアの買い替えは会社にとっても消費者にとってもけっこうお金がかかりますね。
「新テクノロジー」とソフトとハードとの関係
エンジニアとして、どんどん出てくる新しいテクノロジーに追いつくのはけっこう大変なイメージもあるかと思いますが、これも実はソフトウェアとハードウェアとでは全然違います!
長年の経験を持つエンジニアでも、常に新しい情報を集めたり勉強したりしているようです。技術が良くなると、それを基にして、色んな物を作る人も出てくるので、それがまた新しい刺激を与え、また新しいことを生み出す、というサイクルです。これはソフトウェアでもハードウェアでも一緒ですが、新しい技術が出てくるスピードが違います。
ハードウェアは電気などの物理の現象が基になっているので、いきなり根本的に変わったり、複雑になったりすることはありません。
一方、ソフトウェアはベースやサービス自体が変わったりすることもあるので、全てが一気に変わることもあります。
「テクノロジー」とひとくくりにしているのですが、ハードウェアの側面では、機能がよりよくなる、あるいはより効率的になることが多いです。例えば、「CPUが小さくなりました」とか「電池の発熱を防ぐことができました」など、今までの物のとは仕組みや機能が似ており、もっと楽に使えるものになることが多いです。
それに対し、「このサービスが終了しました」や「古いプログラミング言語には対応していません」などの、ソフトウェアの変更の方が激しいものになります。
共同開発の実体験
弊社の「Care Cube」という手のひらサイズのAIアシスタントなのですが、
開発しているときは、メカの人と電気の人(ハードウェア)が、Cubeのその空間をどう譲り合うかというのが課題でした。また、顔認証のソフトウェアは動くかどうか、カメラの画像処理をして、発話をして、というところの処理能力が十分かどうかというところをソフトウェアのエンジニアと話をして部品を決めていきました。
「Cubeの製品自体が、メカも電気もソフトも、メカだけで作っていなくて、電気だけで作っていなくて、ソフトだけで使っていなくてという、足らないところももちろんあるんですけど、けっこうバランス良く作った、技術的にもけっこう珍しいものです。」
そして、コロナになって、あとから体温を測る温度センサーを追加しました。しかし、ハードウェアは後から変えることは中々難しいので、Cube本体の中ではなく、隣に取り付ける形になりました。
技術的な観点から見た弊社のCare Cubeの一番の強みは、エンジニア同士で相談して譲り合って中に色々積み込むことができた、というところですね。
弊社のエンジニアにインタビューする機会があって本当によかったと思います。「ハードウェアは後から変えられない」とか「ソフトウェアはハードウェアを動かすものだ」とか、こういうふうにまとめると当たり前のことにはなってしまいますが、普段からこの関係を考えて開発していく重要性を思い知らされました。
弊社のCare Cubeを6月6日までTiBで展示しております!
東京にいらっしゃる方はぜひ見に来てください!
音声からわずか3秒でストレスチェックを行う小型AIアシスタントなのですが、TiBで誰でも試せるようにしております!
🚩「有楽町駅」から徒歩1分、「銀座一丁目駅」から徒歩3分です!
弊社のnoteは毎週金曜日に投稿しております!また来週もぜひ見に来てくださいね 📝