LabHub
Get started
배우기 러닝패스 코스

Founding as a Developer — Validate Before You Build

Judge the Smoke Test and Cut the MVP Scope

LabHub 에서 이어서 보기

한국어 원문으로 표시합니다.

목표

스모크 테스트 결과를 윌슨 구간으로 판정하고(채널별·전체·낯선 채널만), 보류인 채널의 필요 표본을 계산한 뒤, RICE 로 MVP 범위를 예산 안에서 자르고 "만들까·더 시험할까·무엇을" 을 정한다.

왜 중요한가

가설은 틀릴 수 있게 숫자로 써야 시험할 수 있고, 시험 결과는 누가 참여했는지까지 따져야 읽을 수 있다. 지인 채널의 높은 전환율과 만들기 쉬운 기능의 높은 점수는 둘 다 가장 흔한 착시다.

재료

정의

단계

  1. /root/founder/mvp/rates.json 에 채널마다 signup_rate·preorder_rate 를 쓴다.
  2. /root/founder/mvp/mvp.pywilson(k, n)[low, high]verdict(k, n, threshold) 를 만든다.
  3. /root/founder/mvp/verdict.json 에 채널마다 low·high·verdict 를 쓴다.
  4. /root/founder/mvp/pooled.jsonall(네 채널 합)과 cold(newsletter_friends 를 뺀 세 채널 합) 각각 preorders, visitors, low, high, verdict 를 쓴다.
  5. mvp.pyn_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.jsonincluded(넣은 순서대로), effort(합계 인월), excluded(건너뛴 순서대로)를 쓴다.
  8. /root/founder/mvp/plan.jsongo_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 를 뺀 세 채널의 선주문과 방문자를 더한 것입니다. 비율을 평균하지 말고 수를 더하세요.

보류라면 몇 명이 더 필요한가

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 를 쓴다.

결정은 지인 채널을 뺀 판정으로 합니다. 다음 시험 채널은 필요한 추가 방문자가 가장 적은 보류 채널입니다.