うめのんブログ

Category: 未分類 (page 2 of 20)

小さなことを後回しにするのは意外と難しい

僕はアプリを作っている時、小さなことは後回しにしながら作ることを意識しています。これは、数年前からずっと意識しているけど、常に頭の中で何回も自分に言い聞かせながら作らないと、ついつい忘れてしまう。

いや、忘れている感覚とは違うかもしれない。小さなことなのに、実際にやっている最中には、「これは細かい事だけどとても重要なことなんだ」と勝手に思い込む力が働いてくるんです。これは、人間たるもの、現在やっている作業は大切なんだというバイアスがかかるからだと思う。

でも、しばらく時間がたった後になると、「あれ、なんであんな小さなことにこだわろうとしていたんだろう。。今振り返ると、別にそこまで時間かけなくてもいいや。。」と振り返って思うことが多い。

しかし、これ難しいんですよ。しばらく時間がたって冷静になるとできるんだけど、その時は難しい。

しばらく時間がたつと、その時には考えてなかったいろいろな情報や視点を織り込んで、より客観的に判断ができるようになり、それは今、時間をかける価値があるかどうかの判断基準の精度が高くなる。でも、やっている最中は情報量も少ないし、視野も狭まっているから難しい。

じゃあ、どうすれば、小さな事を後回しにして、重要なことを優先しながら仕事を進めていけるんでしょうか。

古典的なテクニックとしては、時間制限を設けるというものがあります。時間がない状況に放り込まれると、重要な事はなにかを絶対に考えないといけない。津波が家に迫ってきたと考えてみるとわかりやすい。10時間後くるのか、1時間後にくるのか、10分後にくるのかで、どれを優先するかが変わってくる。

しかし、しかしですよ。これ、頭の中でわかっていても、実際の作業中はやっぱり、「いや、これは小さな事に見えるけど、とても大切なことなんだ。後からじゃダメなんだ!」とついつい考える力が働いてしまう。

最近、Taxnoteのアンドロイド版を作ってるんだけど、こういう場面が多々あります。後から考えると、なんでこんなことにこだわったり、悩んでたんだろうなという場面が。もっとパパッとすっ飛ばして進めていけばよかったと。

後回しでよいところはどんどん後回しにして、重要で外せない部分、今やっておいたほうがいいところからやるように常に意識しているのにそうなってしまう。わかっていても、人間の認知機能として、今やっていること、少しでも手を出したことは重要だと無意識に考えちゃう。

これは、一度でも自分が所持したものには愛着ができて、客観的な評価よりその価値を高くもってしまう心理と同じことが起きているのだと思う。認知心理学では所有効果というらしい。

そんじゃ、どうやってこの、人間本来が持っている認知心理の罠にかからないように、効率よく開発を進めていけばいいんでしょうか。これは自分の脳みそが騙されていると常に意識するしかないんだけど、それだけでは心もとないので補強する理屈を考えてみた。

この時、重要な考え方としては、「判断を保留する理由」という意識を忘れないことなんじゃないかと。

判断を保留する理由

これは後回しでいいなって明らかにわかるケースは簡単なんですよ。単純に飛ばして前に進むだけだから。

難しいのは、後回しにするべきかな、いや、これ今やるべきかな、うーんどうだろ、って悩むケースです。一つの考え方として、現在悩んでいる時点で後回しにしたほうがいいかもしれない。

なぜかというと、現在と、後からでは、判断を下す元になる情報量が圧倒的に違うからです。後からだと、今やってることは重要だというバイアスも消えているし、なにより、新しい情報や知識が追加されるので的確な判断がしやすい。

極端な例でいえば、Taxnoteをアンドロイドに移植する上で、タブバーという概念をどうするか悩んでたんですよ。iOSのようにタブバー作って、ナビゲーションしたいんだけど、アンドロイド公式にそういうライブラリがない。

だから、Githubのオープンソースを使うか悩んでいたんだけど、その一週間後に、Googleが公式サポートライブラリでタブバーのナビゲーションライブラリをリリースしてきた。その時は悩んでいたけど、公式ライブラリがリリースされた時点では、もうこれ使うに決まっているので悩むまでもない。

というわけで、悩んだ時やよくわからない時は判断を保留するメリットは結構でかい。現時点で見えている景色と後から見える景色は全然違うから。逆にいうと、ここは不変だろうとか、ここはまず実装が変わらないであろうというところを探して、まずはそこから手をつけていくのがよいことになる。

アマゾン創業者のジェフベゾスも、ビジネスをする時は10年後も変わらないだろうという基準を常に考えると言ってました。「人間は10年後も商品が速く届いて欲しいだろう」とか、そういう変わらない欲求にフォーカスするんだとか。

重要な部分から小さく始める。これはビジネスでもアプリ開発でも重要な考えなんですが、わかっていても実は実行しにくいというのも意識しておくとよいと思いました。


この記事に関連する話

一番リスクの高い部分から始める
アプリを一気に多言語へ翻訳・ローカライズしたのを若干後悔してる


*確定申告のTaxnoteなど作ってます。自己紹介はこちら。エンジニアもゆる募



データを並べる奴らに気をつけろ

先日、タレブのInequality and Skin in the Gameって記事を読んでた。

内容は不平等とスキンインザゲーム(自らがリスクをとること)についての話。なかなか面白かった。

許容される格差と許容されない格差

人々は、人気スポーツ選手、一流の科学者や芸術家、成功した起業家との格差については不平等だとは感じないが、その人の実力や努力、運などに起因しない格差については怒りを感じる。

つまり、個々人がリスクを取ったことによる格差はよいことで、リスクとリターンがマッチしていない構造での格差は正さないといけない。(親のおかげでリスク取らずに金持ちだとか、目一杯リスクとって成功したら大金稼げて、失敗したら政府に救済される投資銀行など)

健全な社会とは、社会的格差の逆転が許される社会であり、金持ちが貧乏に転落する可能性のある社会である。つまり、不確実性やランダム性が確保されていることが重要。

このへん、ポールグレアムも似たようなことを言ってたのを思い出した。Yコンビネーターは成功する起業家を生み出す組織だから、格差を生み出す組織とも考えられる。でも、起業家の成功はゼロサムゲームではなく、新しい富を生み出すから社会にとっていいことなんだと書いてた。

