트랙 A안내모듈 4개 · 모듈마다 180분

측정과 판단

2단계는 처리 시간, 첫 리뷰 대기, 다시 열린 비율을 정해 둔 정의로 계산하고, 기간을 나눠 비교했다. 그 숫자로 판단하려면 세 가지가 더 필요하다. 같은 이름의 지표를 누가 계산해도 같은 값이 나오게 하는 정의, 이번 주 숫자의 오르내림이 신호인지 늘 있는 흔들림인지 가르는 기준, 개선 뒤에 달라진 숫자 중 개선 때문인 몫을 떼어 내는 비교 방법이다. 2단계 Orbit 분석은 두 문제를 남겼다. 6월 1일에 함께 시작한 두 규칙의 효과를 나눌 수 없었고(실습 27), 관측 기간 끝에 시작한 업무는 짧게 보였다(실습 22). 트랙 A는 지표를 정하고, 변동을 읽고, 예측을 보정하고, 효과를 판정하는 방법을 네 모듈로 다룬다.

진행
모듈 4개, 모듈마다 180분(설명, 실습, 정리)
선행
1단계 실습 1~21, 2단계 실습 22~29
결과
지표 정의서와 측정 계획, 관리도와 신호 판정 규칙, 예측 보정 기록과 추정 규칙, 개선 실험 설계서와 효과 판정 보고서

1네 모듈

모듈답하는 질문결과물시간
A1 측정 체계 설계이 지표는 어떤 결정에 쓰이는가. 같은 이름의 지표를 두 사람이 계산하면 같은 값이 나오는가지표 정의서 5개, 측정 계획180분
A2 변동 읽기: 통계적 공정 관리이번 주 처리량이 지난주보다 적은 것은 신호인가, 늘 있는 흔들림인가관리도 2개(처리량, 첫 리뷰 대기), 팀의 신호 판정 규칙180분
A3 추정, 예측, 보정“90% 확률로 이날까지”라고 말한 예측들은 실제로 몇 %가 맞았는가예측 보정 기록, 팀의 추정 규칙180분
A4 개선 효과 판정리뷰 당번이 효과가 있었다고 말하려면 무엇과 비교해야 하는가. 두 규칙을 같은 날 시작했으면 무엇을 포기해야 하는가개선 실험 설계서, 효과 판정 보고서180분

모듈은 앞 모듈의 결과를 쓴다. A1에서 정한 처리 시간과 첫 리뷰 대기의 정의를 A2의 관리도가 쓰고, A2에서 안정된 기간으로 판정한 처리량을 A3의 예측이 쓰고, A2의 주별 값과 관리도를 A4의 효과 판정이 쓴다. 모듈마다 진행 시간은 설명 45~50분, 실습 110~115분, 정리 20분이다.

2먼저 끝낸 실습

트랙 A는 1·2단계의 작업 폴더(~/gh-pm-lab)와 결과물을 그대로 쓴다. 아래 실습의 결과가 있어야 한다.

실습트랙 A에서 쓰는 것모듈
4, 13Project의 Priority, Estimate 필드와 gh project field-createA1
10결정 기록 댓글 양식A3
14, 15EVM의 BAC와 EAC, flow-metrics.sh의 주별 처리량, forecast.sh의 몬테카를로 예측, 리틀의 법칙A2, A3
18, 20Project 스냅숏과 작업 시작 시각, 이벤트 로그의 시간대A1
22원본 로그와 정리한 로그(pm-lab/orbit-event-log.csv, pm-lab/orbit-event-log-clean.csv), 관측 기간 끝의 문제A1, A2, A4
25, 26단계별 대기와 리뷰 집중도, 기간별 로그(pm-lab/orbit-a.csv, pm-lab/orbit-b.csv)A2, A4
27, 28, 296월 1일 전후 비교, 같은 날 시작한 두 규칙, 개선안 A, 개선 확인 계획, 정기 분석 워크플로A2, A4

3데이터

데이터내용모듈
Orbit 이벤트 로그2단계의 합성 로그. 업무 260건(정리한 로그 257건), 2026-03-03 ~ 09-04A1, A2, A3, A4
samples/a-project-items.tsv우선순위를 P0~P3으로 쓰는 팀의 Project 항목 22건(예시). 척도 실습용A1
samples/a-forecast-history.tsvOrbit 팀의 마일스톤 예측 기록 26건(합성 데이터). 마일스톤마다 팀 추정과 처리량 몬테카를로A3
samples/a-experiment-weekly.csv리뷰 당번을 저장소 두 개에 차례로 도입한 시나리오의 주별 첫 리뷰 대기(합성 데이터, 26주 × 2)A4
학습자 저장소와 Launchpad ProjectProject 필드를 GraphQL로 읽는 명령, 예측을 결정 기록으로 남기는 명령A1, A3

합성 데이터는 정해진 규칙과 난수로 만들었고 실제 팀의 기록이 아니다. 2단계와 같이 규칙은 공개하지 않으며, 분석으로 찾는다.

4키트 파일과 실행 환경

트랙 A의 스크립트는 모두 GitHub에 접속하지 않고 파일만 읽는다. 키트를 새 판으로 받는 방법은 실습 키트 페이지에 있다.

