C.W.K.
Stream
Lesson 03 of 05 · published

P0 / P1 / P2 / Never: 인테이크 티어

~13 min · bounded-replacement, scope, roadmap, prioritization

Level 0릴 입문자
0 XP0/39 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"Unknown 은 출시 분류가 아니야."

거절할 줄 아는 로드맵

모든 기능 요청은 똑같은 상냥한 얼굴을 하고 와: "이거 있으면 좋지 않을까…" Bounded 도구는 그 압력을 결정으로 바꾸는 기계가 필요해, 아니면 익사해. Ashen Reel 의 기계는 네 개 티어고, 중요한 건 네 번째야.

  • P0 — 컷오버 필수. 이게 통과하기 전엔 아빠가 Movist 를 못 은퇴시켜: 파일 열기, 정확한 Recall seek, 재생/정지/볼륨, 정직한 seek 모드, 자막·오디오 트랙 선택, resume, 전체화면, 스크린샷, A-B 루프. 증명되거나, 릴리스가 막히거나. 부분 점수 없어.
  • P1 — 데일리 깊이 후보. 진짜 가치 있지만, P0 경로가 작동하고 그리고 관찰된 워크플로우가 요청할 때까지 기다려: 썸네일 스크럽, 자막 스타일, 로컬 북마크, 화면비 컨트롤.
  • P2 — 증거로 게이트되는 특수 기능. 아빠가 진짜 마찰을 보여주고 그리고 지금 도구보다 나아지는 델타가 있을 때까지 잡지 마: 오디오 패스스루 매트릭스, EQ, 멀티트랙 합성, 완전한 단축키 프리셋 시스템.
  • Never — 일부러 거절. "나중"이 아냐. Never: SMB/FTP/WebDAV 브라우저, 웹 미디어 추출, 파일 삭제나 이름 변경, 트랜스코딩, 라이브러리 매니저, 자막 데이터베이스, Pippa 뇌.

Never 티어가 바로 핵심이야

대부분의 로드맵은 P0 랑 P1 이 있고, P2 아이디어가 거절도 못 당한 채 썩는 "백로그"라는 무덤이 있어. Ashen Reel 은 Never 티어를 소리 내서 이름 붙여. "우린 네트워크 공유 브라우저를 절대 안 만들 거야"라고 적는 건 미래의 너한테 주는 선물이야: 재발하는 논쟁을 다시 시작되기 전에 끝내고, 코드를 읽는 누구한테든 벽이 정확히 어디 있는지 알려주거든.

범위는 관찰된 마찰이나 필수 실패에서만 넓어져 — '경쟁사가 갖고 있어'나 '쉬울 텐데'에서는 절대 아니야. 도구 만들기에서 제일 위험한 두 문장이 딱 이 규칙이 막는 그 둘이야.

같은 규칙을 코드로, 머릿속에 들어갈 만큼 작게:

행동을 'Unknown' 으로 두는 것 자체가 버그야. Movist 가 노출하는 모든 표면은 출시 전에 P0, P1, P2, Never 로 표시돼. 분류 안 된 기능은 다음 요청 넣는 사람한테 몰래 미루는 결정이야 — 그럼 제일 중요한 게 아니라 제일 시끄러운 요청이 이겨.

비대칭을 봐: 티어를 위로 올리는 건 증거가 들지만, 기본 중력은 아래로야. 애매하면, 덜 거절이 아니라 더 거절이야. 그 하나의 편향 때문에 Ashen Reel 이 느리고 넓게 퍼진 게 아니라 깊은 플레이어인 거야.

Code

인테이크 티어, 그리고 P2 를 승격시키는 유일한 것·swift
/// How a candidate behavior enters (or never enters) Ashen Reel's scope.
enum ParityTier {
    case p0     // required for Movist cutover: proven, or the release is blocked
    case p1     // daily-depth candidate: enters when an observed workflow asks
    case p2     // evidence-gated specialist: needs friction AND a positive delta
    case never  // deliberately refused: SMB browser, web extraction, source mutation
}

/// The gate. Note P2 needs BOTH signals, and `.never` ignores every argument.
func shouldSchedule(_ tier: ParityTier,
                    frictionObserved: Bool,
                    positiveDelta: Bool) -> Bool {
    switch tier {
    case .p0:    return true                     // already required
    case .p1:    return frictionObserved
    case .p2:    return frictionObserved && positiveDelta
    case .never: return false                    // no amount of "but it'd be cool"
    }
}

External links

Exercise

네가 작업 중인 프로젝트를 골라서 대기 중인 아이디어 다섯 개를 P0 / P1 / P2 / Never 로 분류해봐. 규칙: 아무것도 'Unknown' 으로 남으면 안 돼. 최소 하나는 Never 로 밀어넣고, 그게 절대 안 만들어질 이유를 한 문장으로 적어. 어떤 아이디어가 분류에 제일 저항했어? 보통 그게 네 범위가 조용히 새어들어가는 지점이야.
Hint
P0 = 이거 없으면 릴리스가 막힘. Never = 다른 도구나 다른 소유자한테 속함. 전부 P1 에 떨어지면 아무것도 결정 안 한 거야 — 우선순위 붙인 위시리스트를 만든 것뿐이야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.