개발자 성과의 세가지 차원 (feat. McKinsey)

tech
developer-productivity
개발자성과
mckinsey-report
개발자

개발자 성과는 측정할 수 있다 (feat. McKinsey)

이 글의 내용은 McKinsey 의 2023.08 보고서: Yes, you can measure software developer productivity 에 기반 하였습니다.

소프트웨어 개발의 성과를 측정하는 일은 한국을 비롯한 전 세계적으로 어려움을 겪고 있는 과제 중 하나입니다.

디지털 트랜스 포메이션 시대에서 기업의 성공은 뛰어난 소프트웨어 개발 능력에 크게 의존합니다. 개발자들의 능력이 높을수록 기업은 더 빠르게 혁신을 이루고, 경쟁 우위를 확보할 수 있습니다.

그러나 개발자 성과를 측정하는 전통적인 방법들은 종종 실제 성과와는 동떨어진 결과를 초래하기도 합니다. 이는 개발 작업의 복잡성과 다양성을 제대로 반영하지 못하기 때문입니다.

그러나 최근의 트렌드에서는 이러한 고정관념을 깨고, 개발자의 성과를 효과적으로 측정할 수 있는 방법론이 존재한다고 주장합니다.

이번 아티클 에서는 더불어 McKinsey&Company 에서 발표한 보고서의 내용을 바탕으로 회사들이 어떻게 개발자의 성과를 측정하고 평가하여 이를 통해 기업의 가치를 극대화할 수 있는지에 대해 탐구해 보겠습니다​​.

McKinsey의 접근법

McKinsey는 개발자 생산성 측정을 위해 여러 프레임워크를 활용합니다. 이 프레임워크는 SPACE Framework 에 따라 총 세 가지 차원에서 개발자 성과를 측정합니다:

  • 시스템
  • 개발자 개인

이 다차원적 접근법은 실제 개발 프로세스를 구성하는 복잡한 측면들을 보다 정확하게 파악하고 평가할 수 있게 해줍니다.

시스템 차원에서의 측정

시스템 차원에서는 개발자가 속해 있는 전체 개발 시스템의 효율성을 평가합니다. 예를 들어 배포 빈도, 변경 리드 타임, 복원 시간, 변경 실패율 등의 DORA Metrics 를 활용하여 시스템 전반의 성과를 측정합니다. 이를 통해 개발 프로세스의 병목 현상을 식별하고, 시스템의 전반적인 개선 방향을 제시할 수 있으며 이를 개발자의 성과를 측정하는 기준에 반영하여 현실과 동떨어진 지표가 되지 않도록 잡아줄 수 있습니다.

팀 차원에서의 측정

팀 차원에서는 개발 팀의 협업과 의사소통 능력을 중심으로 성과를 측정합니다. 이는 프로젝트 진행 상황, 공동 작업의 질, 팀 내 만족도 등을 평가하는 것을 포함합니다. 팀 수준의 측정은 개발 프로세스에서 협업의 중요성을 강조하며, 팀원 간의 의사소통과 협업을 강화하기 위한 방안을 모색함으로써 개발자가 문화에 기여하는 정도를 측정할 수 있습니다.

개인 차원에서의 측정

개인 차원에서는 각 개발자의 기여도와 성장 가능성을 평가합니다. 개인의 코드 기여도, 학습 및 개발 활동, 문제 해결 능력 등을 고려하여 개별 개발자의 성과를 측정합니다. 이를 통해 개발자 개인의 성장 기회를 제공하고, 팀 내 역할 분배를 최적화할 수 있습니다.

McKinsey 는 DORA Metrics 와 SPACE Framework 이외에도 Opportunity-focused Metrics 도 활용합니다. 이는 직접적인 업무 외에 팀과 프로젝트에 도움이 되는 활동들에 대한 측정입니다.

활용하기