Economic Inequality

データをたくさん並べる奴らに気をつけろ

実は、この記事で個人的に面白かったのが、データをたくさん並べる奴らに気をつけろというアドバイスです。

Further, people mistake empiricism with flood of data. Just a little bit of significant data is needed when one is right, particularly when it is disconfirmatory empiricism, or counterexamples for rules: only one point is sufficient to show that Black Swans exist.

要約すると、自分の主張の根拠を証明したい時は、何か決定的なデータが少しだけあれば十分である。特に、何かが経験的に間違っていると反証したい時などは、一つの判例があればよい。ということを書いている。

これは元々ポパーの反証主義から来ている考え方。

この記事での一例をあげると、「例えば、ある人が金持ちだと証明するには、その人の預金通帳を見せればそれで十分である。そのあと、豪華な家具、絵画、車などを並び立てる必要はない。」と書いてます。(これを読んだ後に思い浮かんだのが、情報商材やマルチ商法。)

つまり、自分の主張の根拠を示す時は、説得力のあるデータが一つか二つあればよい。あれもこれもとデータをたくさん並び立てるということは、その主張に自信がないことの表れである可能性が高いと。大量のデータをあれもこれもと並びたててくる奴は注意必要しろと。

このアドバイスはなかなかタメになる。逆に考えると、自分の意見を主張する時、一番説得力のあるサポート材料を絞るべきだってことです。転職時の面接、サービスの宣伝、なんにでも応用できる。

ちなみに、ナニワ金融道作者である青木雄二先生は、のちに妻となる女性に、俺は金あるから結婚してくれと一億円の預金通帳を見せながら求婚して大顰蹙を買っていました。(笑)


*確定申告のTaxnoteなど作ってます。自己紹介はこちら。エンジニアもゆる募



うんち記録アプリ・ウンログのテキストライティングが素晴らしくて勉強になる

先日、「ウンログ」という、うんちを記録していくアプリを教えてもらったんだけど、このアプリに出てくるテキストライティングのレベルが死ぬほど高くて、めちゃくちゃ勉強になりました。

以前から、テキストライティングこそ最も重要なUIであると考えてたんだけど、ここまで出来のいいアプリには出会ったことがなかった。出来のよいアプリを触ってみるのは、どんな参考書を読むよりも短時間でたくさんのことが学べる。

以前、愛着のわくプロダクトを作るにはという記事を書いたけど、その当時は特にアプリで例になるものがなかった。でも、今なら、迷わずウンログを紹介すると思う。

ウンログってどんなアプリ?

ウンログは自分のうんちの記録をつけていくアプリです。え、うんちの写真とか記録すんの?イヤすぎると思ったかたが間違いなくいると思うけど、ここはよく考えられていて、かわいいうんちのイラストを選んでタップするだけで記録できるように作られている。

うんちの形は、かちかち、ぶりぶり、ほそほそなどから選べて、色も、カレー色、かつおぶし色、チョコレート色などから選択、大きさは、並盛り、大盛り、チョモランマなどを選択する。

この選択画面を選ぶ時に、自動的にかわいいうんちのキャラの形や色が変わるわけです。このネーミングセンスが抜群にいいし、イラストもかわいい!うんちを記録するアプリなのに、かわいいというアンビバレントな体験!

そして、記録した後は、その大きさとか、調子によってポイントがもらえる。このポイントの単位はボトンです。今日は70ボトン!とか。ここでも、ネーミングセンスが光る。

しばらくうんちの記録つけてなかったら、「大丈夫?溜め込んでない?(スライドでうん!)」とか通知が届くんだけど、この時のメッセージも、ウンログが私のこと心配してくれてる!と胸きゅんらしいです。

使ってて楽しいアプリのお手本

実際、前回のうんちから何時間出てないとか、タイムラインでうんちが出た時間を時系列で表示してくれたりと実用的で素晴らしいアプリではあるんですが、この使ってて楽しい、気持ちいい、かわいいという要素がここまで洗練されているアプリは本当に見たことがない。

とにかく、このアプリは全てのテキストライティングにおいてセンスが光りまくっている。うんちの記録をつけた後は、「すっきり〜」というメッセージとともに、すっきりした顔のうんちのイラストが出てくるし、しばらく記録してないでアプリを開くと、「そろそろ出る?」というドヤ顔のうんちのイラストが出てくる。

TapbotというTweetBotとか作っている有名なアプリ制作会社も、使ってて楽しいフィーリングを追求するアプリ制作で有名なんだけど、正直ウンログは今まで見てきたアプリの中でもダントツで衝撃を受けた。

あまりに感動したので、ウンログの公式サイトに飛んだのだけど、公式サイトで書かれているテキストライティングもいちいちセンスが光って面白い。ミッションは「いいうんちを増やす」。ランディングページのキャッチコピーは「いいうんち、いい人生。」です。秀逸すぎる。

今までアプリ作る時は、ビジュアルデザイン、UIデザイン、テキストライティング、と3つのインターフェイスの要素を意識してはいたんだけど、まだまだ修行が足りませんでした。これ作ってる人たちはタダモノじゃないと思う。

ビジネスモデルは腸内フローラ検査との提携とか、ビッグデータを集計しての関連商品レコメンド、健康関連の研究データに活用など、いろいろあるみたいだけど、めちゃくちゃ応援したい。

ウンログのイラストがかわいすぎるのでLineスタンプも購入させていただきました。
ウンログのホームページはこちら。

*参考記事
「リジェクトしないでくれ!」Apple米国本社に乗り込んだ。うんちに人生をかけた男が挑戦するアプリ「ウンログ」


*確定申告のTaxnoteなど作ってます。自己紹介はこちら。エンジニアもゆる募



昔から有名な本が現代でも読む価値あるかはどう見極めたらいいんでしょうね

以前から聞いてるエンジニア向けのPodcast Rebuildfmの169回が神回だった。

なんと、このPodcastでは、ゲストの@omoさんが「達人プログラマー」やら「リファクタリング」やら「デザインパターン」など、エンジニア向けの有名な本をことごとくディスるという、とても勇気あるテーマに挑戦していまして、それがかなり納得のいく話でめちゃくちゃ面白かった。

*リファクタリングに関して指摘を受けたので修正させてもらいます。僕の曖昧な記憶で重要な部分をさらっと書いてしまったのを反省。。

