BLOG

もしもウェブエンジニアがハード開発を任されたら...スマホが家の鍵になる「Akerun」が直面した困難とは

2015年08月09日 01時54分 JST | 更新 2015年08月09日 01時54分 JST

IoTが盛り上がる中、ウェブエンジニアもIoTに関心を持ったり、ハードウェアの開発を任されたりするケースが増えている。ドアに取り付けるとスマートフォンで鍵の解錠が可能になるプロダクト「Akerun」を開発した株式会社フォトシンスの本間和弘氏も、もともとはサイトの制作を担当したウェブエンジニアだった。

2015-08-08-1439007639-8071982-Akerun4580x387.jpg

Akerunは、初期設定をしてドアに貼り付けるとスマートフォンで鍵の開け閉めができるようになる、スマートロックロボットだ。

ウェブを担当していたエンジニアがハードウェアの開発に携わったとき、どのような困難に直面するのか。また、そうした困難をどのように乗り越えていくことができるのか。本間氏と、株式会社フォトシンスの代表である河瀬航大氏が語るAkerun開発の裏側から、「ウェブエンジニアのハードウェアとの付き合い方」を探る。

akerun2

(写真左)河瀬航大氏 

代表取締役社長兼CEO。2011年、株式会社ガイアックスに入社。事業責任者として大手企業を中心にソーシャルリスニング・マーケティングを行う。2014年、株式会社フォトシンスを創業、代表取締役社長兼CEOに就任。スマートロックロボットAkerunを主軸としたIoT事業を手掛ける。また世界的ハックイベント「GreenHackathon」(自然環境×IT)を日本で主催している。

(写真右)本間和弘氏

大学時代はATR研究所で脳科学、趣味のメディアアート、修士で生物進化論的最適化手法の研究に従事。IT系ベンチャー企業への就職後、3年後に起業し現在に至る。AWSでのクラウド構築、Rails、iOS、Androidでの開発に加えて現在ではBLE機器の組込み開発を行う。

Akerunを生んだのは飲み会での雑談だった

—Akerunのアイデアは飲み会で生まれたと聞きましたが、本当なのですか?

河瀬:はい。僕が株式会社ガイアックスにいた当時、飲み会をよくやっていたんですよね。僕と、現在フォトシンスのメンバーである渡辺、熊谷、小林の4人で飲んでいるなかで、IoTの話も出てきたんです。そこで「家のなかでIoTによってハック出来る部分があれば」という話になったとき、「鍵」というアイデアが出てきたんです。

鍵ってそもそも制約が多いものですよね。持っているのも面倒だし、落としてはいけないし、彼女に合い鍵を発行することもリスクがあるし(笑)。「もし電子キーを一時的に発行できて、スマホで操作できるようになれば、めっちゃ便利だ!」という話で盛り上がり、プロトタイプを作ってみようということになったんです。

本間:そのプロジェクトに僕も合流しました。スタートした昨年4月の段階では、本業をやりながらプロジェクトを進めようと、日曜に集まって活動していたのですが、7月末くらいに日経新聞に取り上げられたんです。その記事が結構バズったことで、問い合わせが殺到して。それ以降は会社の業務を他の社員に引き継ぎ、Akerunのプロジェクトにフルコミットすることになりました。

akerun

—本間さんはもともとコミュニティサイトやブログサイトの開発をしていたウェブエンジニアだったそうですね。ハードウェアの開発に関わることに不安はなかったですか?

本間:僕は新しい技術に触れていたい性格なんです。ガイアックス時代、サイトの開発からスマホアプリの開発に移ったときも、新しいものに挑戦しているという感覚があってすごく楽しかった。ハードウェア開発というのも初めてのことでしたが、あまり不安もありませんでしたね。

専門用語を勉強してたら開発が遅れる......そんな時頼れる"エスパー"の存在

—ウェブエンジニアの立場から見て、特にハードウェア開発で難しかった点を挙げると、どんなことなのでしょう。

本間:一番大きかったのは、専門用語が全然わからなかったことですね。

例えば、Akerunのようなハードのプロダクトは「メカ」「エレキ」「ファームウェア」の3つの要素で成り立っているんですよ。まず、機械や装置の本体部分は「メカ」。一方、電子回路が「エレキ」。ハードを制御するためのプログラミングを「ファームウェア」と呼んでいます。

ウェブの開発をしてきた人間なので、僕はそれぞれの領域の言葉がわからなかった。でも、会議の場で専門用語がわからずに、議事内容を持ち帰れば、その分開発が遅れてしまう。その都度検索したり、詳しい人に聞いたりしなければならず、最初のキャッチアップの部分は大変でしたね。

—その課題は、どう乗り越えたのですか?

本間:他の分野で分からないことは専門家に聞くっていうのが、僕らの解決方法でしたね。たしかに専門書を読んで勉強するのはいいのですが、それでは開発が遅れてしまう。「だったら、その分野のエキスパートに直接質問しちゃえ」という感覚でした。うちはメンバーが多彩で、メーカー、キャリア、IT系のエンジニアなど、幅広い分野の出身が集まっていて、コネクションをたどるとそれぞれの分野の専門家がいたんです。それにAkerunの特徴である「スマートロック」って言葉自体が、結構面白いキーワード。エキスパートは好奇心が旺盛なので、面識がない僕らが相手でも、おもしろがって教えてくれたんです。

