<구글 엔지니어는 이렇게 일한다>를 읽던 도중 쓴 짧은 단상이다
일을 하면 할수록 개발시 협업자들간 원활한 커뮤니케이션의 중요성이 점점 크게 느껴진다. 원활한 커뮤니케이션을 위한 전제 조건은 심리적 안정감인데. 질문을 하거나 문제나 아이디어 등을 제안해도 팀 내에서 공격당하거나 비난받지않을거라는 구성원간의 믿음이다. 팀 구성원간의 심리적안전감이 높아야 원활한 커뮤니케이션이 된다. 똑똑한 사람들이 많아도 각각의 구성원간 심리적장벽이 높으면 팀차원 좋은 퍼포먼스가 나오기 힘들다. 개개인 차원에서도 마찬가지다. 커뮤니케이션이 어려운 조직에서는 자유로운 토론과 질문이 불가능하다. 누구하나 의견이나 아이디어를 제시하려고 하지않을것이다. 코드리뷰 과정에서의 비난을 두려워하게 될 것이다. 그래서 이슈가 생기거나 꼭 필요한 경우가 아니라면 코딩자체를 최소로하거나 신규기능을 구현하는것을 꺼릴것이다.
구성원간의 심리적안정감을 유지하는건 의사 결정권자의 역할과 팀문화 측면에서 개선도 가능하지만. 애초에 어떤 팀원이 상대방에게 심리적안정감을 만들어내지 못하는 성격이라면, 아무리 안정적인 팀문화라도 그 문화에 균열을 발생시킬것이다. 단 한명이 팀 전체를 해칠수있다. 타인에게 심리적안정감을 만들어주지못하는 사람은(즉 지나치게 공격적, 방어적, 오만함, 고집, 강한 자기주장, 융통성결여, 강한에고, 실수나 잘못을 인정하지 않음, 아는척, 잘하는척, 외부의원인 탓 등) 애초에 채용시 걸렀어야 한다. 그리고 그런사람 한명 때문에 다른 사람도 회사생활을 하며 조직내에서 본인이 구축한 페르소나(해당 조직 내에서만 발현되는 사회적 가면, 성격)도 안좋은 방향으로 점차 변형될 수 있다. 나와 대화하는 상대가 공격적이거나 방어적라면, 나도 공격적이거나 방어적으로 대화할수밖에 없기 때문이다. 실리콘밸리 채용 문화에서 왜그렇게 커뮤니케이션 능력을 비중있게 보는지 이해가 되는 부분이다. 개발을 아무리 잘해도 이 커뮤니케이션 스킬이 떨어지는 사람은 절대 채용이 되지 않기 때문이다. 커뮤니케이션 스킬은 애초에 가장 초기에 수행하는 테크니컬 면접에서 스크리닝한다. 동시대 테크업계에 실력만 좋은 괴짜 프로그래머가 설자리는 점점 줄어들고 있다.
나는 심지어 개개인의 하드스킬 퍼포먼스는 생각보다 크게 중요하지 않을수도 있을거라는 생각이다. 문제가 주어지면 시간이 오래걸릴수는 있어도 누구나 결국엔 해결 할수있기 때문이다. 도구와 프레임워크에 대한 지식, 알고리즘 자료구조, 코딩테스트 스킬, 도메인 지식 같은 하드스킬은 누구나 학습과 훈련을 통해 충분히 발전하고 개선이 될 수있는 부분이다. 심지어 도구의 발달로 더 쉽게 하드스킬을 도구가 대신할 수 있는 시대가 왔다. 하지만 커뮤니케이션 스킬은 평생을 살아온 환경에서 만들어지는 성격이기 때문에, 고작 몇달 연습 한다고 나아지는게 아니다. 하드스킬이 상대적으로 부족해도 커뮤니케이션 능력이 뛰어난 사람이 오히려 앞으로의 개발자 커리어가 밝을 수 있다고 생각한다.
결국 핵심은 심리적 안정감이다. 팀구성원간의 심리적안정감이 팀의 문화차원에서 가장 중요한 역할을 한다고 생각한다. 이것은 구성원의 행복감 뿐만 아니라 팀과 개인의 퍼포먼스 더 나아가 회사의 목표를 달성하는데 더 큰 역할을 한다. 구글 또한 자체 조사결과 팀을 가장 효율적으로 만드는 요소는 심리적 안정감인 것으로 밝혀졌다고한다(https://rework.withgoogle.com/blog/five-keys-to-a-successful-google-team/). 나는 <구글 엔지니어는 이렇게 일한다>를 읽으면서 구글이 이런 문화 개선을 위해 얼마나 많은 노력과 비용을 투자하는지 알게 되었다. 구글이라는 회사에서 가장 부럽게 느껴지는 부분이다.