みんなの「作ってみた」

プログラミング初心者が海外就職のソーシャルブックマークサイトを個人開発するまでのすべて

2019/02/13

yasu_sekai
yasu_sekai
日本と世界をつなぐプロダクト作り

海外就職・キャリアに役立つ情報をブックマーク・コメント・共有するためのWebサービス、SekaiBookを開発しました。

目次


- 何を作ったか

- なぜ作ったか

- どう作ったか(技術)


- いつ作ったか(スケジュール)

- どうやって広めるのか

- 今後の予定(改善点)

- 工夫・苦労・悩んだ点

何を作ったか

海外就職・キャリアに役立つ情報をブックマーク・コメント・共有するためのWebサービス、SekaiBookを開発しました。

なぜ作ったか

大学生の頃から外国の生活に興味がありつつも、当時行動することまでできなかった経験から、自分の背中を押してくれる情報が集まった場所や、実際に海外で活躍する発信者と繋がりやすい場所を作りたいと考えました。

また海外から情報を発信したいというニーズも事前の調査で分かっていたのでお互いが求めるものを実現できる場所を作ろうと思いました。

そして何よりも自分が海外で働いた経験を次の世代に引き継ぐことと、今後新しい海外経験を積もうと考えたときに役立つ情報が見つけられる場所を作りたいと思い、少なくとも自分がユーザになれるサービスを作ることにしました。

イメージはNewsPicksの海外キャリア特化版です。

どう作ったか(技術)

個人開発と言いつつも今回の開発にあたっては一部クラウドソーシングで委託をお願いした部分があります。(後述します。)

フレームワーク:Ruby on Rails
一部JavaScripで非同期処理を実装。
バージョン管理:GitHub
本番環境:Heroku
使用したgem
スクレイピング:metainspector
ログイン:devise [Rails] deviseの使い方(rails5版)
SNSログイン:omniauth
ページ区切り:kaminari
デザイン:bootstrap
SNS連携:meta-tags
デバッグ:pry-byebug

自分で開発するためには、RailsとRubyの本を一冊ずつ購入し、辞書として活用しました。
参考までに使った本を記載しておきます。

特にRuby on Rails 5アプリケーションプログラミングは毎日目を通していました。
Rubyはこちらを読みました。
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで Software Design plus

QiitaとStackOverflowには毎日お世話になりました。
あと、情報蒐集において英語はやっぱり必須だと感じます。まだ20代前半でこれからプログラミングを勉強しようとしている人は絶対に同時並行で英語も勉強した方がいいと思う。

いつ作ったか(スケジュール)

【当初の予定】
2018年11月開発開始
2019年2月1日α版リリース
2019年3月1日β版リリース(機能拡張版)
元々のスケジュールでは、2ヶ月でα版(今の状態)まで持っていく予定でしたが、他の予定が入り約1ヶ月遅れました。β版のリリースも3月末くらいになる見込み。

タスクの管理にはTrelloを使いました。
どんな感じで使っているかを共有するためにも公開しておきます。
https://trello.com/b/uFOYZnp4/sekaibook

私は非常に忘れやすい人間で、タスクを常に優先度別に締め切りを設定して取り組みたい派なのですが、個人開発だと細かいタスクが多く、その時の気分で取り組みたいタスクも変わるので、Trelloを使ってステータスだけでタスクを管理していくのは結構オススメできるやり方でした。

どうやって広めるのか

個人開発の悩みは常にマーケティングだと思います。よほど才能もしくは事前の調査なしにリリース直後にサービスがバズったり、ユーザーが定着することはないと思います。
そのため、このサービスの拡散にも開発と同じだけの時間をかけて対策を練ることにしました。

考えたことは大きく以下の3点でした。
1. 人に認知されること
2. 認知された人にこのサービスを広めるメリットを提供すること(ユーザ登録してもらう)
3. 繰り返し訪れる必要性を与えること(ユーザとして定着してもらう)

そして人(ユーザ)を大きく3つに分解しました。

  1. ブックマークされる記事の書き手
  2. ブックマーク・コメントする人
  3. 読むだけの人

