LabHub
시작하기
배우기 러닝패스 코스

개발자의 창업 — 만들기 전에 검증하기

스모크 테스트를 판정하고 MVP 범위를 자른다

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

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