プライベートプロジェクトでのリーン・スタートアップ by ffab0
先日、友人と2人で立ち上げたffab0というチームで
最初のサービス"PositionStrategy"をリリースした。
http://position-strategy.ffab-0.com/
今回はサービス企画からファーストリリースまでの1ヶ月間をまとめてみた。
仕事をしながらプライベートでサービスを出したい、学生同士で友人となにかサービスを作りたいと考えている方たちの参考に一部でもなれば。それと自分用に備忘録としても。すべて隠さずに書いているつもり。
目次はこんな感じ。
- サービス概要 ~ 宣伝も兼ねて ~
- 前提 ~ 開発環境と連絡手段などチームマネジメント ~
- 1週目 ~ 企画、そして挫折。新たなメンバー ~
- 2週目 ~ 企画MTG。表参道での誓い ~
- 3週目 ~ 2人で開発することによる成功と失敗。本業による多忙・・ ~
- 4週目 ~ リリースまでの長い道のり ~
■サービス概要
サービスの概要を説明しておくと、最近よく「LINEの売上が前年比◯◯%アップ!」や「グリーがついに赤字転落」など、決算や業績に関するニュースがピックアップされるが、それが実感としてどの程度すごいのか、どの程度良くないことなのかつかみにくいと思う。(少なくともビジネス感覚の低い僕はそうです。。)
そこを解決するために、代表的な財務指標をいくつかピックアップし、グラフ化して、前年はどうだった、他企業と比べてどうか、業界的にはどうなのかなどが視覚的に、直感的に理解できてるようにしたツールです。それを見る人の立場、役割によって様々な戦略を立てる手助けになりえるのではないかと考えています。
■前提 ~ 開発環境と連絡手段などチームマネジメント~
今回のPositionStrategyの使っている技術をざっと上げると
- Ruby on Rails 4.0
- Ruby2.0
- coffeescript
- chartJS
- MySQL5.6
- slim
- unicorn
- nginx
ざっとこんな感じ。コードの管理はgitホスティングサービスのbitbucketを使った。
チームのマネジメントという点では僕は東京で友人Kは大阪だったので基本的には
LINEとTwitterで相談、それでも難しい場合はGoogleハングアウトで会話+画面共有しながら相談という感じ。
また、土日など時間が取れる時に1日ハッカソンみたいな感じでずっとハングアウトつなぎっぱなしで開発をしていた。
ドキュメントはGoogleドライブ。
こんな感じで1ヶ月間で企画からリリースまで。
それでは次から1ヶ月間を振り返っていく。文章が稚拙なのでおもしろくないかも。。
■1週目 ~ 企画、そして挫折。新たなメンバー ~
このサービスは兼ねてから僕が考えていて勉強も兼ねてひとりで作ろうと思っていた。そこに同期のプログラマーが乗ってきたので2人でやることになったのだが、ここで最初の大きな挫折が。
- 仕事を言い訳にできてしまう
- 2人ともデザインのセンスがなかった
- 同期はユーザビリティよりもシステムに関心がいっている時期だった
- サービスを創れる状態になかった
同期同士なのでお互い忙しいのがわかるのと、仕事内容も把握していて催促できないことで甘えが出てしまっていた。さらにふたりともデザインセンスがほぼ皆無だった(僕はデザインが好きなだけに非常に残念だ笑)。同期はシステムやアクセスをどうさばくかというところに強い関心があったが、2人で創るにはその前の段階でクリアしなければならないことが多すぎた。どっちが悪いでもなかったがサービスを創るチームではなかったのだというのが結論だと感じている。
そんな中、救世主の友人Kがジョインしてくれた。どうやって呼び込んだかというと、この挫折しきった状態を大いに包み隠してビジョンだけ情熱的に話して呼び込んだ(笑) もちろんKがこのサービスに共感してくれたのが大きかったのと、高校時代からの友人で彼となら遠隔でも(Kは大阪在住で僕は東京)できるとお互いが思ったことが大きかった。実はKとは前に一度サービスを作ったことがあってある程度次はもっとうまくやれるとお互いに思いがあったこともある。
■2週目 ~ 企画MTG。表参道での誓い ~
Kと僕でやることになった時のチームのスペックとしては
- 僕はコード(主にサーバーサイドだがマークアップも)は多少書ける。ビジネスを考えるのは好き。
- Kはデザインが得意でマークアップもできる。サーバーサイドはほぼ素人だがターミナルで作業できるのとgitは教えた。ビジネスを考えるのは好き。
この2週目にKがたまたま東京に来る機会があったので、2泊3日の合宿で企画MTGと最初の環境構築をした。ふたりで振り返ってもここが重要なポイントだった。何が今回の成功(?)の鍵だったかというと、初回リリースの機能を洗い出して期限と担当を決めたこと。これは非常に重要なのだが、これをするためにはお互いに厚い信頼がないと仕事でない場面ではうまくいかないと思う。これを2人が守り切ったからこそ1ヶ月でのリリースができた。
もともと信頼はあったが、この合宿の最後に表参道でチーム論と人生について2人で話し合った。そしてffab0をスタートすることに決めた。これで2人でやっていく結束がさらに固まったように思う。ffab0がどうなるかは一定の結論が出た段階でまた書きたい。
■3週目 ~ 2人で開発することによる成功と失敗。本業による多忙・・ ~
ここは少し技術的な苦労が多かった。。まずKがgitを扱ったことがなかったのと、僕の伝え方がいまいちだったのが相まってコンフリクトからの激しいマージの嵐(笑) JSは最初Kに任せていたが途中から僕が巻き取ったのだがリファクタがかなり大変だった。。ただ、動くところまでやってくれていたので動きを見なくても綺麗に書きなおしてディレクトリ構造を綺麗にすればいい感じだったので助かったが。 あとは途中からKにもサーバーサイドで簡単なところは任せたのだが僕の中でのコーディング規約みたいなものを全く伝えていなかったのでお互いに苦労がうまれた。。ただbitbucketを使ってコミットを追いながらコメントしていたので修正はなんとかできた(それほどお互いに交わり合う実装が無いと思ったのでブランチ切ったりプルリクやったりはしなかった)
さらに仕事でのリリースがあってこっちに使える時間があまりなかった。ただそれは先ほど重要といった期限を守るという絶対の約束を守るという気持ちでなんとかした。自分が大変でも相方がちゃんとサービスを前進させてくれているというのはかなり気持ち的にも助けになる。
■4週目 ~ リリースまでの長い道のり ~
これは僕がrailsのassets piplineでつまったせいがかなりの比重を占める・・・。。それからどうしてもバグがでまくる。最後はずっとハングアウトで画面共有しながらお互いに指摘・説明・修正を繰り返してリリースまでこぎつけた、という感じだった。1年ほど前にCTOに「サービスは出来たと思ったところでだいたい2割くらい。あと8割残ってる」と言われたことがあるのでが、まさに今回もそんな感じだった・・。ここはちゃんとドキュメント化して無理なくできるようにしたい。
----
こんな感じの1ヶ月間でした。これからはリーンな感じで徐々にこのPositionStrategyをブラッシュアップしつつ、ffab0は1ヶ月1サービスを目標にしているので来月あたりまた新たなサービスを世に出せればと思っています。(ちなみに今週はこのブログに書いた企画MTGを再び実施予定)
...
最後に、シェアの時代なのでKPT法で振り返った僕らの反省会を載せておきます
KPT:
【K】
役割分担(デザインとサーバーサイド)
マイルストーンの置き方(この日までにこうしようという期日をしっかり定めて守った)
お互いが進めてる感がわかった(ツイッターとか通して)
ハングアウト
合宿形式で一旦認識を深め合ったのが良かった
サーバーサイド担当からのデザインに対する感想・指摘・アドバイスがあったこと
Kがrailsとコンソールを触れるようになったこと
slimいいね
【P】
gitのやりとりがうまくいってない(Kがもっと覚えるべき by K)
cssとslimをもっときれいに書く。今後はsassで書く
cssの構造を練ってからとりかかるべきだった
認識のすり合わせができていない(コードレベルでのズレが多くて書きなおすことが多々)
モデルやコントローラーの書き方(K)
本番リリース
いらないgemとか早めに消しとくべき
本番を意識した書き方ができていない&むずい。認識がなかった。
【T】
もっとKがサーバーサイド触る
ブランチ切ってプルリクを機能させる
技術をパッケージ化したい
年末年始合宿
ビジネスをもう少し考えてやりたい(マネタイズ、集客など)
⇛ 作るときにどういうビジネスモデルで行くのか、どういう集客方法でやるのかを
考えてから作る