ちなみに、僕もプログラミング二年目ぐらいの時に、これらの本をざっと読んだ気がするんだけど、もう内容はほとんど忘れてました。

ポッドキャストの内容としては、当時は有効だった手法も、現代のスタンダードからすると時代遅れの手法が多かったり、現代では当たり前になってることをドヤ顔で書かれているだけなので、そういうエンジニア向けの古い古典本を有難がって新人に勧めるのはいかがなものか。という内容です。

もちろん、omoさんは頭からこれらの有名な本をけなしているわけではなく、執筆当時の時代性も説明し、なぜこれが当時は有効だったかも具体的に解説しながらも、現代ではあまり意味のない内容になっている部分をビシバシと切っていって面白い。

これこれこういう理由で、この内容はすでに古くなっているから現代ではあまり意味ないですねと説明しながら、最後に付け加えるのが、「まあ、いい本なんですけどね。」とか、「まあ、(技術が進んだということで)いい話なんですけどね。」というフォローが笑った。

このPodcastは単純に内容が面白かったんだけど、個人的にツボだったのは、今でも評価の高い昔の本(いわゆる古典)の中から、現代でも読む価値のあるものと、ないものとを見極める方法はなんだろうかと考えるきっかけになったからです。

でも、これって簡単なようで難しいからどうしたらいいんでしょうね。

読み続けられたものは生き残ってきたもの

基本的な考え方として、時間がたっても評価が落ちていない本は内容の質が高い可能性が高い。ずっと生き残ってきたという意味で。

ノンフィクションなら、いろいろな人の反証に耐えてこないとダメだし、フィクションなら、現代の人にも読み続けられないといけない。

今読むと、内容が古くなっているもの

変化の早いエンジニア業界の本だと、先進的なノウハウがどんどん陳腐化するのは常に下克上の世の中を作りだしているので、面白くもあり、厳しい部分でもあります。

科学とか技術の分野では、技術革新がどんどん起こるから、以前の常識が今では当てはまらないことが多い。

例えば、最近の車の塗装技術は昔と比べて圧倒的に優れているから、ワックスなんて半年に一回で十分すぎるらしい。毎月かけてたら、元の塗装にダメージがいって逆効果だとか。この意味では、「こまめにワックスかけて車を大切にしよう」っていう、一般的に伝えられてきている昔の常識と現実が乖離している。

これは、ワックスのメーカーと自動車雑誌のパワーバランスとかの関係で、真実が浸透しない理由もあるらしいが。この場合、昔の通説が現代でも当たり前だとまだ信じられているけれど、現実には違うというケースで、事情を知っている人じゃないと見極めにくい。

現代でも通用しているケース

「風の谷のナウシカ」なんて、何年もテレビで再放送され続けていて、なおかつ視聴率も高い。これは、明らかに時代を超えて楽しまれていつつ、現代でも通用している証拠になると思う。

正直、僕もナウシカは何回も楽しめる。今見たとしても、「ああ、当時はこのシーン画期的だったけど、今見るとたいしたことないなあ」とかはあまり思わず、普通に楽しめる。

映画が面白いかどうかというのは、その人が見て判断することだからあまり専門知識もいらず、未だに視聴率がとれているということは、現代でも十分通用しているというハッキリとして証明にもなる。

明確な尺度がハッキリしていて判断も簡単であれば、昔から人気あるもので現代にも通用するというものは判断しやすい。そういう意味で、小説、漫画、音楽などはわかりやすいのかも。

歴史本となった割合

当時は賞賛された内容でも、現代になって読んでみると70%は内容が古くて実践では使えないという本があったとする。この場合、この本は、70%の内容が当時の時代背景を知ることができる歴史的価値を持っていて、30%は現代でも役に立つ知識ということになる。

難しいのが、この割合は時間がたつごとに常に変化していくだろうから、この昔から有名で崇められている本の、それぞれの割合はどれぐらいかっていうのがなかなか分かりにくい。最近読んで、詳しく説明してくれる人が出てこない限り、よく分からない。

ちなみに、時がたっても陳腐化しないことにこそ価値があると言っているわけでもないのです。僕自身、アプリ開発で役立つサービスTOP10とかは、数年後には参考にはならないだろうけど、今は価値があるから書こうと思って書いたわけだし。

この話は特にオチがあるわけでもないんだけど、最低限できることといえば、昔自分が読んでよかったお気に入りの本でも、誰かに薦める時は、今読んでその人に役立つかとか、その人が楽しめるかとか、ちょっとだけ考えてから勧めたほうがいいなってことぐらいですかね。


*確定申告のTaxnoteなど作ってます。自己紹介はこちら。エンジニアもゆる募



2016年にアプリ開発の合間に読んで面白かった本ベスト8

2016年もあと数えるほどで終わってしまうのですが、特に書く事もないので、今年読んで面白かった本を紹介でもしてみようと思います。

一番面白かった本は一発でわかるんですが、記憶力がないので、その他にどんな本を読んだか忘れてしまいました。え、それじゃベスト10なんてできないじゃねえかと思われるかもしれません。でも、大丈夫です。最近は全部Amazonで買ってるので、Amazonの注文リスト見れば問題なし。

ということで、アマゾンの注文履歴をざっと一年分見てみたけど、半分近くの本はつまらなくて途中で読むのをやめてますね。なのでこういう本は当然除外。

最後まで読んだ記憶がある本は、まあそこそこ面白かったのは間違いないけど、これは面白かったよ!っていうほどでもないなあというのが多い。なので、こういう本も除外。

あと、ベスト10にいれるほどでもないけど、意外に面白かったなっていうのもあって、これは意外に面白かった枠として、後から付けたそうと思う。

ということで、メモ帳に並べてみたら、面白かった本が10冊に満たなかった。これだとベスト10ができない。しょうがないからベスト8から始めます。正直、ベスト3あたりからは順番の意味はあるんだけど、それ意外はもう適当です。

8位 ジブリの仲間たち

僕はジブリ関係の本とか、NHKのドキュメンタリーとか、Podcastのジブリ汗まみれとか、鈴木さんの本とか好きなんだけど、この本はジブリのプロデューサー鈴木さんが映画配給の仕組みや、どうやってヒットが生み出されていくかを解説した本です。

