난 우리 팀이 Microsoft에서 가장 좋은 팀 중 하나라고 생각해
"Microsoft가 가장 좋은 직장이라고 단언할 순 없지만, 우리 함께 일하기 가장 좋은 팀을 만들어보자."
4년 전에 Microsoft에서 일하기로 결정했을 때, 지금의 dev manager가 내게 해 준 말이다. 팀 문화를 개선하기 위한 방편의 하나로 지난 한 달 반 동안 다음과 같은 실험을 하였다. 이 실험의 단위는 우리 dev manager의 팀이다. 우리 dev manager 밑에 5명의 dev lead가 있고, 각 dev lead가 7~9명 사이즈의 팀을 이루고 있으니, 대략 40명 정도의 엔지니어들로 구성된 팀이다.
1. 미팅 없는 화요일 (no meeting on Tue): 화요일엔 어떠한 경우에도 미팅을 하지 않는다. 외부 팀들과 하는 기존의 미팅들은 미팅이 가능한 시간대로 옮긴다.
2. 수요일 10 am - 3pm 사이에도 미팅을 잡을 수 없다. 위와 같은 조건이지만 3시 이후에는 미팅이 가능하다.
3. 1:1 미팅 대신에 office hour: 일반 엔지니어의 기준으로 보자면 dev lead와 매주 30분씩 1:1 미팅을 하고, dev manager와 4~6주에 한 번씩 1:1 미팅을 한다. 어떻게 이 시간을 이용할지는 본인의 자유이므로 이 시간을 효율적으로 사용하는 사람들도 있고, 그렇지 않은 경우도 있다. 정해진 미팅 시간 대신에 office hour로 전환해서 필요한 사람들만 찾아와서 이야기를 나눌 수 있도록 한다. 해당 dev lead와 manager와 대화할 일이 많다면 자주 올 수도 있고, 필요한 일이 없다면 굳이 미팅을 하지 않고 각자의 일에 집중할 수 있다.
4. 미팅에는 꼭 필요한 사람들만 초대한다.
5. 최신 AI 기술들을 사용하기 위해서는 파워풀한 GPU가 필요하므로 (알파고를 만들기 위해서는 많은 GPU가 쓰였다), GPU를 팀마다 구매해서 몇 대의 서버에 설치 후 해당 컴퓨터들을 공유한다.
6. 개발 속도로 개선을 위해 SSD를 모든 개발자들에게 추가로 제공한다. 대부분의 컴퓨터들은 HDD가 기본으로 설치되어 있고, 예전에는 몇 대의 컴퓨터에만 SSD를 설치해 두었었다. 점점 SSD의 요구가 많아지면서 모든 컴퓨터에 SSD를 설치하기로 하였다.
7. 최신 논문들을 읽고 공유하는 리딩 그룹을 만들어서 매주 1시간씩 돌아가며 발표한다. 나는 자연어 처리와 딥러닝에 대해서 주로 발표하는 리딩 그룹에 속해 있다.
이 변화에서 가장 눈에 띄는 점은 미팅 수를 줄였다는 것이다. 소프트웨어 개발자에게는 집중할 수 있는 몇 시간을 가지는 것이 매우 중요하다. 몰입(Flow)을 할 때 생산성이 급격히 상승하는데 몰입의 상태로 진입하기 위해서는 시간이 필요하기 때문이다. 그래서 많은 개발자들이 올빼미처럼 밤늦게 개발을 한다. 늦은 시간에는 아무에게도 방해를 받지 않고 몰입할 수 있기 때문이다. 미팅이 많아서 하루 종일 몰입이 방해받고, 그리고 그것 때문에 생산성이 낮다면 그리고 그것이 지속된다면 엔지니어는 본인 스스로 만족스럽지 못한 나날들을 보내게 될 것이다. 적어도 의미 있는 무언가를 만들고 싶어 하는 우리 팀 멤버들은 그러하다.
미팅 수를 줄인다는 것이 커뮤니케이션이 줄었다는 것을 의미하지 않는다. 실제로는 오히려 그 반대의 효과가 나타났다. 예를 들어, 우리 dev lead 의 팀 같은 경우는 매일 아침 (10시 반 혹은 11시)에 진행하던 스크럼을 4회 (월~목)에서 2회 (월, 목)으로 줄였다. 스크럼은 팀 멤버가 무슨 일을 하는지, 현재 프로젝트를 가로막는 장애물들이 있는지, 어떻게 장애물을 없앨 수 있는지 의견을 나누고, 서로의 일이 상충되지 않도록 조율하는 역할을 했었는데, 지금은 이러한 커뮤니케이션을 스크럼에서 하는 대신에 필요할 때마다 한다. 특히, 화요일과 수요일 같은 경우는 다른 팀 멤버의 스케줄이 비어있다는 것을 알고 있으므로, 서로 자주 만나서 아이디어를 나누고 의견을 조율하며, 도움을 요청한다. 스크럼은 같은 프로젝트에 속한 멤버들끼리의 커뮤니케이션을 활발해지도록 도와줬는데, 미팅이 없는 화요일 같은 경우는 dev manager 밑의 40명의 엔지니어 모두의 커뮤니케이션이 활발해지도록 도와주는 효과가 나타났다.
AI와 관련된 개선책들은 모든 팀 멤버들이 지속적으로 최신 기술들을 배울 수 있게 도와주고 있으며, 자신이 현재 진행하는 프로젝트들 외에 사이드 프로젝트들이 자연스럽게 만들어지도록 도와주는 효과가 있다. 예를 들면, 지난주에 GPU와 SSD를 내 회사 컴퓨터에 설치를 마쳤고, 이번 주에는 딥러닝 오픈 소스 라이브러리인 Theano를 설치하여, 딥러닝을 통해 우리 팀의 기술들을 더 개선할 수 없는지 실험해보고 있다. 새로운 기술들을 배울 때는 회사 프로젝트가 잘 진행될 때와는 또 다른 즐거움이 있다.
위의 정책에 대한 팀원들의 피드백은 대부분 긍정적이며, 우리 팀은 이 정책을 계속 유지할 계획이다.