PR

「リーンスタートアップ」の手法でサービスを立ち上げ

写真4●ソニックス グローバルマーケティング本部 部長代理兼プロダクト開発本部の鈴木茂樹部長(右)と、同社スマートデバイスソリューション事業部R&Dグループ システムエンジニアの山田和弘氏(左)
写真4●ソニックス グローバルマーケティング本部 部長代理兼プロダクト開発本部の鈴木茂樹部長(右)と、同社スマートデバイスソリューション事業部R&Dグループ システムエンジニアの山田和弘氏(左)
[画像のクリックで拡大表示]

 サービス内容はもちろん、価格面でもきわめてユニークと言えるこのScirocco Cloudというサービス、いったいどういう経緯でプロジェクトを立ち上げてサービスを提供しようという話になったのだろうか。ソニックスを訪問して、サービス運用および開発を手がけている二人の担当者(写真4)に詳しく話を聞いてみた。

 まずは開発経緯について、サービスを統括する立場にいる同社グローバルマーケティング本部 部長代理兼プロダクト開発本部の鈴木茂樹部長に尋ねてみたところ、「元々2011年5月にオープンソースソフトウエア(OSS)として公開したSciroccoというAndroid向けテスト自動化ツール(ライブラリ)があり、これが特に海外の開発者などから高い評価を受けていた。それならば、開発者が必要としているであろう多数のテスト用端末の用意も含めてサービスとして提供してはどうかという話になった」という答えが返ってきた。

 話が決まってからサービス提供までの動きは早かった。ベータ版サービスを公開したのは2012年1月のこと。そのわずか2カ月後の3月には、正式サービスを提供開始している。「新しいタイプのサービスということで、我々が思い描いているサービス像とユーザーが求めるサービス内容にズレが生じる可能性が十分考えられた。そこで、必要最小限のサービスを作って迅速に公開し、ユーザーからのフィードバックを受けながら開発を進めるという、いわゆる“リーンスタートアップ”の手法を使った」(鈴木部長)。

 実際に、正式サービスの公開後もユーザーからの意見を随時吸い上げる形で細かい機能アップや修正を何度も実施したという。9月にはユーザーインタフェースを一新するという大胆な変更も施した。「機能面だけでなく、サービスの方向性などもユーザーからのフィードバックを基に柔軟な姿勢で軌道修正している。サービス開始から3カ月ほど経った時点で『ちょっと方向性が違っているな』と気付かされ、開発ロードマップをいったんリセットして練り直したりもした」(鈴木部長)。

 ユーザーインタフェースの設計なども含め、専任者としてScirocco Cloudのサービス開発全般を担当している同社スマートデバイスソリューション事業部R&Dグループ システムエンジニアの山田和弘氏も、「機能面では、ユーザーから例えば『メモリー使用量を見たい』『実機が出力する詳細なログをコンソール上で見たい』といった要望が出ていたのでパネルとして追加した。当初の予定にない機能でも多くのユーザーが必要とする機能についてはできる限り対応するようにしている」と付け加えた。

Android端末ごとの細かな仕様差の吸収などに苦労

 サービス開発に当たって苦労したのはどんな点か。これについて山田氏に質問をぶつけてみると、やはり苦労したのはAndroid向けアプリやサービスを開発する上で多くの開発者が悩まされる「端末ごとの仕様の違い」だったという。

 「フレームバッファの関係で遠隔操作に必要となる画面データを転送できないような端末や、apkファイルを自由にインストールできない端末など、様々な“癖”を持っている端末が存在する。また、そうした問題とは別に、正確な原因は不明だが長時間動かしていると落ちるといった安定動作しない端末もあって対応に苦労した」(山田氏)。

 画面転送ができないなどそもそもサービス提供が難しい端末はやむなく外しているというが、「安定動作しないタイプの端末をどう扱うかが実はなかなか悩ましい」と山田氏は口にした。「ユーザー側もそうした評判などを当然知っていて、『だからこそこの機種でテストしたい』というニーズがあるからだ」(同氏)。

 現状そうした機種については、「不安定である」ということをコンソール上のアイコンなどでユーザーが分かる形で表示し、理解してもらった上で他の端末と同様に使えるようにするというポリシーで運用している。このため、たまにハングアップしてしまう事態が発生するが、そういう場合は同社の担当者がサーバールームに足を運んで手作業で端末の電源ボタンを操作して再起動するといった対処をしているという。

 さらに、これらとはまた異なる次元の苦労話も出てきた。それは、米Googleが開発者向けに配布しているアプリケーションテストフレームワーク「Native Driver」の仕様などに関する問題である。Scirocco Cloudでは端末の遠隔操作を実現するためにこのNative Driverを使っているのだが、「端末の遠隔操作サービスを提供するうえで必要となる、画面タッチ関連など基本的な端末操作手段が完全にはサポートされていない」(山田氏)。

 例えば2本指を使った拡大縮小操作を含むマルチタッチ操作などがそれに該当し、Scirocco Cloudでは現状マルチタッチ操作はできないようになっている。これは、そもそもコンソール上でマウスを使ってマルチタッチ操作を指定できないといったインタフェース的な問題ではなく、仕様的に未サポートのためスクリプトを書いて自動実行させることも現状はできない。

 ただし、「例えば日本語の文字入力やフリック操作など、テストできないとさすがに話にならないような操作についてはNative Driverを独自に拡張する形で機能追加している」(山田氏)という。

 日々のサービス運用に関する苦労話なども聞いてみた。こちらについて山田氏は、「これまでにそれほど大きな問題は起こっていない」と前置きしつつ、「端末の識別問題」と「USB給電問題」の二つを挙げた。端末の識別問題とは、端末の物理的再起動などが必要になった場合に、担当者がサーバールーム内に置かれている多数の端末の中から該当端末を探すのに骨が折れるという問題である。

 「50台ほども端末がまとめて置かれていると、『このメーカーのこの名前の端末』と言われてもすぐには分からない。そこで管理用コンソールから該当端末のディスプレイ上にメーカー名や機種名を表示できるようにし、一目で分かるようにした」(山田氏)。以前はまったく気にしていなかったが、最近は購入する端末の色もできるだけ異なるように配慮しているという。

 もう一つのUSB給電問題は、Android端末によっては通常のUSBポートからの給電(5V 0.5A)では容量が足りず、端末を動作させたままだとバッテリーを徐々に消費してしまうという問題である。こちらについては「バッテリーが空になるまでは他と同様に利用できるようにしておき、空になったら充電が終わるまで休ませる」といった運用で対処しているという。