新機能は「作ってみたから始まるフィードバック」で開発
新機能の開発は、開発前に仕様をかためてからとりかかるのでなく、まず作ってみることから始めた。「百聞は一見にしかず、百見は一触にしかずで、触ってみて気づくことも多い。部分的にでも動くものを作って、関係者で触ってみることを何回も繰り返した」と大前氏は強調する。
ヤフーの天気アプリは、「Yahoo!天気」と「Yahoo! JAPAN」にAndroid版とiOS版の4つがあり、開発チームも4つに分かれている。それぞれ個別に開発しており、コードや仕様の共通化は行っていない。Yahoo!天気アプリのAndroid版は大前氏がフルコミットで担当、もう一人は50%の関わりのため、エンジニア数としては1.5人と非常に少人数となる。
ヤフーでは全員がリモートワークのため、直接顔を合わせない環境で開発している。そのため、SlackやZoomなどのツールを活用しながらフィードバックを行っている。実装したパッケージを共有し、各メンバーは手元の端末にインストールして、実際に触ってみてフィードバックを続けた。そのフィードバックもテキストのみではなく、スクリーンショットを貼り付けたり、場合によっては動画を使ったりしながら行った。
フィードバックの例もいくつか紹介された。例えば、今回追加したボトムシートのグラフはドラッグによって上下に動かすことができる仕様だが、同時にシークバーを動かして、雨雲の情報を切り替える操作にも使える。
「このグラフの部分は、シートの上下の移動に使うべきか、シークバーの横の移動に使うべきかという議論がありました。実際触ってみると、シークバーがあっても、上のグラフの部分が見えていると、グラフの部分を触ってしまう人が非常に多かったんです」
そこで、縦方向ならシートの移動で、横方向ならシークバーの操作に割り当て、この2つは排他で同時に制御することにした。
もう一つ紹介されたのは、ボトムシートのフリック操作についてだ。この部分は、ドラッグで上下に動かすことができるが、任意の場所で止められるわけではなく、3段階の高さに対して吸いつき動作をさせている。最初は吸いつき動作なので、座標が近い場所に移動させればいいと考えていたが、実際触ってみると、直感的には動かせないということがわかった。
加速度を加味してみると、ある人にとってはイメージ通りになるが、別のある人にとっては、合わせられない。人によってフリック動作の操作が違うため、ちゃんと真ん中に停められるアルゴリズムを模索して実装した。
今回大幅アップデートを行った4つのアプリは、それぞれの目的やOSの表現方法に合わせて、完全に同じ仕様にはせず、それぞれが最適なUIを目指したが、相互にレビューやフィードバックを何回も行っている。おかしなところは指摘し、良い部分に関しては、「よし! うちもやろう」と取り込む形で進めた。その結果、細やかなアニメーションや、使ってみて心地よい機能が実装できたと、大前氏は満足そうに語る。
フィードバックに活用したSlackとZoomの使い分けについても紹介された。Slackは主にパッケージを共有して、見てもらうフィードバックの募集に使っていたが、そのメリットは同時に全員集まらなくても、業務の合間にそれぞれの時間軸や環境でフィードバックを行うことができる。それが功を奏し、たくさんの改善案を集めることができた。
Zoomは、集中的にバグを探す取り組み「集中バグバッシュ」で大活躍した。最初は、全員が沈黙して自分のスマホを操作するシーンを映すという奇妙な状態からスタートする。だが、誰か一人が何かおかしいところを見つけると、別の人が再現方法を発見したり、新たなバグを見つけたりする。かなりレアケースのバグを見つけることもできて、完成度を上げることができた。
アップデート後は「非常に使いやすくなった」「操作しやすい」「もうすぐ雨が降るという予測が当たった」といったポジティブな感想や、逆に厳しい意見など、たくさんの反響があったという。最後に大前氏は、今後の展望について以下のように語り、セッションを締めた。
「今後も表現の磨き込みを行い、よりわかりやすく認識の齟齬のないものにしていきたい。また、低スペックの端末でも快適に利用できるように、パフォーマンス面の改善も行っていきます。まだまだ改善していく余地はあるので、より便利なアプリを目指して、これからも改善していこうと思います」