IoTエンジニアを目指すには

スキルと経験をIoTエンジニア誕生に導くためのステップ・バイ・ステップ

みなさん、こんにちは。株式会社ソラコムでソリューションアーキテクトとして働いています横田(shun)です。本記事はソラコムのエンジニアが全3回でお送りする「IoTエンジニアを目指すには」の第2回の記事となっております。

第1回では、IoTエンジニアとは?から始まり、IoTエンジニアを取り巻く状況やIoTエンジニアの種類をご紹介しました。

本記事では、IoTエンジニアに関わる技術要素から、どのようなステップでIoTエンジニアになっていけばよいかについて語っていきたいと思います。

IoTにおける技術要素

IoTは「テクノロジーの総合格闘技」とも言われており、非常に多くの技術要素が関わってきます。大きく分けるとデバイス、ネットワーク、クラウドの3つに分類されることが多いですが、その中にはさらに細かい分類があります。

IoTはテクノロジーの総合格闘技
IoTはテクノロジーの総合格闘技

たとえば、デバイスで考えると取得したいデータに応じたセンサーの選定や通信規格に応じた通信モジュールの選定といった機能的な部分だけでなく、設置環境に応じたサイズ、電源、防水等の非機能的な要件、セキュリティ対策や運用に関わるデバイス管理といった部分も視野に入れた検討が必要です。これらをハードウェアをどう作るか、ソフトウェアをどう作るかの両面から考える必要があります。また、無線通信を行うデバイスを開発する際は各種法令を遵守する必要があり、技適に関する知識が必要になるケースもあります。

クラウドに視点を変えてみると、データをどのように収集蓄積するかのサービスやデータベース、ストレージの選定やデータの可視化・通知といった、実際にユーザーが触るアプリケーションを構築するためのノウハウが必要です。さらにユーザー向けの機能だけでなく、デバイスが正常に動いているかの死活監視やファームウェアのアップデートなどの運用に関わる管理機能も必要となってきます。また、長期間の運用を見据えてクラウド自身のアップデートを円滑に行えるような仕組みやアーキテクチャを採用することも大切になります。

ネットワークはデバイス、クラウドをつなぐ非常に重要な技術要素であり、速度、通信容量、セキュリティ、接続性などの要件にフィットする通信規格を選定する必要があります。みなさんがスマホでよく使う近距離で高速な無線通信が可能なWi-Fiや屋外で使えるセルラー通信、省電力・小容量に特化したSigfoxや高速、大容量であるが配線の制約を受ける有線LAN接続まで多くの選択肢から最適な通信を選ぶことを求められます。

そして、IoTを「テクノロジーの総合格闘技」たらしめている最大の理由はこれだけ多くの要素を含む、⁠デバイス⁠⁠、⁠ネットワーク⁠⁠、⁠クラウド」を一気通貫の最適解として構築しなければならない部分にあります。よくあるパターンとしてデバイス、クラウドを先に決めてしまいネットワークを後回しにしたことで最適な構成を取ることができなかったり、ひどい場合だと個々の分野では最適に作り込んだはずが、統合の段階でうまくいかず全て再検討となってしまうこともあります。

ここまでの話を聞くと「IoTエンジニアは敷居が高い」⁠ここまでの技術分野を網羅するにはどうしたらいいのか」といった感想が浮かぶかと思います。

ご安心ください。これほどの広い技術分野に対して一人で精通しなければならないわけではございません。実際にIoTプロジェクトに関わっているエンジニアであっても、今話した全ての技術分野の知識を完璧に持っている方はほとんどいないと思います。次からIoTエンジニアになるためのステップと称して、いかにIoTテクノロジーに向き合っていくかをご紹介します。

IoTエンジニアへのステップ

では、IoTエンジニアになるためにはどのようなパスがあるのでしょうか?私の経験上、IoTエンジニアのキャリアパスはさまざまで、決められたルートがあるわけではないと思っています。私自身はハードウェア設計エンジニア出身ですし、周りを見ても、ネットワーク出身のエンジニアもいれば、SIer出身のエンジニアもいます。みなさんも、先ほどあげた技術の中で自分が関わっている分野が入っていた方も多いのではないでしょうか。もし自分が得意な分野があれば、そこがまさに最初の一歩になります。

