본문 바로가기

개발문화

피플웨어 - 코딩 생산성 연구를 위한 Competition 결과.

저자가 프로젝트 관리에 대한 컨설팅이 주업이라 그런지, 매년 생산성 설문 조사를 해 왔다고 합니다. 그러던 중, 실험을 고안해서 진행하게 되었는데요, 다양한 회사에서 2명씩 투입하여 개발부터 테스트까지 진행하는 게임입니다. 시간과, 완료 후 결함을 측정합니다.

 

구체적인 경쟁 방식은 이러합니다.

 

같은 회사 개발자 2명이지만, 두 사람은 서로 협력하지 않고 경쟁관계입니다.(왜 이렇게 했는지는 나중에 나옵니다.)
모두 정확히 같은 일을 합니다. 저장한 명세에 맞게 중간 정도 사이즈의 프로그램을 설계, 구현, 테스트합니다.
코딩중에 참가자들은 단계별 소요시간을 기록합니다.
참가자들이 테스트까지 완료하면, 운영진에서 표준 인수 테스트를 진행합니다.
참가자들은 자기가 선호하는 언어와 도구를 사용합니다.
모든 결과는 비밀을 유지합니다.

 

 

3년간 연 1회를 진행했고, 누적 92개 회사에서 600명의 참가자를 보냈습니다.

 

결과는 이러했습니다.

 

잘하는 절반은 못하는 절반보다 2배 빨랐다.
못하는 절반은 잘하는 절반보다 결함갯수가 2배였다.
언어는 어셈블리를 사용하지 않는 한, 생산성과 관련이 없었다.
연차는 2년 이상이면 큰 상관관계가 없었다. 단, 언어를 접한지 6개월 이내인 경우 성적이 저조했다.

 

실력이 좋은 개발자는 속도도 빠르지만, 버그도 오히려 적었다는 것입니다. 경험적으로 작은 실수를 자주 하는 사람들이 좋지 않은 시그널을 보내는 경우가 많았습니다.

연차에 큰 관계가 없었다는 것은 다양한 기술스택을 가진 개발자들을 동등한 조건에서 경쟁시키기 위해 시험 문제의 도메인을 제약한 효과일 거라는 생각이 들긴 합니다.

하지만, 이 의미는 신입이더라도, 이직 없이 한 회사에서 2년을 근무하면 10년차만큼 코딩 생산성에 기여할 수 있다는 얘기가 됩니다.

언어를 접한지 6개월 이내인 경우 성적이 저조한 것은 프로그래밍 언어가 실제 언어와 유사한 점이 있어서, 글로만 배우는 게 아니라 사용해가면서 표현력이 풍부해지는 과정이 필요하기 때문이라고 생각됩니다. 언어에 익숙해도 막상 새로운 회사에 들어가면 기존 코딩 자산을 속속들이 알게 되는데 시간이 오래 걸리게 마련입니다. 기술스택이 다른 경우에 아예 채용을 고려하지 않는 회사가 있는 것도 충분히 이해가 됩니다.

 

그런데 정말 충격적인 이야기는 이 다음에 언급됩니다.

 

같은 회사에서 투입된 두 명의 개발자간에는 생산성 차이가 20%에 불과했다.

 

이 결과가 내포하는 바는 무엇일까요? 

어떤 회사는 잘하는 개발자만 모이고, 어떤 회사는 못하는 개발자만 모인다는 뜻이 되겠습니다. 개발 생산성을 연구하는 전문가의 말을 인용하면, 프로그래머 개인 생산성이 10:1까지도 차이가 나듯, 프로그래밍 조직 생산성도 10:1까지 차이가 난다고 합니다.

 

회사의 개발자 인재 수준에 대해 개개인을 탓할 것이 아니라, 경영상의 문제로 인지해야 합니다.

 

 비슷한 인재들이 무리지어 모이는 현상은, 그저 채용상에 좋은 사람을 만나고 못 만나는 문제라고 하기는 어렵습니다. 우수한 개발자가 필요한 회사는 그 회사의 사무실 환경과 기업 문화를 점검하여, 우수한 인재를 끌어당기는 인력이 있는지, 우수한 인재도 효과적으로 일할 수 없게 방해하는 면이 있지 않은지 돌이켜볼 필요가 있습니다.

 

 이 책의 저자는 사무실의 환경이 소음에서 자유로운지, 몰입의 중요성을 인지하고 몰입중인 사람을 방해하지 않으려는 배려가 있는지부터 우수한 인재가 선호하는 회사 얘기를 진행해나갑니다.