본문 바로가기
C.W.K.
Stream
Lesson 02 of 04 · published

컷오버 게이트가 '완료' 의 뜻이야

~13 min · epilogue, definition-of-done, acceptance, cutover

Level 0릴 입문자
0 XP0/39 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"아빠가 bounded 데일리 기능 세트에 대해 Movist 로 안 돌아가고 평범한 Recall → 재생 → seek → 자막/트랙 → 전체화면 워크플로우를 완료해."

'완료' 는 느낌이 아니라 게이트야

소프트웨어에서 제일 비싼 단어가 '완료' 야. 다들 그 말로 서로 다른 걸 뜻하거든. 컴파일되면 완료. 테스트 통과하면 완료. 다 된 것 같으면 완료. Ashen Reel 은 그걸 다 거부하고 완료 를 증거로 만든 구체적인 게이트로 정의했어. 진짜 미디어로 진짜 머신에서 통과하거나 못 하거나 둘 중 하나인 체크리스트. 느낌한테는 투표권이 없어.

1.0.0 컷오버 게이트는 조건 여덟 개고, 전부 확인 가능해. build, test, bundle, sign, install, doctor 가 실제 Office 호스트에서 다 통과할 것. golden corpus 가 진짜 코덱이랑 컨테이너, HDR, 자막, 오디오 매트릭스를 커버할 것. 필수 클래스마다 디코드 모드, 색 결과, A/V 싱크, seek 정확도, resume 를 기록할 것. Recall exact-open 이 로컬 브라우저 세션에서도 원격에서도 작동할 것. 실행 전후로 소스 파일이 하나도 안 바뀔 것. P0 케이스 전부가 '설치된' 번들에서 통과할 것. 보이는 버전이 제품 소스랑 일치할 것. 그리고 마지막 하나가 제일 중요해.

완료를 진짜 타겟에서 나온 증거로 정의하고, 사람이 받아들이는 조건도 넣어. 자동 검사 게이트는 머신이 만족한다는 걸 증명해. 마지막 조건은 사람이 만족한다는 걸 증명하고. 아빠가 Movist 를 한 번도 안 열고 하루치 워크플로우를 끝내는 것. 증거도 예라고 하고 사람도 예라고 할 때 내보내.

게이트가 실제로 어떻게 생겼는지 보자. 정직하게 열어둔 항목 하나까지 같이.

조건부 항목이 위조된 통과보다 정직해. Dolby Vision 은 아카이브 어디에도 대표할 미디어가 없어. 그래서 체크박스를 초록으로 만들려고 샘플을 지어내는 대신, 게이트가 그 항목을 조건부로 표시해. 미디어가 없어서 테스트 못 했고, 진짜 미디어가 생기는 날 다시 열린다고. 자기한테 남은 열린 질문 하나를 이름 붙여 밝히는 릴리스가, 모든 박스가 체크됐다고 조용히 꾸미는 릴리스보다 강해. 별표 하나 붙은 완료가 별표 없는 가짜 완료를 이겨.

왜 사람이 하는 테스트가 진짜인가

세상의 모든 자동 증거는 결국 질문 하나의 대리야. 이게 대체가 필요했던 그 사람한테 실제로 Movist 를 대체해줬어? 그래서 게이트 마지막 항목이, 아빠가 옛 플레이어로 안 돌아가고 Recall 에서 전체화면까지 가는 평범한 워크플로우를 끝내는 거야. 1.0.0 은 그게 될 때에만 나갔고. 머신 검사는 앱이 능력이 있다고 말해줘. 사람 검사는 그게 채택됐다 고 말해주고. 도구는 작동한다고 완료가 아니야. 그 도구를 위해 지어진 사람이 그게 대체한 물건을 더는 안 열게 될 때 완료야.

Code

1.0.0 컷오버 게이트. 증거로 정의한 완료, 정직한 별표 하나까지·text
The 1.0.0 cutover gate ('done' = evidence on the real target):

  [x] build, test, bundle, sign, install, doctor all pass on the real host
  [x] golden corpus covers the codec / container / HDR / subtitle / audio matrix
  [x] every required class records decode, color, A/V sync, seek, resume
  [x] Recall exact-open works from BOTH local and remote browser sessions
  [x] no source file changed before vs after the run (the audit)
  [x] every P0 parity case passes from the INSTALLED bundle
  [x] visible version agrees with cwk-product.json
  [x] Dad completes his daily workflow WITHOUT returning to Movist

  [~] Dolby Vision: CONDITIONAL -- no representative media exists in the
      archive; the gate reopens when it does. NOT faked to green.

External links

Exercise

네가 짓고 있는 것에 대해 진짜 완료 정의를 적어봐. 모든 항목을 네 dev 머신이 아니라 실제 배포 타겟에서 확인할 수 있게 만들고, 사람이 받아들이는 조건도 최소 하나 넣어. 의도한 사용자가 진짜 작업을 끝내는 것, 아니면 대체 대상이 안 쓰이게 되는 것. 지금 진짜로 검증이 불가능한 항목이 있으면, 조용히 통과 가정하지 말고 조건부로 표시하고 이유를 밝혀. 그리고 이 게이트를, 그냥 느낌으로 '완료' 라고 선언했을 때랑 비교해봐.
Hint
강한 게이트는 세 가지를 갖춰. 모든 항목이 느낌이 아니라 확인 가능할 것. 검사가 대리 환경이 아니라 진짜 타겟에서 돌 것. 그리고 최소 하나가 머신 능력이 아니라 사람의 채택을 잴 것. 뭔가를 아직 진짜로 테스트 못 하겠으면, 이유를 붙인 조건부 표시가 가짜 통과보다도 조용한 누락보다도 나아.

Progress

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

댓글 0

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

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