身につけたスペシャリティから踏み込んでいく

ここで例として私の経験をお話したいと思います。

私のエンジニアとしてのキャリアは、先ほど述べたようにハードウェアエンジニアからスタートしました。ハードウェアと言ってもいろいろ種類があるのですが、私は電子回路・基板設計のエンジニアでした。当然ですが主にハードウェアの知識が身につく分野で、基本的な回路の知識はもちろん、ハードウェアとしてのセンサーの仕組みや精度、消費電力を抑えるための電源の知識、無線モジュールの特徴や各種電波に関する認証試験の知識を得ることができました。その中でハードウェアの評価に必要なファームウェアを開発したり、無線認証試験を進める中で無線そのものの特性に関する知識やモジュールの知識、技適に関する知識などソフトウェアや通信に関する部分にも少しずつ広がっていきました。

さらに、そこからちょうどIoTを利用した検証プロジェクトに関わる機会があり、少人数でデバイスから得られたデータを可視化するシステムを開発を担当しました。私にとってもクラウド側の開発は初めてではありましたが、チーム内外の有識者の知恵を借りて少しずつ実装を進めながら失敗を繰り返し、クラウドのノウハウも得ることができました。また、デバイスの知識がベースにあるため、クラウドとデバイスのインターフェースをどのように設計したら最適になるか、デバイスのよくあるトラブルをクラウド側からどのように検知するか、どのように対応したらよいか?といった、デバイスとクラウドを一気通貫で考えなければならないケースにおいて強みを発揮でき、IoTエンジニアとしての第一歩を踏み出せたことを実感したことをよく覚えています。

これはあくまで私の例ですが、おそらくほとんどのIoTエンジニアが似たようなプロセスを経ているかと思います。IoTが普及してきていると言っても、まだまだIoTエンジニアという形で最初からキャリアをスタートするケースは現時点では稀かと思います。最初になんらかのエンジニアとしてキャリアをスタートさせ、IoTを始める機会があったときに自分のスペシャリティをベースに知識やノウハウを学習し、少しずつ自分が触れる技術分野を拡張していく。こういったステップがIoTエンジニアへの道であると思います。

私の場合はデバイスの知識をベースにクラウド側へ知識を広げていきましたが、逆もまた成り立つかと思います。一昔前であればデバイスは専門家が設計開発を行うことが主流でしたが、最近ではRaspberry PiやArduinoといった汎用的に扱うことが可能なデバイスが安価に簡単に手に入る時代になってきています。クラウドの知識をベースにデバイスをまず触ってみる、それこそLチカ(デバイスにLEDを接続して光らせる、ソフトウェアで言う⁠Hello, World⁠的な位置付け)からスタートし、どんどんレベルを上げて開発を進めていくことも、個人レベルで十分に可能です。また、既存のデバイスを選定する上でも、どのようなデータ形式で送信されるか、どのようなプロトコルに対応しているか、暗号化や認証が可能か? といった、クラウドに連携する上でかかせない要素については十分に力を発揮できるのではないでしょうか。

自分の得意な技術分野をベースに足りない場所に一歩踏み出してみる、まずは技術に触ってみて失敗を繰り返しながら技術を習得していく ―新しい分野なので失敗は付き物です。失敗を恐れず一歩踏み出すことができれば、それがあなたのIoTエンジニアの始まりです。

なお、ソラコムが運営するデバイス通販サイト「SORACOM IoT ストア」では、1個からプロトタイプ開発で使えるデバイスを提供しています。また、その多くについて無料の開発手順書「IoT DIYレシピ」も公開していますので、試してみようと思う方はぜひご覧ください。

「IoT DIYレシピ」のメニュー
「IoT DIYレシピ」のメニュー

一人で何もかもを作るわけじゃない

とはいえ、みなさんも経験があるように技術を習得するにはそれなりの時間がかかります。IoTプロジェクトによっては技術を習得しながら進めるだけのスケジュール的な余裕がないケースも多いと思いますし、何もかもを一人でやろうとすると効率が悪くなることもあります。