McKinsey의 접근법은 한국의 회사들에게도 매우 유용하게 쓰일만한 지침을 제공합니다. 다음은 이를 활용하기 위해 미리 준비되어야 할 항목들입니다:

  1. 측정 도구와 시스템 구축: 개발 프로세스의 각 단계에서 필요한 데이터를 수집하고 분석할 수 있는 체계적인 도구와 시스템을 구축해야 합니다. 이는 시스템, 팀, 개인 수준에서의 성과 측정을 가능하게 합니다.
  2. 피드백 및 개선: 측정 결과를 바탕으로 개발 팀과 개별 개발자에게 정기적인 피드백을 제공할 수 있도록 합니다. 이를 통해 개선점을 명확히 식별하고, 팀과 개인의 성장을 촉진합니다.
  3. 조직 문화와 환경 개선: 개발자들이 최고의 성과를 낼 수 있는 환경을 조성합니다. 이는 협업을 촉진하고, 지속적인 학습 기회를 제공하는 조직 문화를 구축하는 것을 포함합니다.

이는 다양한 규모와 유형의 개발 회사들에게 적용될 수 있으며 예시로 스타트업, 중견기업, 대기업을 가정하여 이를 어떻게 활용할 수 있는지를 아래에서 살펴보겠습니다​​.

스타트업: 민첩성과 혁신을 중시

스타트업에서 개발자의 성과를 측정할 때는 특히 개인의 지표에 집중하여 아래와 같은 방법들을 제시할 수 있습니다:

  1. 코드 리뷰 참여율 측정: 스타트업에서는 개발자 각자의 기술 성장과 프로젝트의 코드 품질 유지가 중요합니다. 개발자의 코드 리뷰 참여율을 측정함으로써, 협업 및 코드 품질 관리에 대한 개인의 기여도를 평가할 수 있습니다. 이는 개발자가 동료의 코드에 대한 피드백을 제공하고, 적극적으로 학습하는 자세를 격려합니다.
  2. 개인 프로젝트 완성도: 스타트업 환경에서는 한정된 예산으로 대부분 개발자에게 독립적인 프로젝트나 기능 개발이 할당됩니다. 각 개발자가 맡은 프로젝트의 완성도와 시간 내 배포 여부를 측정함으로써, 개인의 프로젝트 관리 능력과 기술 실행력을 평가할 수 있습니다.
  3. 기술 스택 확장성: 스타트업에서는 빠른 기술 변화에 대응해야 합니다. 개발자가 새로운 기술 스택을 학습하고 프로젝트에 적용하는 능력을 평가함으로써, 개인의 기술적 유연성과 혁신 기여도를 측정할 수 있습니다. 이는 교육 및 자기주도적 학습을 통해 이루어질 수 있습니다.

스타트업은 제한된 자원과 인력으로 혁신적인 아이디어를 실현해야 하는 환경입니다. 이런 회사에서는 개발자 개개인의 역할이 크기 때문에, 개인 수준에서의 개발자의 코드 기여도, 학습 및 개발 활동, 문제 해결 능력 등을 면밀히 평가할 수 있습니다. 이러한 측정을 통해 스타트업은 개발자들이 필요한 지원과 리소스를 받으며, 빠르게 성장할 수 있는 환경을 조성할 수 있습니다.

예를 들어 팀에 주간 코드 리뷰 세션을 도입하여 개발자들의 코드 품질과 협업 능력을 향상시킬 수 있습니다. 또한, 정기적인 학습 세션을 마련하여 개발자들이 새로운 기술을 배우고, 프로젝트에 적용할 수 있도록 도와야합니다.

중견기업: 안정성과 성장의 균형

중견기업에서 개발자의 성과를 측정하는 방법으로 안정적인 서빙과 개발자의 성장에 집중한 아래와 같은 방법들을 제시할 수 있습니다:

  1. 개발 주기 내 업무 완료율: 개발자가 설정된 기간 내에 할당된 업무를 얼마나 완수했는지를 측정함으로써, 개인의 시간 관리 능력과 업무 처리 능력을 평가할 수 있습니다.
  2. 버그 수정 및 유지보수 기여도: 중견기업에서는 특히 제품의 안정성과 지속적인 개선이 중요합니다. 개발자가 버그 수정, 유지보수 활동에 얼마나 기여했는지 측정함으로써, 제품의 품질 유지 및 개선에 대한 개인의 기여도를 평가할 수 있습니다.
  3. 고객 피드백 기반 개선 활동: 중견기업에서는 고객의 피드백을 바탕으로 제품을 개선하는 것도 중요합니다. 개발자가 고객 피드백을 분석하고, 이를 제품 개선에 어떻게 반영했는지를 평가함으로써, 고객 중심적 사고와 제품 개선 능력을 측정할 수 있습니다.

