トータル24時間で最初のユーザーを獲得する話

Misoca+弥生+ALTOA Advent Calendar 2018の14日目のエントリです。
昨日はkaito_xgurxさんのWindowsでJISキーボードとUSキーボードを併用するでした。
今日はワタクシ、弥生のta_kumaがお送りします。
普段は会社の将来のことなどを考えながら(!?)コードいじいじしてるエンジニアです。
今回は、前々から自分が作ったと言えるサービスを作りたかったので作ってみました。

はっきり言ってこの企画めちゃめちゃ大変でした。後悔もありましたが…収穫もありました。

目標

24時間で最初のユーザーを獲得する。それだけです。

私はディレクター的な立ち位置でやっていきます(ディレクターの役割に集中。コードは触らない)。
設計やプログラムは極力エンジニアに任せます。
(企画して仕様詰めて、実際に手を動かすのはヨロシク!としたいと思っていましたが、そう上手くはいきませんでした…)

24時間の流れ

  1. 仲間集める(0.5h)
  2. どんなサービス作るか決める(1.0h)
  3. デザイン作る(6.0h)
  4. 動くもの作る(15.0h)
  5. 宣伝する(0.5h)
  6. ユーザー獲得する(1.0h)

1. 仲間集める(0.5h)

いつも一緒に色々な勉強会に行ってる友人エンジニアに、企画内容を連絡しました。
快諾してくれたのでこれで仲間集めは終わりで、2人で作っていくことにしました。
付き合いも長いのでコミュニケーションも取りやすく、いけそうな感じですね。

2. どんなサービス作るか決める(1.0h)

私が作りたいサービスのアイデアを共有しました。概要は以下です。

  • 特定の属性の人と話せるチャット的なもの(※)
  • サービス利用者(ゲスト)も話し相手(ホスト)も匿名
  • 登録不要で気軽に使える
  • 暇つぶしでも悩み相談でもなんでもできる
  • 必ず返事が返ってくる
    ※特定の属性とは、例えば「医者」とか「エンジニア」とか

個人的に、いろんなバックグラウンドを持つ人の考え方とかに触れてみたいと思ったのが背景にありました。
あとは、完全匿名だからこそぶっちゃけた話とかできるかなーと思ったりもしました。
(ホストが特定の属性であることへの信頼性を提供するのが運営側の役目かなと考えています)

友人エンジニアのスキルセットや時間的な制約その他もろもろを考慮してできるだけ機能を落としていき、制限時間内に作るのは以下のサービスとしました。

  • 特定の属性を1つに絞る(※)
  • チャットとは言うもののリアルタイムの素早いやり取りは想定しない(掲示板くらいの速度感)

特定の属性であることへの信頼性が担保されたホストを用意するために、知り合いの中で該当する人の多い属性を選びました。
ゲストがあまりにも多くなると知り合いのみのホストでは回らなくなることが懸念されますが、きっと誰も使わないので大丈夫です。
(もし回らなくなったら考えたようかと思います、そこは。)

3. デザイン作る(6.0h)

サービスが決まった段階で、ゲストが使うのはトップページとチャットページの2画面だよね、と話していたのでその2画面のデザインを考えました。
センスがないのでデザインもエンジニアに任せたかったのですが、手書きとかExcelでもいいからイメージ欲しいとあったので私が作ることにしました。
私もエンジニアなのでMaterialize(https://materializecss.com/)を使ってヒィヒィ言いながらhtmlとかcssとかjsとかでデザインを作りました。
Materializeは簡単にそれっぽいもの出来上がるし、なんとなくレスポンシブになるのでオススメです。
過去にMaterializeいじっていたので、サクサク進みました。 調子に乗ってfaviconとかアイコンまで作りました。

4. 動くもの作る(15.0h)

ここについては、友人エンジニアのアカウントでQiitaに投稿しているのでそちらを参照してください。

qiita.com

簡単にまとめると・・・

firebase便利。
cloud functions最高!
firestore結構なんでもできる!
ドメイン取得するとなんかうれしい!

12時間で作る予定でしたが、15時間かかってしまいました。
時間なさ過ぎたのでバグだらけです!(既知のバグもたくさんw) まだまだ改善の余地あり。

この企画で最も大変だったところはここでした。
友人エンジニアの「firebaseできるよ」と私の「できる」の認識が合っていなかったことが発覚しました。
目標の24時間で最初のユーザーを獲得するために、 技術的な課題解消やコード書きやDB設計をディレクターの私も一緒に考えることになりました。
私も結構コード書いた気がします…
想定外ではありましたが、結果的には勉強にはなりましたし、触ったことがない人でも10時間程度で一通り使えるようになるほどfirebaseは有能だということがわかりました。

5. 宣伝する(0.5h)

上で紹介した友人エンジニアのアカウントでのQiita投稿でひとまず様子を見ます。
これでダメなら街に繰り出していって営業活動をしなければいけません。

6. ユーザー獲得する(1.0h)

記事投稿後、打ち上げもかねてシースー食べながら反応を待ちました(牛丼)。
しばらく待つと、見ず知らずの人から書き込みがきていました!
投稿した記事にいいねが付いてすぐだったうえ、かなり内容のない書き込みだったので大体誰が書いてくれたかは予想できますが、最初のユーザーであることに変わりはないのでおーけーです。

f:id:ym_AdventC:20181212140313p:plain:w300

これにて完了です。お疲れ様でした!

まとめ

サービスの要件を決める時に、技術のわかるエンジニアがいたことで上手く機能を削っていくことが出来たように思います。
どういうものを作るかは絶対にエンジニアも一緒に考えて決めないといけないな、と感じました。
あとはコミュニケーションの難しさについても痛感させられました。
友人の「できる」と私の「できる」のレベル感の認識違いがあったんですね。
「調べればできる」とか「多分できる」とかを「できる」と言う人もいれば、「できる」だけを「できる」という人もいますよね。
頻繁にコミュニケーションをとっている間柄でもこういったズレが出てくるので、実際の業務になるともっと大変だな、とつぶやいておきます。

もし次似たようなことをする機会があったら、ちゃんと認識合わせをして、設計やプログラムはエンジニアに任せる(計画通りにディレクターに徹する)ぞ…!

結果的に、firebaseで一通りのことはできるようになったのは収穫でした。

完成品について

上で紹介した友人のQiitaの記事から飛べるので、ご興味のある方は触ってみてください。
年内は動かそうと思っていますが、いつまで動かすかわからないのでお早めにどうぞ。笑
現状、話し相手として出てくるのは、協力してくれたエンジニアと、もう一人僕の個人的な知り合いの二人体制です。
そのため、返事は遅いこともあると思いますがご了承ください。

これから

  • サービスの説明がゼロなのでもう少し説明を付ける。
  • 既知のバグを修正する。(時間を優先するあまり残した)
  • 明らかに使い勝手が悪い部分を修正する。
  • セキュリティ対策をもう少しちゃんとする。
  • スマホアプリも作りたい。
  • 宣伝も真面目にやってみる。(マーケティング勉強しよう)

次回予告

Misoca+弥生+ALTOA Advent Calendar 2018、次のエントリは@noriko_kanoさんによる「アセンブラ短歌の話」です!
渋さありますね。