IoT開発
IoTという言葉をよく耳にするようになりました。
色々な「もの」がインターネットにつながるだけと言えばそうですが、開発するにあたっては何か変わるのでしょうか。
ネットワーク部分の開発が増えるだけと言えば確かにそんな気もします。
では、いまの延長で良いのでしょうか?
実はそうではないのです。
基本的な路線は同じで今までの製品へ繋がる仕組みを作る。
だけではダメで、色々な物につながるが故に今までとは違う考慮が必要になります。
では何に考慮が必要なのでしょう。
1. 開発するシステム以外も考慮する
これまでは他システムを考慮する必要はあまりありませんでした。開発するシステムにだけに着目すれば事足りたのです。
ですがIoTの開発となれば話は別です。
他システムや開発システムで使用する製品以外についても考慮が必要です。
その理由についてみていきましょう。
① 他システムとの競合
開発するシステムが防犯システムだったとしましょう。きっと玄関や窓の鍵の開錠や施錠ができます。
カーテンは当然として窓くらいであれば開け閉めも可能かもしれません。
侵入監視システムの開始、解除もできそうです。
同じ環境へ部屋を快適に保つシステムが接続されるとしましょう。
快適に保つのですから、室温があがればカーテンも閉めるでしょうしエアコンも動きます。
場合によっては換気のために窓の開け閉めもするかもしれません。
もうお分りかもしれませんが、別システムが同じ対象に違った命令を出すことがあり得ます。
何も対処しなければ別システム同士でずっとON/OFFを繰り返すことになりかねません。
ではどうなるのが正解でしょうか?
あなたのシステムは防犯システムですので、快適に保つシステムより優先度は高いでしょうから防犯システムの命令を優先させるべきでしょうか。
では、どうやって防犯システムの命令を優先させますか?
これは仕様決めの時点で考慮しなければいけないレベルの事柄です。
② 想定外の製品の接続
IoT製品の使用期間は比較的長く、10年を超えることも珍しくありません。
この10年の間に何が起こるでしょうか。
- システムに接続されていた機器のバージョンが上がる
- 未知の機器が接続される
- 未知のシステムが接続される
などなど
使用期間が終わるまでに様々な事が確実に起こります。
そういった事が起こったときに、システムにどんな影響が起こるでしょうか。
また影響が出た時にどう対処するべきでしょうか。
仕様として埋め込んでおくべきでしょうか。運用で対処すべきでしょうか。
こういった事も開発時に決めておくべき事柄です。
2. 不具合発生時の影響
従来の製品でもリリース後の不具合は世間に大きな影響を与えたかもしれません。
IoT製品はもっとダイレクトに他システムや製品に影響を与える可能性があります。
自社システムの不具合が命や財産を守るシステムに影響を与えた場合どうでしょう。
数億、数十億の賠償問題になるかもしれません。
命に係わる場合は賠償問題で済みません。取り返しのつかないことになります。
しかしシステムや製品には必ず不具合が内在しているものです。
では、どうやって不具合に対処すべきでしょうか。
必ず発生すると仮定すると、どうやって早期発見と対策を行うかが問題になります。
その為の方法論と仕組みも開発段階から考慮しなければレベルの事柄です。
3. まとめ
大きく2点のお話をしてみました。
他にもIoT開発で気を付ける点は多々ありますが今回のお話だけでも、今までの開発・テスト要件に増して、IoT開発には必要な観点がある事がお分かりになったかと思います。
なかなかこういったことを一人、1部門、1社で補うには難しいものがあります。
特にメーカーであれば自社製品には詳しくても畑違いの製品や業界には疎いものです。
ノウハウが無い場合も多いでしょう。
実はこうしたことは、VやW字の開発で要求要件に答えられるか?を考えてテストするテストエンジニアの視点が大いに役立つのです。
更に第三者検証会社であれば、様々な業界やシステムのテスト経験があります。
そのノウハウが必ず役に立ちます。
上流工程検証やアドバイザリーサービスというと堅苦しくなってしまいますが、要件や仕様決めの場に気の利いたテストエンジニアを参加させるだけでかなりの効果が見込めるはずです。
IoT機器を開発する際には、たとえ一人でもテストエンジニアを参加させてみてはいかがでしょうか。