TT Lab
はじめる
学ぶ 学習パス コース

開発者の起業 — 作る前に検証する

スモークテストを判定し MVP の範囲を切る

TT Labで続きを見る

目標

スモークテストの結果をウィルソン区間で判定し(チャネル別・全体・見知らぬ人のチャネルだけ)、保留のチャネルの必要な標本を計算したうえで、RICEでMVPの範囲を予算内で切り、「作るか・もっと試すか・何を作るか」を決めます。

なぜ重要なのか

仮説は、間違いうるように数字で書いてこそ試せ、試験の結果は、誰が参加したかまで考えてこそ読めます。知人のチャネルの高いコンバージョン率と、作りやすい機能の高いスコアは、どちらも最もよくある錯覚です。

用意するもの

定義

ステップ

  1. /root/founder/mvp/rates.jsonに、チャネルごとにsignup_rate・preorder_rateを書く。
  2. /root/founder/mvp/mvp.pyに、wilson(k, n) → [low, high]と、verdict(k, n, threshold)を作る。
  3. /root/founder/mvp/verdict.jsonに、チャネルごとにlow・high・verdictを書く。
  4. /root/founder/mvp/pooled.jsonに、all(4つのチャネルの合計)とcold(newsletter_friendsを除いた3つのチャネルの合計)それぞれの、preorders, visitors, low, high, verdictを書く。
  5. mvp.pyにn_needed(p, threshold)を加え、/root/founder/mvp/sample.jsonに、判定がinsufficientのチャネルごとに、n_needed(そのチャネルの事前注文率が基準)とextra_visitors(n_needed − visitors)を書く。
  6. /root/founder/mvp/rice.jsonに、機能ごとにRICEスコアを書く。
  7. /root/founder/mvp/scope.jsonに、included(入れた順)、effort(合計の人月)、excluded(飛ばした順)を書く。
  8. /root/founder/mvp/plan.jsonに、go_build(coldの判定がpassか)、cold_verdict、next_test_channel(insufficientのチャネルのうち、extra_visitorsが最も少ないチャネル)、scope_if_go(ステップ7のincluded)を書く。

参考

チャネル別の登録率と事前注文率

/root/founder/mvp/rates.jsonに、チャネルごとにsignup_rate・preorder_rateを書く。

分母は、すべて訪問者数です。登録率が高くても、事前注文率が低いことがあります。仮説の指標は、事前注文率です。

区間で判定する関数

/root/founder/mvp/mvp.pyに、wilson(k, n)とverdict(k, n, threshold)を作る。

wilsonは、前のモジュールの式そのままです。verdictは、下限 ≥ 基準ならpass、上限 < 基準ならfail、残りはinsufficientです。

チャネル別の判定

/root/founder/mvp/verdict.jsonに、チャネルごとにlow・high・verdictを書く。

基準は、hypothesis.jsonのthresholdです。点推定と基準を直接比べません。

知人のチャネルを除いて判定し直す

/root/founder/mvp/pooled.jsonに、allとcoldそれぞれの、preorders・visitors・low・high・verdictを書く。

coldは、newsletter_friendsを除いた3つのチャネルの、事前注文と訪問者を足したものです。比率を平均せず、数を足してください。

保留なら、あと何人必要か

mvp.pyにn_needed(p, threshold)を加え、/root/founder/mvp/sample.jsonに、insufficientのチャネルごとに、n_neededとextra_visitorsを書く。

nを1から増やしながら、k = round(p·n)で区間を計算し直し、基準を外れる最初のnで止めます。上限は200000です。

RICEスコア

/root/founder/mvp/rice.jsonに、機能ごとにRICEスコアを書く。

confidence_pctはパーセントなので、100で割って掛けます。effortは人月です。

予算内の範囲

/root/founder/mvp/scope.jsonに、included・effort・excludedを書く。

スコアの降順に見ますが、超える機能は飛ばして、次の機能を見続けます。同じスコアは名前順です。

作るか、もっと試すか、何を作るか

/root/founder/mvp/plan.jsonに、go_build・cold_verdict・next_test_channel・scope_if_goを書く。

決定は、知人のチャネルを除いた判定で行います。次の試験チャネルは、必要な追加の訪問者が最も少ない、保留のチャネルです。