僕が1週間でWebサービスを公開するまで

先日FeedlyGraph を1週間で公開した。

one week

photo credit: surfzone™ via photopin cc


公開までを振り返ってみる。


0日目

イデア出し

僕は普段からこんなサービスが欲しいな〜というアイデアをメモに残すことにしている。
iCloud 便利。


今回はそこから規模感が合うものをチョイス。


1日目

イデアの検証

問題を解決するサービスが世の中にあるかどうかを確認した。
今回は「Feedly の購読者数の推移を確認したい」が問題。


既にあった解決策に近いものは以下のとおり。

上から順に

  • WordPress でないと使えない
  • 今の購読者数しかわからない
  • GrowthForecast の見た目が気に入らない

という理由でダメだったので、サービスを作ることが決定した。
この時点で「オシャレな UI で確認したい」ニーズがあることがわかった。


名前づけ

プログラミングに限らず、名前づけ大事。
サービス名がかぶると、ググラビリティが下がる。


僕が探そうとしたときの検索ワードが「Feedly 購読者 グラフ」や「Feedly 購読者 解析」だった。
ここから FeedlyGraph か FeedlyAnalytics が候補に。

FeedlyAnalytics を採用しなかったのは、「解析」とするといろんな問題を解決したくなり、結果として機能が増えてしまう気がしたため。


2日目

サービスのデザイン検討

僕自身がユーザだけど、もしかすると他の人も使うかもしれない。
万が一有名になったら少しくらい収益につながってほしいけど、シンプルな UI にしたい。
これらのことから収益面は考えないことにした。
その分、コストがかからない技術を採用する方針に決めた。


技術選択

言語

使い慣れた言語でやるよりも、少し前から Rails を勉強し始めたこともあり、何かプロダクトを作りたかったので Ruby on Rails に決定。

ホスティングサービス

いろいろあるので心配しなかった。
後回し。

ソースコード管理

少なくともサービス公開までは public なところに置きたくなかったので Bitbucket に。


これら以外はやりながら考えることにした。
必要ないときに余計なことをやらないのは大事。
やる気があるうちに次のタスクに進まないと飽きてしまう。


サイトのUI検討

なんかの記事で書いてあったように進めた。
(見つからないのでリンクはなし)

  • いきなりコードを書くべきではない
  • まずは紙に書こう
  • 次に Illustrator
  • 最後にコード


Illustrator は持ってないし僕には使えないので、丁寧に紙に書く程度にした。
書いたものはコチラ。

ラフ


3〜6日目

プログラミング

ひたすらプログラミング。


この時点で Ruby に触れたのが通算 3日目 で、Rails で has_many の書き方すらわからない状態だったので時間がかかった。


たまにやるべきことから脱線してしまう(仕事でもありがち)ので、手書きのマインドマップでゆる〜くタスク管理し、今どこをやってるかを明確にした。
これによって1個のタスクに集中して順番に潰していくフローができた。

また、作業の全体量を見て、無理そうな要求は外した。
(2日目の紙デザインにあった、期間設定とか)


参考にしたサイト

本当はもっといっぱいあるけど紹介しきれないので割愛。
公式は大事。


7日目

ホスティング

HerokuSqale で迷い、無料な Heroku に。


Heroku にデプロイしてから Javascript が動かないなどの問題が何度か起きた。
このあたりを予測してなかったので、夕方公開するつもりが23時とかになってしまった。


SEO関係


サービス監視

NewRelic 様々。
Heroku はアクセスがないとスリープするので、定期的にアクセスさせる面でも NewRelic は便利。
ついでに Idobata と連携してみた。


スケジューラ

FeedlyGraph では定期的に購読者数を取得する必要がある。
Heroku の cron というべきサービスの Heroku Scheduler を導入。


公開

Heroku にデプロイした時点で公開は終わってるけど、ブログに書くまで が公開。


ふりかえり(8日目以降)

Keep

無事公開できたことは非常に嬉しい。
プライベートでサービスを作るなんて、しょせん自己満足でしかない。
この達成感とその後のアルコールのためにやっているようなものだ。


過去の蓄積が生きた

前にも書いたけど、rebuild.fm の知識が役立った。
今回は Rails4.0 の Toubolinks のあたり。


NewRelic は MicrosoftAzure で既に使っていたのでサクッと導入できた。


Problem

テストがほとんど書けなかった

流行りの RSpec を使ってテスト書いてたけど、トラブルシューティングに時間がかかりすぎて後回しにした。
大半はローカルサーバか Rails console を使って動作確認してた。


公開周りの作業がカツカツだった

プログラマーは実装を中心に考えてしまいがちだけど(僕だけ?)、公開するためにやらないといけないことはいろいろある。
そのあたりを舐めてはいけないと実感した。


最後に

僕は単に技術を勉強するより、何かを作る過程で技術を学ぶほうが性に合う。
今後もいろんなサービスを作りたい。


たった2日でできるRuby―Ruby2.0対応

たった2日でできるRuby―Ruby2.0対応

10日でおぼえる Ruby on Rails入門教室

10日でおぼえる Ruby on Rails入門教室