おもしろいポイントは、この本で書かれている旧来のヒット映画のからくりや仕掛けのやり方は、今年ヒットした映画、例えばシンゴジラ、君の名は、この世界の片隅でなどには当てはまらないというところ。

昔は映画を流す映画館の数を抑えられるかどうかで、先にヒットの限界値が決まっていたんだけど、最近は売れる映画ならミニシアターでどんどん上映数を増やすから口コミで一気に爆発する余地が多くなったらしい。

でも、逆にいえば、人気のない映画は本当に一瞬で上映期間が終わる。勝ち組と負け組がよりハッキリしているといったところでしょうか。

7位 ショッピングモールから考える

僕は東浩紀の「弱いつながり 検索ワードを探す旅」という本が好きなんですが、この本も読みやすくなおかつ面白かった。

日本でショッピングモールというと、都会ではあまり見ないし、田舎にあるものっていうイメージだけど、いろいろな国のショッピングモールの役割、未来都市に向けた重要性とか、同じものでも全然違う印象を語っている。

最近は、いろいろな国の情景とかが頭に浮かんでくるような本が楽しいと感じることが多いんだけど、この本も他の国に情景が浮かんできて面白い。

6位 国のために死ねるか 自衛隊「特殊部隊」創設者の思想と行動

海上自衛隊の特殊部隊を創設した元自衛官の本。どういう性格だと命をかける必要な任務に向いているかどうか、特殊部隊創設時に学んだ各国の部隊の実力など、男と生まれたからには痺れるエピソードがたくさん。

今年から読んでる本で、かわぐちかいじの「空母いぶき」という最高に面白い軍事漫画があるんだけど、それとセットで読むと楽しい。戦場で命をかける人たちは、多かれ少なかれ、みんな命をかける意味を自問自答してるのがよくわかる。

そらそうですよね、死ぬかもしれないことを仕事にしてたり、死ぬ可能性が非常に高い任務を命令される状況にあるなら、何度も考えることだと思う。

5位 プライベートバンカー カネ守りと新富裕層

最近、世間で話題のキュレーションメディアをDeNAに売却した村田マリ氏など、お金持ちになった日本人が税金の安いシンガポールに移住するのも珍しくない昨今、実際にシンガポールに移住した人達の生活が垣間見れるノンフィクション。

この本が凄いのは、フィクション小説ではなく、実在の人物が実名で出てくるというもの。ソシャゲーで一発あてたIT長者の人の話とかも出てくる。

同時並行で税金亡命っていう本も読んで、これもそこそこ面白かったけど、オススメは断然プライベートバンカーのほう。

今までは、お金持ちになったらシンガポールみたいな税金の安い国に移住するのが合理的なんだろうなぐらいのイメージだったけど、実際にお金のために日本を捨てるつらさ、せちがなさが書かれていて、ああ、やっぱ日本に定住できない世界はつらそうだわ。。と読んでて思う。

まあ、これがカナダとかヨーロッパの良さげな国とか、違う国だったらまだ話は違うんだろうけど、そういう国ってタックスヘブンにはならないだろうし。

この本では日本で住むことの素晴らしさを再認識できます。もう、ほんとそれが一番印象的。

4位 タキ井上が教えます! リアルな裏F1

みなさん、ほとんどのF1ドライバーって完全に実力のみで選ばれてはいなくて、F1ドライバー自身が持参金という億単位のお金をチームに払って運転させてもらっているという事実を知っているでしょうか?

え、じゃあ、F1ドライバーはそんなお金をどっから持ってくんの?大富豪なら誰でもなれるの?って思うかもしれないけど、もちろんF1マシンを乗りこなす実力に加えて、何億、何十億というお金をスポンサーから集める能力や時の運などが重要になってくるのです。

この本は、自身も頑張ってスポンサーからお金を集めてF1ドライバーになった、世間一般ではあまり知られていない元日本人F1ドライバー、タキ井上さんの初めての著作。

F1とお金、チーム事情や政治、どういう力学でドライバーが選ばれるのかなど、今まで書かれてこなかった内容がリアルで、めちゃくちゃ面白い。どんなスポーツでも、実力に加えていろいろな要素が必要なんだろうけど、モータースポーツは特に特殊ですわ。

3位 総理

安倍首相と非常に近い記者が書いた、安倍首相についての本。著者は安倍首相に近いどころか、政策や会見で読み上げるスピーチの内容を相談されたりするぐらいの親密さ。正直、一人の記者がここまで政治家と近い関係にあるもんだとは知らなかった。

安倍首相と麻生さんとの関係性やら、人事を決める時の生々しい相談話やら、普段は新聞やテレビでしか見てない公人としての政治家の内面が見える本でありまして、こういうものはなかなか読んだことがないので一種の衝撃を感じるすごい本。

著者は安倍首相よりの立場なので基本的に安倍さんよりの本なんだけど、それでも面白いのは、この本でしか読めない一次情報だらけであり、一国の総理の性格や、重要な政治判断の瞬間が垣間見れる本だからだと思う。

2位 不屈の棋士

AIの発達によって、自分たちのアイデンティティが危機にさらされている緊迫感がひしひしと伝わる将棋棋士へのインタビュー集。AIを使う派閥から、AI否定派の派閥、AIを使ってみて、逆に弱くなってしまうと感じた理屈まで、それぞれの棋士で意見がいろいろあるのが面白い。

数年後読むより、今、リアルタイムで読むことに価値がある本。羽生さんやら、元名人の森内さんやらトップ棋士達のAIに対する考えが読めるし、半端なく頭がよい人たちが職業上の危機にどう考えているかが面白い。

このへんになると、面白かったのでブログでも書いてる。
将棋ソフト不正使用疑惑で揺れてる今、不屈の棋士って本がオススメ

1位 サピエンス全史 文明の構造と人類の幸福

この本おもしろすぎ。

人類誕生からサイボーグ化する未来まで ユヴァル・ハラリの「サピエンス全史」が最高に面白い


*確定申告のTaxnoteなど作ってます。自己紹介はこちら。エンジニアもゆる募



iOSアプリの翻訳(ローカライズ)で、人口が少ない韓国語や中国語(繁体字)に効果が出たのはなぜか?

