Home 07. 엔지니어링 생산성 측정하기
Post
Cancel

07. 엔지니어링 생산성 측정하기

구글은 데이터를 토대로 결정하는 데이터 주도 회사이다. 대다수 결정을 객관적으로 내릴 수 있고, 그에 따라 대체로 좋은 결과로 이루어진다. 사람과 관련해서는 데이터를 수집하고 분석하기가 만만치 않다.

구글은 소프트웨어 엔지니어링 측면에서 엔지니어링 생산성 자체에 집중하는 전문가 팀을 별도로 꾸려두면 회사 성장 과정에서 아주 중요하고 값진 통찰을 얻을 수 있음을 알아냈다.

7.1 엔지니어링 생산성을 측정하는 이유

사업을 키우면 자연스럽게 엔지니어링 조직의 규모도 늘려간다. 그런데 조직이 두 배 커지면 소통 비용은 제곱으로 늘어난다. 사업 확장 문제를 다르게 풀 수도 있다. 개개인의 생산성을 높여, 조직 내 엔지니어들 각자의 생산성이 높아진다면 소통 비용 증가를 억제하면서 사업을 키울 수 있다.

구글은 엔지니어링 생산성을 이해하기 위한 전담 연구팀을 꾸렸다. 여기에는 소프트웨어 엔지니어링 연구자와, 일반 엔지니어, 다양한 분야의 사회과학자들로 팀을 꾸렸다. 사회 과학자들이 합류하여 개인의 동기, 성과 보상 구조 등 인간적인 측면까지도 이해할 수 있게 되었다.

7.2 선별: 측정할 가치가 있는가?

엔지니어들의 생산성을 측정할 방법을 정하기에 앞서 해당 지표가 측정할 가치가 있는지을 알아봐야 한다. 측정 자체에도 비용이 많이 들기 때문에 현명하게 측정하고 평가해야 한다.

구글은 각 팀이 생산성 측정을 해도 될지를 결정하는 데 도움되는 질문 목록을 마련했다. 먼저 구체적인 질문을 던져서 그들이 측정하고 싶은 것을 설명하도록 요청한다. 이때 사람들이 이 질문에 더 구체적으로 답할수록 측정 과정에서 얻는 것도 많아짐을 알게 되었다.

187~190p

7.3 GSM 프레임워크: 목표와 신호를 뒷받침하는 의미 있는 지표 선정하기

소프트웨어 프로세스를 측정하기로 했다면 이용할 지표를 선정해야 한다. 구글은 지표를 만들 때 GSM(목표, 신호, 지표)이라는 프레임워크를 쓴다.

  • 목표 : 측정자가 원하는 최종 결과
  • 신호 : 원하는 최종 결과를 이루었는지 판단하는 방법
  • 지표 : 우리가 실제로 측정하는 대상

GSM 프레임워크는 지표를 만들 때 유용한 지침이 되어준다.

  1. 목표를 세우고, 신호를 정하고, 지표를 만드는 순서 덕분에 가로등 효과를 없애준다.
  2. 실제 결과를 측정하기 앞서 원칙에 입각하여 적절한 지표들을 선정하게 해줌으로써 지표 크리프와 지표 편향을 예방해준다.
  3. GSM은 측정이 되는 영역과 그렇지 않은 영역을 알려준다.

중요한 것은 추적 가능성을 잃지 않는 것이다. 각각의 지표로부터 관련한 신호를 찾아낼 수 있고, 나아가 그 신호가 대변하는 목표에까지 거슬러 추적할 수 있어야 한다. 그래야만 어떤 지표가 무엇을 측정하고 왜 측정하는지를 알 수 있다.

7.4 목표(Goal)

목표는 원하는 속성을 설명하되 어떠한 지표도 명시해서는 안 된다. 따라서 목표 자체는 측정이 불가능하다. GSM의 효과를 보려면 가장 먼저 측정할 목표 목록을 올바로 작성해야 한다.

구글에서는 생산성을 다섯 개의 요소로 나눴다. 이 요소 사이에는 서로 트레이드오프가 일어난다. 생산성을 높이고자 하는 팀들에게 모든 요소 각각에 대한 목표를 정하라고 안내한다.

  • 코드품질
  • 엔지니어들의 몰입도
  • 지적 복잡성
  • 박자와 속도
  • 만족도

7.5 신호(Signal)

신호는 목표 달성 여부를 알 수 있는 방법이다. 모든 목표에는 신호가 최소 하나는 필요하다.

7.6 지표(Metric)

지표는 신호를 측정하는 방법의 최종 형태이다.

7.7 데이터로 지표 검증하기

196~200p

7.8 조치를 취하고 결과 추적하기

구글의 생산성 연구팀은 주어진 주제로 연구를 마친 뒤에는 언제나 개선을 멈추지 않고 지속하는 방법을 담은 추천 할 일 목록을 제공했다.

7.9 마치며

구글은 엔지니어링 생산성 전문가로 구성된 팀을 두는 것이 소프트웨어 엔지니어링의 다양한 측면에서 아주 유익하다는 사실을 깨달았다. 하나의 팀이 복잡한 문제들의 해법에 대해 여러 방면에서 집중적으로 연구하는 것이다.

7.10 핵심 정리

  • 생산성 측정에 앞서 결과가 긍정적이든 부정적이든 실행 가능한 조치로 이어지는지 확인해야 한다.
  • GSM 프레임워크를 활용하여 의미 있는 지표를 선택해야 한다.
  • 지표는 생산성의 모든 측면을 다루도록 선택해야 한다.
  • 정성적 지표도 지표이다. 엔지니어의 믿음을 장기간에 걸쳐 추적하는 설문 메커니즘을 고려해보자
  • 개발자 워크플로와 보상 제도에 영향을 주는 제안을 찾아내는 걸 목표로 삼아야 한다.
This post is licensed under CC BY 4.0 by the author.

06. 성장하는 조직 이끌기

08. 스타일 가이드와 규칙