2.3 플로우 속도와 플로우 분포
개요 및 동기
플로우 속도는 주어진 기간 동안 완료된 플로우 아이템(주제 2.2)의 수, 즉 처리량에 대한 플로우 프레임워크의 척도다. 플로우 분포는 같은 기간에 완료된 아이템 중 각 플로우 아이템 유형, 즉 기능, 결함, 위험, 부채의 비율이다. 두 메트릭은 함께 읽히도록 설계되었다: 속도만으로는 “우리가 얼마나 많이 출시했는가”에 답하고, 분포만으로는 “그것이 어떤 종류의 작업이었는가”에 답하지만, 어느 쪽도 다른 쪽 없이는 큰 의미가 없다. 팀은 자신의 분포가 기능에서 벗어나 결함 재작업 쪽으로 조용히 이동하는 동안 속도를 높일 수 있으며, 이는 속도 차트에서는 가속처럼 보이지만 실제로는 품질 저하의 증상이다.
이 짝짓기는 주제 1.2가 이 책의 모든 메트릭 패밀리에 요구하는 것과 동일한 규율이다: 그 속도가 무엇을 대가로 치렀는지 보여 주는 가드레일 없이는 결코 속도 수치를 보고하지 말라. 플로우 속도는 이 부에서 처리량 메트릭을 가장 직접적으로 일반화한 것으로, 이 책의 다른 어떤 단일 수치보다 정신적으로 배포 빈도(주제 2.10)에 더 가깝지만, 배포 빈도가 결코 그렇지 않았던 방식으로 아이템 유형을 인식한다. 배포 빈도는 코드가 프로덕션에 얼마나 자주 도달하는지 알려주고, 분포와 짝을 이루는 플로우 속도는 가치가 얼마나 자주 프로덕션에 도달하는지와 그것이 어떤 종류의 가치인지를 알려준다.
많은 동시적인 가치 흐름을 운영하는 대규모 팀에게 이 짝짓기는 단일한 처리량 수치가 완전히 숨기는 패턴을 드러낸다: 속도는 건강해 보이지만 그 분포가 거의 순수한 기능 작업 쪽으로 조용히 드리프트하여, 주제 2.2가 의도적인 보호가 필요하다고 경고한 부채와 위험 역량을 조용히 굶주리게 하는 가치 흐름이다. 제품 라인 전반의 처리량을 비교하는 엔터프라이즈 조직과 감독 기구에 전달 산출물을 보고하는 정부 기관 모두 원시 산출물을 진정하고 지속 가능한 진전으로 착각하는 것을 피하기 위해 이 짝짓기가 필요하다.
핵심 원칙
- 분포 없는 속도는 실제로 무엇이 출시되었는지 숨긴다. 상승하는 아이템 수는 그 수가 건강한지, 게임당했는지, 혹은 이용 가능한 가장 쉬운 작업 쪽으로 조용히 치우쳤는지에 대해 아무것도 말해 주지 않는다.
- 속도 없는 분포는 규모를 숨긴다. 건강해 보이는 백분율 분할도 그것이 얼마나 많은 총 작업을 나타내는지 함께 알지 못하면 큰 의미가 없다.
- 두 메트릭은 항상 함께 보고되어야 한다. 이것은 주제 1.2의 가드레일 짝짓기 원칙을 플로우 데이터에 특별히 직접 적용한 것이다.
- 속도는 다른 아이템 개수 메트릭과 동일한 대체 게임에 노출된다. 어려운 작업을 많은 작고 쉬운 아이템으로 쪼개는 것은 비례적으로 더 많은 가치를 전달하지 않으면서 개수를 부풀린다.
- 건강한 분포는 고정된 목표가 아니라 맥락 의존적이다. 주제 2.2가 이를 깊이 다루며, 속도와 분포는 항상 그 맥락이 시사하는 목표에 비추어 해석되어야 한다.
권장 사항
플로우 속도를 단일 기간 수치가 아니라 추세선으로 보고하라
단일 기간의 아이템 수는 시끄럽고 쉽게 잘못 읽힌다. 여러 연속된 기간에 걸쳐 플로우 속도를 그리고 어떤 하나의 데이터 포인트가 아니라 추세를 보라. 이는 자연적인 변동에 취약한 어떤 시계열 메트릭에 대해서도 주제 1.6이 권장하는 것과 동일한 규율이다.
플로우 속도를 그 분포 없이 결코 제시하지 마라
이것을 있으면 좋은 것이 아니라 어떤 대시보드나 보고서에 대해서도 엄격한 규칙으로 취급하라. 홀로 보여지는 속도 차트는 정확히 이 주제가 여는 오독을 초래한다: 실제로는 상승하는 재작업의 몫이거나 부채와 위험 역량을 밀어내는 쉬운 기능 작업인 상승하는 처리량 말이다. 둘을 항상 같은 화면에 함께 두라.
아이템 크기가 크게 다를 때는 크기나 복잡도로 속도에 가중치를 두라
원시 아이템 수는 한 줄짜리 설정 변경과 여러 주에 걸친 아키텍처 마이그레이션을 동등하게 취급하며, 이는 이 책이 이미 배포 빈도(주제 2.10)에 대해 이름 붙인 것과 동일한 대체 게임을 초래한다: 어려운 작업을 많은 작은 아이템으로 쪼개는 것은 비례적으로 더 많이 전달하지 않으면서 개수를 부풀린다. 아이템 크기가 크게 다른 곳에서는 대략적인 크기나 복잡도 추정치로 속도에 가중치를 두거나, 원시 개수와 함께 평균 아이템 크기를 추적하여, 상승하는 개수 옆의 줄어드는 평균 크기가 숨겨지지 않고 보이게 하라.
플로우 분포를 현재 스냅샷뿐 아니라 드리프트에 대해서도 경계하라
플로우 분포에서 가장 유용한 신호는 좀처럼 이번 기간의 정확한 백분율이 아니다. 그것은 여러 기간에 걸친 변화의 방향이다. 부채와 위험이 조용히 줄어드는 동안 기능이 상승하는 꾸준한 드리프트는, 주제 2.2가 기능 공장 패턴 아래서 보이지 않게 누적된다고 경고하는 종류의 품질이나 보안 문제가 되기 훨씬 전에 이해관계자와 함께 제기할 가치가 있다.
진정한 주의를 기울일 때만 가치 흐름 전반의 플로우 속도를 비교하라
다른 아이템 세분성, 다른 팀 규모, 혹은 다른 제품 단계를 가진 두 가치 흐름은 원시 속도만으로는 직접 비교할 수 없으며, 이는 주제 2.10이 팀 간 배포 빈도에 대해 이름 붙인 것과 동일한 공정성 문제다. 먼저 가치 흐름 자체의 추세를 위해 속도를 사용하고, 진정으로 비교 가능한 아이템 정의와 세분성을 확인한 후에만 가치 흐름 간 비교를 시도하라.
트레이드오프: 장단점
| 접근법 | 장점 | 단점 |
|---|---|---|
| 원시 아이템 수 속도만 | 계산하고 설명하기 단순함 | 대체 게임에 노출됨; 어떤 종류의 가치가 출시되었는지 숨김 |
| 분포와 짝을 이룬 속도 | 규모와 가치 혼합을 함께 보여 줌 | 의미 있으려면 규율 있는 플로우 아이템 분류(주제 2.2)가 필요함 |
| 크기 가중 속도 | 아이템 크기 쪼개기로부터의 대체 게임에 저항함 | 팀 전반에 걸쳐 일관되고 합의된 크기 산정 방법이 필요함 |
| 가치 흐름 간 속도 비교 | 포트폴리오 수준의 투자 결정에 유용함 | 진정으로 비교 가능한 아이템 정의를 확인하지 않으면 쉽게 불공정해짐 |
핵심 긴장은 단순성 대 게임에 대한 저항이다. 원시 아이템 수는 계산하고 설명하기 가장 쉬운 수치이지만, 어려운 작업을 많은 작은 조각으로 쪼개어 부풀리기도 가장 쉽다. 주 메트릭을 분포와 짝을 이룬 원시 속도로 단순하게 유지하고, 크기 가중을 아이템 크기가 충분히 크게 달라 단순한 개수가 적극적으로 오도하게 되는 것으로 알려진 가치 흐름을 위해 남겨 둠으로써 이 긴장을 해결하라.
팀과 논의할 질문
우리가 플로우 속도를 보고할 때, 플로우 분포가 항상 함께 표시되는가, 아니면 속도가 때로 홀로 서 있는가? 그 분포 없는 속도 수치는 이 주제 자체의 핵심 원칙에 의하면 불완전한 그림이다. 이 간극에 대해 실제 대시보드와 보고서를 확인하라.
우리의 평균 아이템 크기가 상승하는 속도와 함께 바뀌었으며, 만약 그랬다면 우리는 그것을 알 수 있을까? 상승하는 개수 옆의 줄어드는 평균 크기는 플로우 아이템에 적용된 대체 게임의 구체적인 특징이다. 패턴이 없다고 가정하는 대신 실제 데이터를 가져와 보라.
우리의 아이템 정의와 세분성이 실제로 일치하는지 확인하지 않고 다른 팀의 속도와 우리의 속도를 비교한 적이 있는가? 여기서의 불공정한 비교는 단지 비교 가능해 보이기 위해 팀이 자신의 수치를 게임하도록 압박할 수 있으며, 이는 이 책이 이미 배포 빈도에 대해 이름 붙인 것과 같은 위험을 반영한다.
지난 몇 기간 동안 우리의 플로우 분포가 한 방향으로 드리프트했으며, 누군가 그것을 의도적으로 결정했는가? 느린 드리프트는 기간별로는 놓치기 쉽다. 현재의 분할이 안정적이라고 가정하기 전에 여러 기간을 함께 그려 정직하게 추세를 찾아보라.
누군가 더 많은 실제 작업을 하지 않고도 우리의 플로우 속도를 부풀리고 싶다면, 가장 쉬운 방법은 무엇이며, 우리의 현재 보고는 그것을 잡아낼까? 어려운 아이템을 쉬운 것으로 쪼개는 구체적인 메커니즘을 살펴보고, 당신의 대시보드가 실제로 그 패턴을 드러낼지 논의하라.
우리의 속도와 분포 수치는 함께 비즈니스 이해관계자에게 도달하는가, 아니면 속도 헤드라인만 위로 올라가는가? 짝짓기 원칙은 데이터로부터 결정을 내리는 사람들이 실제로 양쪽 절반을 모두 볼 때만 오독으로부터 보호한다.
분야별 관점
스타트업. 이 규모에서는 전체 팀이 이미 처리량에 대한 대략적인 감각을 가지고 있기 때문에 플로우 속도를 비공식적으로 추적하기 쉽다. 유용한 규율은 비공식적으로라도 그것을 분포와 짝짓는 것이며, 이는 창업자가 상승하는 티켓 종결 수를 실제로는 초기 단계 버그 수정이 지배하고 있을 때 진정한 기능 진전으로 착각하지 않게 한다.
중소기업. 플로우 아이템 분류(주제 2.2)를 위해 이미 사용하고 있는 경량 도구에서 속도와 분포를 함께 추적하라. 이 규모에서는 전용 분석 플랫폼이 필요하지 않다. 그것들을 항상 나란히 보는 습관이 어떤 도구의 정교함보다 더 중요하다.
엔터프라이즈. 가치 흐름 간 속도 비교는 포트폴리오 수준의 우선순위 결정을 위해 이 규모에서 유혹적이며, 서로 다른 제품 라인이 정당하게 매우 다른 아이템 세분성을 가지기 때문에 공정성 위험이 가장 큰 곳이기도 하다. 팀 간 투자 결정을 정당화하기 위해 속도 비교를 사용하기 전에 비교 가능한 정의를 확인하는 데 투자하라.
정부. 분포와 짝을 이룬 플로우 속도는 공공 부문 기술 리더에게 원시 처리량만으로는 얻을 수 없는 감독 기구에 전달 산출물을 보고하기 위한 훨씬 더 강한 증거 기반을 제공하는데, 이는 단지 얼마나 많이 출시되었는지뿐 아니라 그 혼합이 새로운 기능, 결함 개선, 위험 관리에 걸친 의도적이고 방어 가능한 배분을 반영한다는 것을 보여 줄 수 있기 때문이다.
사례
엔터프라이즈. 한 소프트웨어 공급업체의 플랫폼 팀은 3분기 연속으로 꾸준히 상승하는 플로우 속도를 보고했으며, 이는 리더십이 가속화되는 전달로 축하한 추세였다. 반복되는 버그에 대한 고객 에스컬레이션 이후에야 요청된 플로우 분포에 대한 더 자세한 검토는 그 상승하는 속도 중 “기능”의 몫이 같은 기간 동안 실제로 70%에서 45%로 떨어졌으며, 결함 수정 아이템이 그 간극을 채우고 있었다는 것을 드러냈다. 팀은 더 많은 아이템을 출시하고 있었지만, 그중 새로운 가치의 비율은 줄어들고 있었다. 나머지는 속도 차트 하나만으로는 완전히 가려졌던 재작업이었다.
정부. 한 국가 통계청의 데이터 플랫폼 팀은 감독 위원회에 대한 연례 보고서를 위해 플로우 속도를 주요 전달 메트릭으로 추적했다. 위원회 위원이 그 속도 중 얼마나 많은 부분이 새로운 공공 대면 역량을 나타내는지 물었을 때, 팀은 그 수치를 플로우 아이템 유형별로 분해한 적이 결코 없었으며 직접 답할 수 없다는 것을 발견했다. 그 기관은 이후 짝을 이룬 속도-분포 보고를 채택했고, 이는 새로운 데이터 보호 규정에 의해 촉발된 위험 및 준수 작업이 정당하게 증가하는 역량의 몫을 소비하고 있었다는 것을 드러냈으며, 이는 설명되지 않은 속도 하락으로 암묵적으로 남겨지는 대신 명시적으로 보여졌을 때 위원회가 흔쾌히 받아들인 방어 가능한 배분이었다.
비즈니스 사례: 동기, ROI, TCO
속도와 분포를 짝짓는 것의 수익은 어느 한 수치만으로는 제공하지 못하는 전달 산출물에 대한 더 정직하고 더 방어 가능한 설명이다. 위의 소프트웨어 공급업체 사례, 즉 상승하는 속도가 실제로는 하락하는 기능 산출물을 반영했다는 것을 발견한 것은 정확히 이 짝짓기가 예방하는 종류의 오독이며, 그 패턴을 일찍 잡아내는 것은 고객 대면 품질 문제가 그 질문을 강제할 때까지 그것을 발견하지 못하는 것보다 훨씬 더 저렴하다.
플로우 아이템 분류(주제 2.2)가 이미 자리 잡고 나면 총 소유 비용은 미미하다: 분포는 이미 분류된 아이템의 간단한 집계이며, 두 메트릭을 함께 보여 주는 규율은 기술적 투자가 아니라 보고 관행이다. 이 주제의 권장 사항에 대한 비용 대부분은 조직이 애초에 정직한 플로우 아이템 분류를 채택했을 때 이미 치러졌다.
안티패턴과 함정
- 분포 없이 플로우 속도를 보고하기: 이 주제의 핵심에 있는 게임 벡터다. 전달 압박 아래의 팀은 작고 쉬운 기능 작업을 선호하고 더 어려운 부채, 위험, 혹은 결함 아이템을 피하거나, 큰 아이템을 많은 작은 것으로 쪼갬으로써 아이템 수를 높일 수 있으며, 홀로 보여지는 속도 차트는 실제로 전달되고 있는 것의 변화가 아니라 가속으로 읽힐 것이다. 가드레일은 이 책 전체에서 주제 1.2가 요구하는 것과 동일한 짝짓기 규율이다: 분포 없이는 결코 속도를 보여 주지 말고, 특히 쪼개기를 잡아내기 위해 개수와 함께 평균 아이템 크기를 주기적으로 확인하라.
- 다른 아이템 세분성을 가진 가치 흐름 간에 속도를 비교하기: 불공정하고 오도하는 비교를 만들어 낸다.
- 단일 기간의 분포를 안정적인 것으로 취급하기: 추세 관점만이 드러내는 느리고 의미 있는 드리프트를 놓친다.
- 속도 헤드라인만 비즈니스 이해관계자에게 도달하게 두기: 짝짓기 원칙의 전체 보호 가치를 포기한다.
- 상승하는 속도를 축하하면서 평균 아이템 크기를 무시하기: 대체 게임의 구체적인 특징을 놓친다.
- 분포에 대한 참조 없이 속도 목표를 설정하기: 정확히 이 주제가 이름으로 경고하는 게임을 초래한다.
성숙도 모델
- 1단계, 시작: 플로우 속도는, 추적된다면, 분포 데이터 없이 홀로 보고되며, 아무도 대체 게임을 확인하지 않았다.
- 2단계, 개발: 일부 팀이 분포를 추적하지만, 그것은 보고에서 속도와 일관되게 짝을 이루지 않거나 추세로 검토되지 않는다.
- 3단계, 표준화: 속도와 분포가 항상 함께 보고되고, 추세로 조망되며, 대체 게임을 잡아내기 위해 평균 아이템 크기가 모니터링된다.
- 4단계, 관리: 분포 드리프트가 품질이나 보안 문제가 되기 전에 선제적으로 조사되며, 가치 흐름 간 속도 비교는 진정으로 비교 가능한 아이템 정의를 확인한 후에만 이루어진다.
- 5단계, 조율: 속도와 분포가 포트폴리오 수준의 투자 결정을 직접 알려주며, 조직은 분포 드리프트가 눈에 보이는 실패를 일으키기 전에 잡히고 수정된 구체적인 사례를 제시할 수 있다.
논의를 위한 아이디어
- 우리의 플로우 속도 보고는 항상 분포를 포함하는가, 아니면 하나를 다른 것 없이 보여 준 적이 있는가?
- 최근 우리의 평균 플로우 아이템 크기가 속도의 변화와 함께 바뀌었는가?
- 지난 몇 분기 동안 우리의 플로우 분포가 꾸준히 드리프트했다면 우리는 그것을 알 수 있을까?
- 누군가 더 많은 실제 가치를 전달하지 않고도 우리의 속도를 부풀리려면 무엇이 필요할 것이며, 우리는 그것을 알아챌 것인가?
핵심 요약
- 플로우 속도는 처리량을 측정하고, 플로우 분포는 그 처리량이 어떤 종류의 작업을 나타내는지 측정한다. 항상 그것들을 함께 보고하라.
- 이 짝짓기는 주제 1.2의 가드레일 원칙을 직접 적용한 것이다: 그것이 무엇을 대가로 치렀는지에 대한 맥락 없이는 결코 속도 수치를 보여 주지 말라.
- 이 주제의 핵심 게임 벡터는 속도만 보고하는 것이며, 이는 쉬운 기능 작업 쪽으로의 이동이나 비례적인 가치를 전달하지 않으면서 개수를 부풀리는 아이템 쪼개기를 숨길 수 있다.
- 분포 드리프트는 어떤 단일 기간의 스냅샷이 아니라 여러 기간에 걸친 추세로서 가장 잘 보인다.
- 가치 흐름 간 속도 비교는 공정하려면 진정으로 비교 가능한 아이템 정의가 필요하다. 그것 없이는 정보를 주는 것보다 더 많이 오도한다.
참고 문헌 및 추가 자료
- Kersten, Mik. Project to Product: How to Survive and Thrive in the Age of Digital Disruption with the Flow Framework. IT Revolution Press, 2018.
- Forsgren, Nicole, Jez Humble, and Gene Kim. Accelerate: The Science of Lean Software and DevOps. IT Revolution Press, 2018.
- Vacanti, Daniel S. Actionable Agile Metrics for Predictability. Actionable Agile Press, 2015.