ちょっと前からアプリをいくつか多言語に翻訳したので、翻訳の具体的なやり方、後々のコスト、どの言語を優先したほうがいいかなど、いろいろ書いてました。

アプリのAppStoreでの名前や説明を7ヶ国語にローカライズしたらDL数が増えました
iOSアプリを8ヶ国語に翻訳した過程でわかったこと
アプリを一気に多言語へ翻訳・ローカライズしたのを若干後悔してる

これは、3つのアプリ、TaxnoteZenyListTimerの経験に限る話なんですが、僕のオススメの手順を簡単にまとめるとこんな感じです。

1. 最初はAppStoreの説明文とスクショから始めて様子を見る
2. 通常、優先すべき言語は、英語、中国語(簡体字)からでOK
3. アプリ内部の翻訳は、今後のアップデート時のコストが高まるし、AppStoreの翻訳と違って途中で止めににくいので慎重に

ここまでは、誰に対しても自信を持って説明できる話なんだけど、どの言語が翻訳の効果が出やすいかっていう話になると、やってみないとわからないし、どれがたまたまヒットするかもわからないとしか言えなかった。

もちろん、英語と、中国で主に使われてるのは中国語の簡体字は圧倒的に人口が多いから効果が一番でやすい。問題は、その他の言語。僕の3つのアプリの経験からだと、なぜか、中国語の繁体字(香港、台湾、マカオ)や、韓国語などのDL数に効果が出やすいという結果になった。

普通なら、iOSの人口も多そうな他のヨーロッパ言語のほうが効果が出やすいと思ってたのに、スペイン語、ポルトガル語、フランス語などは本当にさっぱりだ。アップデート時のコストのほうが高くついてしまっている状態。

iOSの普及率と言語使用者のデータから考えると、英語、中国語(簡体字)の次は、スペイン語、フランス語、ドイツ語の順番にならないとおかしい。

Mixpanel Trends: What language should developers target next?

でも、なんででしょうか?ここからは、仮説でしかないのだけど、参考になれば。

日本から国が近いから?

最初は、日本から物理的な距離が近いから、日本人の知り合い経由で口コミが広がりやすいのかなと思った。でも、さすがにこれはなさそう。それならば、翻訳する前からある程度、他のヨーロッパの国とDL数に変化が見えてたはず。

英語と大きく違う言語だから?

ヨーロッパの言語は英語に似ているけど、韓国語とか中国語は似ても似つかない。もしかすると、ヨーロッパの人たち、スペイン、ドイツ、フランスなどの人たちは、アプリを探す時に英語で検索することが多いのかも。

ひとつには、英語が結構わかる人がヨーロッパには多いということと、フランス語、ドイツ語、スペイン語のみで検索するとアプリの数がかなり限られてしまうのかもしれない。

この事を若干裏付けるデータとしては、英語がわかる人が少なそうで、言語の見た目もだいぶ違うロシア語に翻訳すると、そこそこDL数が増えた。スペイン語、フランス語などはあんまりだったけど。

キーワードにたくさん単語を入れられるから

僕が、一番有力だと思っている仮説がこれです。

AppStoreのアプリって、提出する時に、100字以内で関連キーワードを書き込めっていう項目があるんですよ。例えば、Taxnoteとかなら、確定申告、帳簿、青色申告、とかそういう関連キーワードを考えて入力する。

英語やヨーロッパの言語に比べ、日本語、韓国語、中国語は、ひとつの単語のワード数が少なくて済むため、AppStoreに提出する時の100Words限定のキーワード提出する時にたくさん詰め込める。

例えば、ListTimerで関連キーワードを考えたとして、timer,alarm,clockで17文字カウントされるんだけど、タイマー,アラーム,時計だと12文字しかカウントされない。

Twitterでも日本語だと、英語の3倍ぐらいの情報量を書き込めるのからわかる通り、日本語、中国語、韓国語だと、だいたい3倍ぐらい100字以内のキーワードに詰め込めるわけです。結果的に、その国でのAppStoreで検索にヒットしやすくなり、DL数も増えやすくなると。

中国語(繁体字)と韓国語に効果が出やすいのはこれなんじゃないなあと。あくまで僕の個人的な体験からの推測なので、俺はこの言語が圧倒的に人気出たぜとかありましたら、@umekun123まで教えてくれたら嬉しいです。


*確定申告のTaxnoteなど作ってます。自己紹介はこちら。エンジニアもゆる募



企業が真似できない個人開発者としての強みを出す方法

よく、スタートアップと大企業の戦い方の違いみたいな話で、スタートアップは大企業が真似できない強み、例えば意思決定やコミュニケーションのスピード感を武器に戦おうみたいな話をよく聞くけど、これの個人開発者バージョンを考えてみた。

ここで想定しているのは、空いた時間で作ったWebサービスやアプリを個人、もしくは極少数で運営している人。こういうスタートアップよりさらに小さい規模の強み、違う言い方でいえば、企業が真似できないところってなんだろうか。

こういう部分を一つでも多く発見できれば、そこを意識してやっていけばいいし、なおかつ企業が真似できないからすごく価値がある。逆に言えば、企業のほうが強い部分は頑張っても最初からハンデがあるので、そこは意識して力を入れないという考え方もできる。

まずは、企業が真似できない、個人開発者ができる強みをいろいろ考えてみる。

ぱっと思いつくのは、大きな企業だとなかなか実験的にアプリを最小限の機能でリリースすることができないけど、小さな個人なら小さくリリースしやすいなどありますが、それに関してはもう語り尽くしてる感があるので、今回は違う話を。

ユーザと開発者の距離が近い

個人でアプリを5年ほどやってきて、一番の強みはこれじゃないかなと思う。

具体的にいうと、個人でやってるので、プログラミングするのも、今後の意思決定するのも、ユーザーサポートするのも一人。

なので、ユーザが質問とか要望や質問を送ると、一番アプリに詳しい担当者が答えてくれて、なおかつその答えてくれた人は社長レベルで決定権をもち、さらに、今後の開発を実装するリードディベロッパーでもあるわけです。

これはユーザの視点から考えるとすごいことだ。自分の声が直球でダイレクトに担当者に届くというのは、自分だったら要望を送ってみようかなというモチベーションが結構あがる。

これが大きな会社だったら、要望を送っても、まずたくさんいるサポートの人が受け付けて、そこから決定権持ってる人や、実際に作っている人まで本当に届くかどうかは神のみぞしる。忙しそうだしとか考えちゃう。