중견기업은 안정적인 성장을 추구하며, 팀과 시스템 수준에서의 생산성 측정에 중점을 둡니다. 이들 기업은 이미 일정 수준의 시장 점유율과 고객 기반을 확보한 상태에서 개발 프로세스의 병목 현상을 식별하고, 협업과 의사소통의 효율성을 높일 수 있습니다.

중견기업은 특히 개발 팀의 배포 빈도와 변경 리드 타임을 분석하여 제품 출시 속도를 개선할 수 있습니다. 이를 위해 CI/CD 파이프라인을 최적화하고, 자동화 테스트를 강화합니다.

대기업: 복잡한 시스템의 효율적 관리

대기업에서 개발자의 성과를 측정할 때는 구축된 조직의 시스템을 최대한 활용하는 방향으로 아래와 같은 방법들을 제시할 수 있습니다:

  1. 크로스 펑셔널 팀과의 협업 기여도: 대기업에서는 다양한 부서와의 협업이 필수적입니다. 개발자가 크로스 펑셔널 팀과 얼마나 효과적으로 협업했는지를 평가함으로써, 조직 내 커뮤니케이션 능력과 팀워크 기여도를 측정할 수 있습니다.
  2. 기술 리더십 및 멘토링 활동: 대기업에서는 개발자 개인의 리더십이 중요합니다. 개발자가 팀 내외의 기술 지식 공유, 멘토링 활동에 얼마나 참여했는지를 측정함으로써, 개인의 기술 리더십과 지식 공유 기여도를 평가할 수 있습니다.
  3. 혁신 프로젝트 및 R&D 기여도: 대기업에서는 장기적인 혁신이 중요한 전략입니다. 개발자가 혁신 프로젝트나 연구개발(R&D) 활동에 얼마나 기여했는지를 평가함으로써, 기술 혁신 및 미래 지향적 프로젝트에 대한 개인의 기여도를 측정할 수 있습니다.

대기업은 복잡한 조직 구조와 다양한 프로젝트를 관리해야 하는 도전에 직면해 있습니다. 이러한 기업에서는 조직 시스템 수준의 측정이 핵심적입니다. McKinsey의 프레임워크를 통해 대기업은 전사적인 개발 프로세스의 효율성을 높이고, 기술 스택을 최적화할 수 있습니다.

예를 들자면 개발 프로세스 전반에 걸친 DORA 지표를 분석하여 시스템의 성능을 개선할 수 있습니다. 또한, 개발자들의 만족도와 웰빙을 정기적으로 평가하여 조직 문화를 개선하고, 개발 팀의 만족도를 높일 수 있습니다.

정리

McKinsey 의 프레임워크에서는 지금까지 업계에서 논의되었던 DORA Metrics, SPACE Framework 등을 적극적으로 차용하여 활용하되 이것을 시스템과 팀, 개인의 차원에서 측정하는 방법을 제시했습니다.

이는 SPACE Framework 의 접근법을 적극적으로 사용하고 성과를 측정하고 평가하는 방법이 변화하는 트렌드에도 맞아 떨어지는 모습이라고 분석합니다.

개발자의 성과는 독립된 개인의 역량만으로 만들어지지 않는다는 것을 인정하고, 개인이 개발업무 중 생산해내는 정량적인 소스에서 측정할 수 있는 지표 뿐만 아니라 개발자의 멘탈이나 개발팀 내에서의 개발자의 커뮤니티 활동 등 정성적인 소스에서도 지표를 측정하고 추출하여 활용 하여야만 온전한 성과를 평가할 수 있을 것입니다.

https://proofer.tech

개발자 성과의 세가지 차원 (feat. McKinsey) was originally published in 프루퍼 블로그 on Medium, where people are continuing the conversation by highlighting and responding to this story.