Kyashが本名以外にユーザー名を登録できるようになるまでの話

KyashでAndroidアプリを開発している@konifarです。

4/2 (月) にリリースした最新版で、ユーザー名を登録できるようになりました。本名の登録は今までどおり必須ですが、他のユーザーに本名を知られることなく利用できます。自分を例にすると、 小西 裕介 ではなく こにふぁー としてKyashを使えるようになったということですね。

結果だけを見ると「ようやく表示用の名前を登録できるようになった」という話なんですが、実際にリリースするまでに社内でどんなやりとりがあったのかを記しておきます。「ユーザー名の対応だけで時間かかりすぎだよ」というご意見ももちろんあると思いますが、Kyashのプロダクト開発がどんな感じで進んでいるのかをお伝えできれば幸いです。

対応検討開始

Kyashは2017年4月にリリースした当初から本名のみで利用する仕様でした。

もともと仲の良い数人の仲間内で使うことを想定しており、知らない人といきなりお金のやりとりをしないだろうと考えていたというのが大きな理由です。 本名でも信用できないという人もいる中で、さらに匿名性が許されてしまうと信用できないサービスに見えてしまうのではないか、との懸念もありました。

しかし、最近は投げ銭用途での利用も増え、「自分の本名を知られるのは嫌だ」「相手の本名は知らないけどやりとりしたい」といった声も多くいただいていました。

そんな中で、2017年12月にCEO鷹取のSlack投稿を皮切りに、ユーザー名*1対応の検討をすることになりました。

f:id:konifar:20180403160531p:plain

デザイナーチームによる課題整理

まずやるかやらないかも含めて検討していくのですが、これが意外と難しいんですよね。なぜかというと、Kyashメンバーの中でさえユーザー名登録に対するイメージが異なるからです。

Twitterでやりとりすることが多い人からすれば「本名知らないけどこの人知ってる」「本名知ってるけど、本名を聞いても『え、誰だっけ?』と一瞬ラグが発生する」みたいな状況はよくあると思いますが、もちろんそうじゃない人も世の中にはたくさんいます。そういう人にとっては、「登録する項目を増やして複雑にするよりも本名だけでよくない?」と感じてしまいます。

また、普段問い合わせや不正対策でユーザーと接しているメンバーからすれば「本名縛りでも問題が起きることがあるのに自由にユーザー名を登録できるようにして大丈夫なんだろうか」という漠然とした不安を感じるかもしれません。

この段階では、「ユーザーニーズがあるのはなんとなくわかっているけど、それを機能として取り込んでいいのだろうか」というふわふわした状態なわけです。

ここから議論をうまく進めるためには、「このユーザー名登録がどんなユーザーの何の課題を解決するための話で、どういう形で提供するのか」のイメージをまずメンバー間で共有しなければなりません。どういう形で提供するのかという部分は課題ではなく解決方法を含むのですが、たたき台を作ってイメージを共有しないと議論しにくいのでそこまで考えておく必要があります。

Kyashでは、そのあたりのまとめをデザイナーチームが一手に引き受けてくれています。デザイナーチームのメンバーは社内・社外の様々な人の意見を聞きつつ、どんな形で機能を提供するべきなのかを社内のドキュメントにまとめます。

例えば、Operationチーム*2のメンバーからこんな意見がありました。

f:id:konifar:20180404113151p:plain

一言でいうと、「申請・承認のフローを通った人だけユーザー名を利用できる方がいいのではないか」という意見です。今回実際にリリースしたユーザー名登録とは違う解決方法ですね。

どの解決方法にも当然メリット・デメリットがあるわけですが、それぞれの課題を整理しないとなかなか話がまとまりません。

今回の対応では、最終的に承認した人だけが利用できる『ホワイトリスト形式』と、全員が自由にユーザー名を利用できる『標準装備方式』の2つの解決策を検討することになりました。

デザイナーチームがそれぞれの解決策について「仮に採用した場合に考えなければいけない課題」を整理しドキュメントにまとめ、ミーティングで決定しました。

f:id:konifar:20180403165626p:plain

結果的には、全てのユーザーがユーザー名を使えるようにしても大きな問題はなく、ホワイトリスト形式だとコストもかかりすぎてしまうという話もあり、全ユーザーが自由にユーザー名を設定できる形で進めることになりました。

結果だけ聞くと当たり前の結論のように思われるかもしれませんが、デザイナーチームが論点を整理してくれたことでメンバー全員の視点を合わせて納得のいく結論を出せたと思います。

Kyash IDを使うかどうかの検討

議論の中で、ユーザー名を新しく増やすか、それとも既存のKyash IDをユーザー名として使うかという話がありました。 Kyash IDというのは、Kyashのユーザーに割り振られる一意な値です。自分の場合は konifar で、アルファベットと数字で構成されています。

登録する項目が多くなるとユーザーを混乱させてしまうので、このKyash IDをユーザー名として扱っていくべきでは?という意見が出ました。論点は「ユーザーが要望するユーザー名というのはアルファベットと数字だけで事足りるものなのか」という点です。自分は konifar でも こにふぁー でもどちらでもいいのですが、 つのだ☆ひろ さんのように記号も含めてその人を表す場合もあります。