「自分が要望送っても、大きな会社だから実際の担当者には届かないだろうなあ」と頭の中でまず考え、そんじゃ辞めとくかと思い、アプリをそっと閉じる。というのが僕のパターン。

まあ、なにかで聞かれる機会がない限り、99%のユーザは要望とか質問なんて面倒だから送らないもんなんですが。

ついでにいうと、アプリ出してみて感じたことなんだけど、作っている人が直接返信しているとわかると、ユーザが喜んでくれたたり、若干優しくしてくれる気がする。日本人でも、アメリカ人でも、英国人でも、これはあまり変わらない実感。

企業っぽさを出す必要ないかも

僕がアプリ作り始めた時って、個人で作っているイメージがあるとプロっぽくないから、一人でやってても会社っぽい見せ方のほうがいいかなと思ってたんですね。例えば、ヘルプページで一人でやってんのに企業っぽい見せ方をしたり、英語での文章で、IとかMeとかを使わずに、WeとかUsを使ったり。(Please let us know if you have any questionsとか。)

もちろん、アプリのタイプによっては企業っぽいほうがよかったり、この人死んだらこのアプリ終わるのかなって思われたりもするだろうけど、昨今では企業発信のサービスだってバンバン終了するし、スタートアップのアプリだってバイアウトされた瞬間サービス停止する時代です。

こういう理由で、個人開発者は、個人でやってるということを隠さずに、強みに変えるべきだわと思うようになりました。ちなみに、海外の個人iOSアプリ開発者向けのPodcast Under the Raderでもまったく同じことを言ってて、そうだよなあと聴いてて思った。

もっというと、僕はアプリの中にHelpshift使ってお問い合わせ送信ボタンがあるんだけど、ここの初期メッセージが「なにかお困りですか?」ってなってるわけです。ここを、「分かりにく部分やこうして欲しいなどの要望があれば遠慮なくメッセージしてください。アプリの作者である梅本が直接返信いたします。」とかに変えたほうがいいかもしれない。

*参考
使いやすいアプリを作る簡単な方法
要望にNOと言う時の伝え方が難しい

Helpshiftで返信する時も、ちゃんと最後に、名前とか署名をつけたほうがいいかも。

なんか、この前、「梅本さんですか?」って返信してる時に聞かれた。アプリのレビューで「サポートの人が親切に答えてくれた」とか書かれているのを見る限り、名無しの権兵衛で返信していると、せっかく作っている本人が返信しているのにサポートの人が返信していると思われてそうな予感。

ライバルが真似できない事を意識するとよさそう

スポーツ選手でも、ビジネスでも、恋愛でもなんでもそうだと思うんですが、やっぱり他の人が真似できないことで、なおかつ強みとして生かせる部分をいつも意識するのが重要だと思うんですよね。

最初は真似から入るのが効率がよいけど、なんでもかんでも真似していたら、世間一般で行われていることをなぞるだけなので、他者が真似できない強みを発揮することからは遠ざかってしまう。

一般的にはデメリットだと思われていることも、ひっくり返せば他者が真似できない強みになるケースも多そうです。


*確定申告のTaxnoteなど作ってます。自己紹介はこちら。エンジニアもゆる募



アプリに広告があると離脱率はどれだけ高まるかをABテストしてみた (MixpanelとSkyLab利用)

こんにちは。僕のアプリ開発の進め方としては、Helpshitなどを使ったユーザーフィードバックと、自分が使い易いかどうかを基準に改良していくのが中心なのですが、そろそろ数字もみていこうかなと思いました。

参考
*使いやすいアプリを作る簡単な方法

そこで、最近アプリのリテンション(ユーザがどれだけアプリに戻ってきてるか)の見方とか、実際にABテストのやり方を研究して実際にやってみたので、どういったツールを使って、どういった手順で、どういう風にデータを見ればよいかを書いてみたいと思います。

今回はiOSアプリでやったけど、Androidアプリでも使うツールがほぼ同じなので参考にはなると思う。

ちなみに、こういったデータ解析って、具体的なやり方よりも、どういう状況で、なんのためにやるかのほうがよっぽど重要なので、まずはそのことについて。

比べる対象を明確にして、その後の対策をイメージする

まず、ABテストってよく聞くけど、何と何を比べたいかを明確に定義しないといけない。

その上で、そのABテストを実施する手間(例えば信頼に足るデータ量と必要な時間、実装するコストなど)を考えても、その結果が知りたいかを考えないといけない。

そして、もっと重要なのは、その結果を見て、「ふーん」で終わらず、その結果に基づいてその後なにを実行するかまでイメージできているのが重要。

数値を見た後、何をするかはとても重要で、LeanAnalyticsではActionable Metricsと呼ばれている。逆にいえば、数値を見た後のアクションが考えられないデータは、「ふーん」で終わるから、そこまで価値がないということになります。

*参考
Lean Analytics 虚構の数字と改善に繋がる数字

*この本ガチでオススメ

例えば、アプリのバージョン1.0と1.1で、ユーザのリテンション率が変わるか比べることができたとしても、具体的に何が原因で変化が起こったのかは掴みにくい。同じように、国同士でアプリのリテンション率が違うことを比べても、それを見て次に何をするかがイメージできてないと意味がない。

でも、これはそんなに難しい話でもなくて、アプリのアップグレード画面の説明文をAパターンとBパターン作り、それをABテストした場合を考えてみるとわかりやすい。

この場合、比べる対象が明確なので、どちらかの結果がよければ原因もハッキリする。Aパターンのほうが購入率が高かったという結果であれば、これからはAパターンを使うという、その後のアクションも明確です。

ABテストの対象を絞る

これは、僕のPHPプログラマ時代の師匠であるエランさんからアドバイスしてもらったことなんだけど、ABテストする時は一度に一つのテストをするぐらいのイメージでいいらしい。

というのも、まず初めに、信頼性のあるデータを得るには十分なデータの母数が必要となる。さらに、リテンションのような何日間にも渡って見るデータ解析の場合、日数がたつほどアプリに戻ってくる人数が減るから、なおさらデータ量の母数が必要となる。