파일하는 일모듈
duration.sh시작 사건, 끝 사건, 시간 종류를 정해 사례별 기간을 계산하고 분포를 요약한다A1, A2
templates/metric-spec.md지표 정의서 양식A1
xmr.sh주별 처리량, 처리 시간, 첫 리뷰 대기(또는 주어진 값 목록)의 XmR 관리도와 신호A2, A3, A4
little.sh기간 안에서 리틀의 법칙(L = λW)과 그 조건을 점검한다A2
forecast-check.sh예측 기록의 구간 적중률, 브라이어 점수, 참조 집단 보정 계수, 범위 증가A3
forecast-scope.sh표본 기간, 업무 분할, 범위 증가를 넣은 몬테카를로 예측. 예측 기록 한 줄 출력A3
effect.py이중차분, 중단 시계열, 비율의 이중차분과 신뢰구간, 검정력A4
km.py끝나지 않은 사례를 포함한 카플란·마이어 처리 시간 분포A4
templates/experiment-design.md개선 실험 설계서 양식A4

셸 스크립트는 2단계와 같이 bash와 jq 1.6 이상이 필요하다. A4의 Python 스크립트는 pandas, numpy, scipy, statsmodels가 필요하고, km.py --svg로 그림을 저장할 때만 matplotlib가 필요하다. 수업 전에 확인한다.

jq --version
python3 -c "import pandas, scipy, statsmodels; print('ok')"

두 번째 명령이 ModuleNotFoundError를 내면 python3 -m pip install pandas scipy statsmodels로 설치한다. 2단계에서 PM4Py를 설치했다면 pandas, numpy, scipy는 이미 있다.

5참고 자료

모듈 본문에서 인용한 자료다. 표준 원문은 유료이며, 이 교안은 표준의 용어와 구조만 옮겼다.

모듈자료
A1Basili, Caldiera, Rombach, “The Goal Question Metric Approach”, Encyclopedia of Software Engineering, Wiley(1994)
A1ISO/IEC/IEEE 15939:2017 Systems and software engineering, Measurement process
A1Stevens, “On the Theory of Scales of Measurement”, Science 103(2684)(1946). Deming, Out of the Crisis(1986)
A1DORA, 소프트웨어 전달 성과 지표 dora.dev/guides/dora-metrics, 지표의 변천 dora.dev/guides/dora-metrics/history
A1Kersten, Project to Product(2018). Forsgren, Storey, Maddila, Zimmermann, Houck, Butler, “The SPACE of Developer Productivity”, ACM Queue 19(1)(2021). Noda, Storey, Forsgren, Greiler, “DevEx: What Actually Drives Productivity”, ACM Queue 21(2)(2023)
A1Goodhart, “Problems of Monetary Management: The U.K. Experience”(1975년 발표, 1976년 수록). Strathern, “‘Improving ratings’: audit in the British University system”, European Review(1997). Campbell, “Assessing the impact of planned social change”, Evaluation and Program Planning 2(1)(1979, 1976년 발표)
A2Shewhart, Economic Control of Quality of Manufactured Product(1931). Western Electric, Statistical Quality Control Handbook(1956). Wheeler, Understanding Variation(1993)
A2Vacanti, Actionable Agile Metrics for Predictability(2015). Little, “A Proof for the Queuing Formula: L = λW”, Operations Research 9(3)(1961)
A3ISO/IEC 20926:2009(IFPUG 기능 점수). ISO/IEC 19761:2011(COSMIC). Malcolm, Roseboom, Clark, Fazar, “Application of a Technique for Research and Development Program Evaluation”, Operations Research 7(5)(1959)
A3Kahneman, Tversky, “Intuitive prediction: Biases and corrective procedures”, TIMS Studies in Management Science 12(1979). Flyvbjerg, “From Nobel Prize to Project Management: Getting Risks Right”, Project Management Journal 37(3)(2006). Tetlock, Gardner, Superforecasting(2015)
A3Brier, “Verification of forecasts expressed in terms of probability”, Monthly Weather Review 78(1)(1950). Klein, “Performing a Project Premortem”, Harvard Business Review(2007). Hulett, Practical Schedule Risk Analysis(2009)
A4Galton, “Regression towards mediocrity in hereditary stature”(1886). Card, Krueger, “Minimum Wages and Employment”, American Economic Review 84(4)(1994). Efron, “Bootstrap methods: another look at the jackknife”, Annals of Statistics 7(1)(1979)
A4Bernal, Cummins, Gasparrini, “Interrupted time series regression for the evaluation of public health interventions: a tutorial”, International Journal of Epidemiology 46(1)(2017). Kaplan, Meier, “Nonparametric estimation from incomplete observations”, Journal of the American Statistical Association 53(282)(1958). Kohavi, Tang, Xu, Trustworthy Online Controlled Experiments(2020)
숫자를 사람에게 쓰지 않는다

트랙 A의 지표는 흐름과 규칙을 판단하려고 잰다. 처리 시간이나 리뷰 대기를 사람별로 계산해 평가에 쓰면, 굿하트 법칙(Goodhart's law)대로 숫자가 재려던 일 자체를 바꾼다. 2단계와 같이 사람별 숫자는 일이 한쪽에 몰리는지 볼 때만 쓴다.

  • 네 모듈의 질문과 결과물을 확인했다.
  • 작업 폴더에 실습 22의 두 로그와 실습 26의 기간별 로그가 있다.
  • 키트를 새 판으로 받고 duration.sh, xmr.sh가 있는 것을 확인했다.
  • jq --version과 Python 패키지 확인 명령이 오류 없이 끝났다.

마치며...

트랙 A는 2단계에서 계산한 숫자를 판단에 쓰는 방법을 다룬다. 정의가 같아야 숫자를 비교할 수 있고, 변동을 읽어야 신호를 고를 수 있고, 예측을 기록해야 보정할 수 있고, 대조군이 있어야 효과를 말할 수 있다. 첫 모듈 A1에서는 Orbit의 목표 하나에서 질문과 지표를 끌어내고, “리드 타임”의 정의 네 가지가 같은 로그에서 서로 다른 숫자를 내는 것을 확인한 뒤 지표 정의서를 쓴다.