その検証は、Twitterアンケートでクイックに行うことにしました。

有効な数が集まるかなと不安だったのですが、結果として300件以上の回答が集まりました。協力していただいた皆さんありがとうございました。

このアンケートの結果で「どうやらユーザー名はアルファベットと数字だけでは不十分らしい」と認識することになりました。

Kyash IDをマルチバイト文字入力可にすればいいのでは?という話も出たのですが、Kyash IDは重複禁止のユニークな識別子で検索時に相手を特定するのに使われるものであることや、今後ユーザーに関連したリンクを発行することになった時にマルチバイト文字だと都合が悪くなりそうだったことから、新たにユーザー名を設けて対応することにしました。

同時にユーザーからの要望の多さも確認できたので、Product Managerが対応時期も決定しました。当時はウォレット化など他に優先すべきタスクもあったので、それらが落ち着いたタイミングで対応することになりました。

ユーザー名という命名

もともとニックネームプロジェクトという名前で始まった話でしたが、どういう命名がユーザーにとって一番わかりやすいかを考える必要もありました。

ニックネーム以外にも、 表示用の名前ハンドルネームユーザー名など色々な選択肢はありましたが、LINEやTwitterInstagramなども参考にして、最終的にユーザー名に決定しました。

f:id:konifar:20180403184223p:plain

UIデザインの決定

Kyashのフロントエンドの開発は、デザイナーチームが作ったUIデザインを見ながらProduct Manager、エンジニアを含めてレビューして細かい部分を詰めていきます。レビューの中で想定漏れや実装上の懸念をつぶし、デザインもブラッシュアップしていくわけです。

実際にレビューした時のドキュメントの一部をお見せすると、こんな感じです。

f:id:konifar:20180404113600p:plain

f:id:konifar:20180403175346p:plain

他にも次のような話を詰めてから開発に入っていくことになりました。

  • Facebook登録からのフローでもユーザー名の登録画面は入れる
  • 古いアプリでも本名が見れないように、現在本名を返している値をユーザー名として扱い、 ユーザー名の値を新しく作る*3
  • 既存のユーザーのユーザー名の初期値は本名をそのまま使う
  • 本名 = 公開されない、ユーザー名 = 公開される という仕様をもっとわかりやすく伝えた方がいいのではないか
  • 氏名という文字が使われていたのを本名に統一する

API、クライアントの実装

それまで議論を重ねてきて最終UIデザインもまとまっていたので、特に困ることはありませんでした。

iOSのSubmit3日前くらいにBug Bashをして、ユーザー名のPrefill部分のロジックやプロフィール更新後の表示でバグが見つかったものの、どれも直せばいいだけで大きな問題はありませんでした。

また、このタイミングでフォームのバリデーションロジックやレイアウトも整理できてよかったです。

ユーザーへの周知

ユーザー名登録は要望の多い機能だったので、どのようにユーザーへ周知するかという点も考えていきました。

当初はブログで周知しようかという話もあったのですが、Slackでのやりとりを経て、メールとアプリ内のお知らせで伝えることにしました。*4

f:id:konifar:20180403181434p:plain

f:id:konifar:20180403181503p:plain

ちなみに、ブログでの周知はやめることにしたものの、社内でどういう検討があったかといったプロダクト開発に近い話は公開してもいいのではないかという話もあり、今この記事を書いています。

リリース後の反応

そんなこんなでリリースしたユーザー名登録ですが、反応を見るかぎりユーザーの皆さんに喜んでいただけたようでよかったです。


Kyashではこんな感じで日々サービスを進化させるべく実現に向けて動いているという話でした。

Operationチーム、Product Manager、デザイナー、エンジニア全員がそれぞれの立場から意見を出し合い、皆でどうCustomer Successを実現していくかを日々考えています。

「ユーザー名登録だけで時間かかりすぎだよ」という意見ももちろんあると思います。他のタスクとの調整もあったとはいえ、今回この記事を書くにあたって社内のドキュメントを見返してみると「結構時間かかってしまってるな」と感じました。

もっと早く価値を届けられるようにしていきたいですね。実店舗での決済や非接触決済の対応、不正対策の強化といった要望にもなるべく早く応えられるよう、今後も精進していきます。

*1:当時はニックネームPJと呼称していました

*2:KyashではOperationチームという1つのチームでCS、BizDevなども含めて業務を回しています

*3:結果的にこれは少し失敗だったかもしれないと感じています。クライアント側の実装ではフィールドはそれぞれの名前にリネームしていますが、DBのカラム名はそのままなので経緯を知らないと矛盾した命名を見て混乱してしまいます。このあたりはAPIを改修する時にいい感じにできればいいなと思っています。

*4:以前はメールのみのお知らせでユーザーに不便をかけることもありましたが、同バージョンのアップデートでアプリでもお知らせできるようになりました