もう一つは、複数のABテストを同時に回そうとすると、それぞれのテストがお互いのテストに影響する可能性も考えないといけないので、さらにデータ量が必要となり、信頼性も下がってしまう。もちろん、データの設定方法が複雑になるという問題も。

というわけで、よっぽどデータ量が多いとか、お互いのテストがお互いに影響しないなどの場合を除いて、ABテストは一度にひとつだけするという考え方がよいと。

ここまで書いてきたけど、ABテストはそれなりにコストも時間もかかるので、何でも悩んだらテストすればいいってもんじゃないのがわかります。基本的にほとんどのUI・UXの判断基準は、過去の経験則やじっくり考えた結果から、ABテストなしでやっていかないと何も進まない。

*参考
ABテストしないと分からない?

そんなわけで、本当にABテストのコストをかける意味がある部分、自分の予想が合っているか確認する価値のある部分に絞ってテストしていったらいいと思う。

前置きが長くなってしまったが、ここから具体的にどうやってやっていくかを書いていきたい。

リテンション(ユーザ維持率)がフィルタリングできるツールを使う

最近のデータ解析ツールは無料で使えるものが多く、データ量が必要となる時はありがたい。と思いきや、結果的に無料で使えるデータ解析ツールは今回使えませんでした。

リテンションを見たい場合、ユーザがアプリに戻ってきているかを見るわけなので、結構トラックする回数が多くなってしまう。この点、Mixpanelみたいな、トラックする回数に応じて課金されるサービスを使っている場合、ケチケチ使わないと一気に無料枠使ってしまうという悲しい事態になります。

なので、最初に試したのはFabricのAnswerとFirebaseAnalytics。どちらも無料で使えて、リテンションを見ることができる。

しかし、使ってみたらわかるんだけど、リテンション画面が見れるのはいいとして、自分が比べたい値を使ってフィルタリングができないんですね。これが。

例えば、リテンションの簡単に見方としては、何パーセントのユーザが1日目、2日目、3日目とアプリに戻ってきているかというのを見る。

FirebaseAnalyticsだとこんな感じ。

Answerだとこんな感じ。

ただ、これ見ても、そうですかという感想しかでない。Answerとか綺麗にデータが見れて気持ちいいんだけど、ここから何かを変えて、それでどう変わるかっていう具体的なアクションと結果を見ることができないんですね。

重要なのは、バージョン1.0と1.1などで比べて、1.1のほうがユーザの定着率が高くなってるなとか、少なくとも何かの値でフィルタリングして比べたいので。

特に、ABテストする時は、AとBの違いを見るわけだから、フィルタリングができないとそもそも話にならないわけで、残念ながらどちらもできなかった。(もしかしたら、いろいろやると出来るのかもしれないけど、やり方が見つからなかった。)

というわけで、結局一番使いやすくて、リテンションでもフィルタリングができるのはMixpanelだったというオチになりまして、久々にMixpanelを本格的に使うことにしました。結局有料のものを使わなければいかぬのか。

Mixpanelはフリーミアムだけど、Mixpanelのリンクを適当に作ったブログに貼り付けると200,000データポイントまで無料で使えるので、短期的に絞った解析なら結構無料枠でもいける。

次は、具体的な手順と、何をABテストしていくかを書いてみたい。

バナー広告があると離脱率はどれぐらい高まるか

さて、手間も時間もそれなりにかかるABテストをするならば、意味のある事を調べないといけないということで、今回はアプリに広告をつけるとどれぐらい離脱率が高まるかというのをお題にしてみました。

そして、結果を見てその後どうするかのイメージも重要なので、もし離脱率が大幅に高かったら、広告の出し方を考え直すことにします。例えば、出す頻度とか、最初は出さないなどいろいろとありますが。

今回は、僕が二年前にリリースして、それからちょこちょこと改善しているListTimerでやってみます。最近は日々のダウンロード数も結構多く、母数も確保できそうということで。

ListTimerはワンタップでセットできるのと、終了時刻も表示されるのがウリの、タイマー&アラームアプリ。どんなアプリかはこのスクショをザッと見るとわかるかも。

以下のように、バナー広告がタイマーセットする時のリストの下、タイマー終了時のダイアログなどに表示されます。

概要としては、既存のユーザには影響しないようにし、新しいユーザだけを対象にABテストする。1日100ダウンロードあったとすれば、50人は広告なし、50人は広告ありにして、1日目、2日目、3日目、4日目、と離脱率が変わるかを調べる。

ついでに、タイマーをセットするという動作も軸にして、1回セット => 5回セット => 10回セット => 15回セットのように、アプリをたくさん使い続けてくれるかどうかの軸でも、広告ありとなしで差が出るかを見る。

ちなみに、広告なしユーザもある程度日数がたって、規定の回数タイマーを使うと、いつも通り広告が表示されるようにしておいた。

実際のコードの例(iOS)

一応、iOSで使ったコードの例を参考までに書いておくけど、プログラマじゃない人は別に読み飛ばしてもOK。

まず、初回起動時だけMixpanelでトラックするコードを書く。そして、ABテスト用に、SkyLabというライブラリを使って、起動時に50%の確率でAとBに分けます。

https://mixpanel.com/
https://github.com/mattt/SkyLab

そこで、ここがMixpanelで重要な部分なんだけど、peopleタグで、広告有無のプロパティをセットしておきます。Mixpanelのpeopleタグは上限数が決まっているので、superPropertyで代用できないかと思ったけど、リテンションのフィルタリングはpeopleタグじゃないと出来ないです。


- (void)trackFirstLaunch {
    
    //set mixpanel first endpoint
    if (![[NSUserDefaults standardUserDefaults] boolForKey:@"First Launch Done"]) {
        
        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"First Launch Done"];
        
        // Set indetify for people
        [[Mixpanel sharedInstance] identify:[Mixpanel sharedInstance].distinctId];
        
        [[Mixpanel sharedInstance] track:@"First Launch"];
        
        // Track first launch date
        [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:kFirstLaunchDateKey];
        
        [SkyLab abTestWithName:@"AdTest" A:^{
        
            [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kNoBannerAdsTestUserKey];
            [[Mixpanel sharedInstance].people set:@{@"DisableAdAtFirst":@"YES"}];
        } B:^{
            [[Mixpanel sharedInstance].people set:@{@"DisableAdAtFirst":@"NO"}];
        }];
    }
}