例えば、元NECで、今74歳のおじいちゃんがいるんですが、その方が回路についてアドバイスをしてくれていました。ファームウェアの部分では、原発に入るレスキューロボットをつくっていた人が、FacebookのMessengerに入っていて、疑問を投げかけると専門的なことでも解答してくれることもありました。

2015-08-08-1439007602-576534-3.jpg

僕はそうした専門家の方を「エスパー」って呼んでいるんです。僕らが1週間も悩んでいたことについて「何々が動かないです」と相談すると、専門家の方はたった30分で「これがこうなっているからじゃないですか」と回答をしてくれる。その指摘が、当たっている場合が多いんです。

エンジニアにとっては結構"あるある"な話なんですが、その分野についてレベル差がありすぎる場合、そもそも相手に適切な質問ができていないケースがあります。僕らが専門家の方を「エスパー」と呼んでいるのは、その分野に対して詳しくない僕らの質問の裏をよんで、適切な回答をくれるからなんです。

理想的な鍵などほんの一部。プログラムで解決できない境界があった

—実際の開発の面では、どんな苦労がありましたか?

本間:ウェブだと、プログラムは基本的に書いたとおりに動きます。でもハードウェアの開発では、そのまま動くつもりでプログラムを書いていたら、動かないことがあるんです。Akerunの場合、物理的に鍵をまわすという部分です。たとえば、「モーターを制御してセンサーでどこまで回ったかを見て、そこまで回っていたら回転を止める」という単純なプログラムを書くんですが、全然その通りに動かないことがある。要するに、特定の環境下ではちゃんと動くけれど、現実にはいろんな不確定要素があるじゃないですか。そうした不確定要素に対応できるようにするためには、相当プログラムを作り込まなければなりませんでした。

究極をいえば、プログラムで絶対に解決できない境界がある。ソースを眺めていても「ここが問題になっている」と特定するのは困難なんです。なので、実際にプロダクトの動作を確認するために、様々な鍵を回してみたり、回路にオシロスコープ(電気信号を可視化する装置)をくっつけて、どの部分がおかしいのか、他のエンジニアとペアになって観察する。それでも、問題となっている現象が出現するのはごく一瞬だったりもします。

なぜ思うように動かないかわからないときには、ホワイトボードにX-Y座標を書いて、物理的な知識をプログラムに反映させて対応します。もし原因がメカやエレキにあった場合は、最低でも2週間くらい経たないと実装に取りかかれないなど、PDCAサイクルの早さがウェブ開発に比べるとゆったりしている。「ソースを書いて、次の日にリリース」みたいなサイクルに慣れているエンジニアには、少しとまどいがあるかもしれません。

—「Akerun」のようなスマートキーのプロダクトの場合、プライバシーの問題も絡んでくるので、責任も重大ですよね。

本間:はい。だから入念なテストは必須です。ただ、これはIoTの強みでもありますが、もしファームウェア側だけで解決する問題だった場合は、サーバ側でファームウェアを修正し、それをスマホにダウンロードしてもらえば、スマホアプリ経由でファームウェアのアップデートができるんです。ファームウェアの領域では、ハードウェア開発において僕らウェブエンジニアの強みが生かせるかもしれませんね。

2015-08-08-1439007609-7668593-4.jpg

ハードウェア開発の解決方法はググっても出てこない

—ウェブ開発とハードウェア開発の本質的な違いは、どの部分に感じましたか?

本間:情報がクローズドかそうでないかということは大きかったです。ウェブ開発の領域だと、オープンソースの流れもありますから、基本、情報はシェアされる。エラーの解決法も、ググって解決方法を見つけられます。ただ、ハードウェアの場合、ノウハウが個人の中だけに留まっていることが多いんです。

公開できる部分についても、クローズドなコミュニティの中だけでしか発信を許されないことが多いので、そのコミュニティでの情報共有が活発じゃないと、情報を仕入れる方法がない。逆に、自分がわかっていることも発信できないわけです。結局は、現場でプロダクトを直に見て、触れるということを繰り返さないとわからないので、現場での勉強が重要だと思います。

—今後IoTが広まると、ますますウェブエンジニアがハードウェアの開発に関わる機会が増えてくると思います。エンジニア個人の意識という点で、気をつけるべきことはありますか?

ウェブとハードウェア、お互い知識を共有していないとIoTのプロダクトは作れないですよね。バグなどの問題に出くわしたときには特に、歩み寄りが必要になってくるでしょう。隣り合った領域同士で、お互いが学びあう姿勢が大切になると思います。

とにかくなんでも毛嫌いしないで学んでいく姿勢があれば、ウェブエンジニアでも、回路の知識などが蓄えられていくIoTは、自分の専門とは異なる領域に挑戦する姿勢が大事になる領域だと感じています。

(2015年7月28日掲載「HRナビ」より転載)

【関連記事】