この中で特に焦点を当てたのが、1.のブックマークされる記事の書き手です。
このソーシャルブックマークは海外での仕事とは別でプライベートの時間に記事を書いている人が大きな貢献者となると考えています。そのため、彼(女)らが時間をかけて書いた記事を代わりに拡散する手伝いをすることで彼らの認知度向上や、ウェブサイト訪問による広告収入の拡大などに寄与することを最優先事項として置きました。(そもそもそれがサービスの目的。海外で活躍する人の地位をあげたい。)

また、仮説として、プライベートの時間に記事を書くほどの人であれば、他人の記事にもコメントを書く確率が他のユーザよりも高いと推測しています。
そこではてなブックマークやTwitter等で人気になっている記事の媒体を150程集めエクセルで整理して読み込みコメントを書きなぐりました。
本当は機械的に記事を集めたかったのですがいい方法が思いつかず泥臭い行動となりました。

この後は以下の流れで進めていきます。

・集めた記事とコメントをnoteにまとめる。

・Twitterでシェアする。

・記事の執筆者に連絡する(Twitter、Email)

(少し記事が拡散される)

・記事の人気順、コメントランキングなどをまとめてnoteにする。

・Twitterにシェアする。

(上記の繰り返し)

この繰り返しの結果から、ユーザ求めるものを探して仮説検証とpivotを繰り返していくのが今後の流れとなります。pivotというかPDCAの方向性としても個人開発で0ベースで検討・実装するのは非常に工数がかかるので、別ジャンルで似たサービスを提供しているサービスをとにかく研究して、そこで今回作ったサービスにフィットする機能を今後優先的に取り組んでいくことになります。

サービスの拡大関連は以下の書籍が良さそうです。
Hooked ハマるしかけ 使われつづけるサービスを生み出す[心理学]×[デザイン]の新ルール

後はここに書かれているサービス紹介系のサイトに登録していく予定です。
個人でWebサービスを公開した時にやったことリスト

工夫・苦労・悩んだ点

工夫した点

ログインをSNS経由のみにした
コメントがサービスの根幹にある関係上、SNSのログインを使うことで最低限の質の担保を図りたいと考えたためです。(ただし今後通常のログインも実装したい。)

苦労した点
スクレイピングのやり方がわからなかった(時間がかかりそうだった)→別の予定も入った都合上スケジュールがかなり遅延するのを防ぐためにクラウドソーシングで委託することにしました。
初めてクラウドソーシングを使いましたが、案外さっと依頼して実装するところまでできました。
一番悩んだのは依頼先ですが、経験を定量的に示されている方を採用しておけばリスクは下げられるかと。

悩んだ点

リーンスタートアップでいうMVP(Minimum Viable Product: 最低限の機能を持った製品)を個人開発ではどこに設定するのか。
→個人開発という点では、機能の根幹のみを本当のMinimumとして定義し、デザインやあったらいいなという機能をすべて後から追加する形式をとってみました。
ソーシャルブックマークとして位置付けているので、ブックマークと、他ユーザが閲覧できる(ソーシャル)な要素は必須としたものの、フォロー・フォロワー機能や、サービス内で記事を作成する機能などは初期リリースの対象外とすることにした。

この辺りは、機能を実装すればするほど、リリースが遅れるというだけでなく、方向転換がしにくくなるという点を考慮した場合、リスクが高いと考えました。
ソーシャルブックマークの特性上、データは随時蓄積されていくので、いいサービスに磨いていけばいくほど後からユーザに刺さる機能があれば追加することでユーザを取り戻す事も可能だと考えました。

デザイン
これもユーザに刺さる機能を見極めてから後から整理することにしました。ロゴやfaviconの作成も後回しにしています。

最後に

Qiitaのような自分の知見を公開するエンジニア文化はとても優れたものだと感じています。

それと同じ考えを海外での仕事や生活情報にも当てはめることで、もっと海外で活躍する日本人が増え、それによって海外でも日本人が生活しやすくなるという好循環が生まれるとすごくいいなと思いつつそういう場所を少しづつ育てていきたい。

お読みいただきありがとうございました。