そして、リテンションを取るために、起動のたびにMixpanelでトラックすると、一気に無料枠をぶち破ってしまいそうなので、数時間以内の起動であればスキップするようにする。今回は前回の起動から5時間以上たっていればトラックすることにした。

下記のコードをAppDelegateのdidFinishLaunchingWithOptionsとapplicationWillEnterForegroundにセット。


- (void)trackRetention {
    
    NSString *trackedDateKey        = @"trackedDateKey";
    NSDate *previousTrackedDate     = [[NSUserDefaults standardUserDefaults] objectForKey:trackedDateKey];
    NSDate *nextTrackDate           = [previousTrackedDate dateByAddingHours:5];
    
    // NSDate+Escortというライブラリ使用
    if ([nextTrackDate isInFuture]) {
        return;
    }
    
    [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:trackedDateKey];
    [[Mixpanel sharedInstance] track:@"App Opened"];
}

あとは、タイマーをセットする時にもMixpanelでトラックするコードを書いておく。毎回トラックすると枠がすぐなくなるので、こんな感じで5回タイマーがセットされるごとにトラック。


[[Mixpanel sharedInstance] track:@"New Timer Set" properties:@{ @"Count": @(count) }];

これでだいたいの準備ができました。次は、アプリをリリースして一週間ぐらいたってからグラフで確認。

Mixpanelのリテンション画面で確認

まず、Mixpanelのリテンションという項目をタップするとこんな画面が表示されます。

しかし、これ見ても重要なことはよくわかりません。リテンション分析の画面ってこれが基本なんだけど、僕は、これ見ても何も参考にならないなといつも思っておりました。少なくとも、バージョンとか、なにかの値でフィルタリングしないと、なにとなにでリテンションが違うのかが掴めない。

でも、最近、このフィルタリング方法がわかりました。

今回の広告ありと広告なしで比べるとこんな感じになる。

Mixpanelのリテンションで、写真上でRecurringとなっているところをクリックして、First Timeに切り替えます。

そして、Show me people who didのところに、初回起動時にトラックした”First Launch”をセット。(今回の解析は1.4.3でしかやってないので、AppVersionを1.4.3で起動した人に限定)

Then came back and didのところはAnythingを選ぶと、Mixpanelでトラックしたすべてのデータポイントをカバーするから、”SetTimer”とか、”App Opened”とか、すべてを対象にしているので、ようはまたユーザがアプリを使いに戻ってきてくれたかを意味します。

そして、ここが一番重要なポイントなんだけど、左下の +Segmentというところをクリックして、peopleでセットしておいた”DisableAdAtFirst”(最初は広告を消す)を選択。これでYESとなっているのが広告消えてるユーザ、NOとなっているのが広告ありのユーザ。

やっと、リテンション率を使ってABテストすることができました!

さて、結果をみると、広告ありとなしでリテンションにそこまで違いがない。<1dayのところは1日以内に戻ってきた人の割合。1が1日たって戻ってきた割合となる。5,6,7日目でちょっと違いが出ているけど、このへんになると母数も少なくなってきくるので、あまり参考にならない誤差の範囲な気がする。

ファネル分析からABテスト

次に、ファネル分析も使って二つの値を比べてみたい。リテンションが1日ごとに、何パーセントのユーザが戻ってきたかを見る分析とすると、ファネル分析は時間軸関係なく、何らかの行動をしたかを順番に設定できる。

今回は、初回起動 => タイマーセット (1回目) => タイマーセット (5回目) => タイマーセット (10回目) => タイマーセット (15回目)といったコンバージョン率を基準に、広告ありとなしでどういった違いが出てくるかをみてみる。

結果はこちら。新しいバージョンをリリースして一週間ぐらいの時にみた数値。

さて、今回もpeopleでセットしておいた”DisableAdAtFirst”(最初は広告を消す)をプロパティで選んで選択。これでYESとなっているのが広告消えてるユーザ、NOとなっているのが広告ありのユーザ。

それぞれの到達ポイントごとのコンバージョン率が比べられます。結果をみたところ、広告を消しているほうが若干コンバージョン率が高いけど、それほど違いがあるわけでもない。

今回の分析だけで判断すると、リテンションとファネル分析で比べてみたところ、思ったより広告の有無で離脱率に違いがなかったという結果になった。これは当初想定してた予想と若干違っていたので軽い驚き。

まあListTimerの場合、操作中にできる限り気にならないような広告の付け方を最初にじっくり考えていたというのも大きいかもしれない。

さて、重要だと強調していた、この結果を受けて次にどうするかのアクションですが、そこまで変わらないので今まで通りでいいかなというのが今のところの考え。もっと違ってたら、ある程度使ってもらうまで広告は出さないほうがいいのかなとも考えてたけど、このへんは検討中です。

ただ、この結果はあくまで、この時期に、ListTimerという特定のアプリで、限定された母集団でやったものなので、違うアプリや違う状況なら結果はころっと変わる可能性が高いです。

まとめ

今回のようにABテストは時間も手間もかかるので、ちょっと迷ったらなんでもすぐABテストするぞというのは愚の骨頂だとは思いますが、重要な判断を要する部分では有効なものとなります。

重要なUIの変更とか、大切なメッセージ部分の文章とか、どっちがよいか分からない部分、自分の直感を疑って確かめてみたい時などによいんじゃないでしょうか。

僕が、面白いなと思ったのは、メルカリというフリマアプリで、すでに売り切れている商品を表示する、表示しないという2つのパターンで、売り切れの商品を表示したほうが圧倒的にユーザの定着率がよかったという記事でした。

世界3,200万ダウンロード、単月黒字化も達成。フリマアプリ「メルカリ」が語るマーケティング、検索結果にあえて「売り切れたモノ」を置いている理由。

ちなみに、今回は書いてないけど、アプリ内に埋め込んだコードの値をWeb側から変更する時には、FirebaseのRemoteConfigというサービスが便利です。アプリをアップデートせずに値を変更したかったり、全体の2割の割合でここの値をYESにしたいとかできるので、ABテストする時にぴったり。


*確定申告のTaxnoteなど作ってます。自己紹介はこちら。エンジニアもゆる募



Olderposts Newerposts

Copyright © 2017 うめのんブログ

Theme by Anders NorenUp ↑