ですので、IoTプロジェクトを進める上で多様性のあるチームで開発を進めることも非常に有効です。実際、ほとんどの開発プロジェクトはチームで動くことがほとんどかと思います。たとえばメーカーであれば、ハードウェアに強いメンバー、ソフトウェアに強いメンバー等が揃えられる可能性もあると思いますし、SIer等のソフトウェアの会社であってもデータベースに強いメンバー、フロントエンド開発が得意なメンバー等、みなさん何らかの得意分野をお持ちなのではないかと思います。もしかしたら趣味で電子工作をしているメンバーをいるかもしれません。それぞれの強みを活かしながら、IoTに必要な技術分野を分担して習得することで、よりチームとしてのスループットを上げながらノウハウの習得も加速させることができます。

もちろん最初から多様性のあるチーム開発は、日本の会社だとなかなか実現しにくい部分をあるとは思います。しかし、IoTエンジニアの始まりは未経験の分野に一歩踏み出すことから始まるということを先ほども述べました。お互い初めてのことになるので、失敗を恐れる必要はありません。各メンバーがリーダーシップを持ち、それぞれの技術分野を切り開いていく。うまくいったこともうまくいかないことも共有し、少しでも自分より知見のあるメンバーがいればすぐに聞いて協力し合う。そんな環境も、新しいプロジェクトであれば作り上げることが可能だと思います。

また、どうしても社内ではリソースが足りないということもあります。その場合は外部の力を借りることも非常に重要です。どの会社も、自社だけでは開発ができない範囲は外部の会社に委託することはよくあると思います。それはIoTでももちろん例外ではありません。SIerであればデバイスの会社、逆にメーカであればSIerといった形で自社に足りない部分を補って進めることは非常に有効です。その際によりIoTエンジニアとして成長していための重要なポイントは、委託する会社に全て丸投げするのではなく、パートナーとして一緒にプロジェクトを進めていく姿勢です。最初はどのような仕様を作れば良いのか、どういった設計をすれば良いのかわからないことが多いと思います。そういったケースにおいては技術的に専門性の高い会社さんをしっかり頼り、技術的な知見を共有してもらいながら進めることが可能です。そして、少しずつ自分の中に新しい技術的な知見を蓄えていくことが、IoTプロジェクトの推進とIoTエンジニアとしての成長に大きく寄与します。

ソラコムでもこういった外部との連携をエコシステムとして構築する取り組みを行っています。たとえば、SORACOM パートナースペース(以下、SPS)という取り組みを行っており、デバイス、インテグレーション、ソリューション、テクノロジーといった分野に長けた会社様と連携し、ユーザーにご紹介することで足りない技術分野をサポートするといった取り組みを行っています。また、私が務めるソリューションアーキテクトの活動がまさにお客様の足りない知見を補ってプロジェクトを推し進めていくことにあります。ソラコムのソリューションアーキテクトはお客様の課題を単純に解決するだけではなく、ソラコムが持つIoTの知識をお客様にTransferしていく、お客様が自ら自走してIoTプロジェクトを進めていけるように支援することが大きなポイントです。なぜなら、IoTは作って納品して終わりではなく、長期間デバイス、ネットワーク、クラウドと付き合いながら運用し、改善する必要があるからです。

パートナーとのエコシステム構築
パートナーとのエコシステム構築

まとめ

いかがでしたでしょうか?本記事ではIoTエンジニアに必要な技術要素から実際にIoTエンジニアになるためのステップ、チーム開発についてお話をしてきました。技術要素だけを聞くと途方もない分野に思えるかもしれません。しかし、記事内で述べてきたように全てを一人で完璧にマスターする必要はありません。まずは自分の得意分野、スペシャリティを持つこと。それをベースに必要な技術分野に少しずつ知見を広げていくこと。これができればIoTエンジニアに必要なスキルはおのずと付いてきます。ぜひ参考にしていただければと思います。

次回は、そんなIoTエンジニアを目指す上で必要な心構えや技術との向き合い方について熱く語っていただきます。ご期待ください!

おすすめ記事

記事・ニュース一覧