테크 리드 된 지 3개월, 솔직한 후기
시니어 개발자에서 테크 리드로 승진하고 3개월간 겪은 시행착오들
승진 소식에 기뻤다가 바로 불안해졌다
7월에 테크 리드 승진 통보를 받았다. 5분 동안 기뻤다. 그리고 그 다음 3일 동안 불안했다. "나한테 이 역할을 맡겨도 되나?" 코드를 잘 짜는 것과 팀을 이끄는 건 완전히 다른 스킬인데, 회사는 코드를 잘 짠다는 이유로 리드를 맡겼다. (이게 IT 업계의 고질적인 문제다. 좋은 개발자가 좋은 리더라는 보장이 없는데.)
첫 주에 팀원이 6명이라는 걸 실감했다. 이전에는 내 일만 하면 됐는데, 이제 6명의 일도 신경 써야 한다.
첫 달: 코딩을 놓지 못했다
가장 큰 실수였다. 리드가 됐는데도 코딩을 같은 비율로 하려고 했다. 이전에 하루 6시간을 코딩에 썼는데, 리드가 되고 나서도 5시간은 코딩하겠다고 했다. 결과는 회의 + 코딩 + 리뷰를 동시에 하려다가 전부 중간만 하는 상태가 됐다.
팀원의 PR을 리뷰하는 데 하루 평균 1시간 반이 걸렸다. 1:1 미팅이 주 6개. 스프린트 플래닝, 회고, 스탠드업까지 합하면 회의만 하루에 2~3시간. 그러면 코딩할 시간이 3시간 남는데, 3시간 가지고는 깊은 작업이 안 된다. 30분짜리 회의 사이사이에 코딩하려고 하면 컨텍스트 스위칭 비용이 엄청나다.
결국 한 달 만에 코딩 비율을 30%로 줄였다. 핵심 아키텍처 결정과 프로토타이핑만 직접 하고, 나머지는 팀원에게 맡겼다. 이걸 "위임"이라고 하는데, 실제로는 "내가 짜고 싶은 코드를 남한테 주는 것"이라 처음에는 스트레스였다.
둘째 달: 1:1 미팅이 이렇게 중요한 줄 몰랐다
리드가 되기 전에는 1:1 미팅이 의례적인 거라고 생각했다. "이번 주 어떠셨어요?" "괜찮았어요." 끝. 근데 리드로서 1:1을 하니까 완전히 달랐다. 팀원의 불만, 고민, 목표를 파악하는 유일한 채널이다.
한 팀원이 1:1에서 "요즘 번아웃인 것 같다"고 했다. 이전에는 "힘들겠다" 하고 넘겼을 텐데, 리드니까 뭔가 해야 했다. 업무량을 재조정하고, 관심 있는 기술 스터디 시간을 주 2시간 보장했다. 2주 뒤에 표정이 달라졌다. 이런 변화를 직접 만들어낸 게, 코드 배포보다 더 보람 있었다. (솔직히 처음으로 그렇게 느꼈다.)
근데 실패한 1:1도 있다. 다른 팀원이 "불만 없어요"라고 계속 말하다가 한 달 뒤에 퇴사 의향을 밝혔다. 1:1에서 솔직한 대화가 안 됐다는 건 내가 신뢰를 못 쌓았다는 뜻이다. 이건 아직도 고민 중이다.
셋째 달: 기술 의사결정의 무게
테크 리드가 내리는 기술 결정은 무겁다. "이 프로젝트에서 MongoDB를 쓸까 PostgreSQL을 쓸까"를 내가 결정하면, 팀원 6명이 그 결정에 따라 6개월을 일한다. 잘못된 결정을 하면 6명의 6개월이 날아가는 거다.
전에는 "이 기술이 재밌으니까" 하고 선택했는데, 리드가 되니까 "팀원 중 이 기술을 아는 사람이 몇 명인가", "유지보수 비용은 얼마나 되나", "인재 채용은 쉬운가"까지 고려해야 한다. 기술적으로 최선인 것과 팀에게 최선인 것이 다를 때가 있다. 이 갈등이 생각보다 자주 찾아온다.
한 번은 새 프로젝트에서 Rust를 쓰고 싶었다. 성능도 좋고 안전하고. 근데 팀에서 Rust를 아는 사람이 나 포함 2명이었다. 결국 Go를 선택했다. 팀 전체가 생산성 있게 일할 수 있는 선택이 리드의 선택이다. Rust는 사이드 프로젝트에서 쓰기로 했다.
3개월 지나니까 보이는 것들
테크 리드는 "코드를 잘 짜는 사람"이 아니라 "팀이 좋은 코드를 짤 수 있게 만드는 사람"이다. 이걸 머리로는 알았는데 몸으로 이해하는 데 3개월이 걸렸다. 아직 부족한 게 많다. 위임이 서툴고, 1:1에서 신뢰를 쌓는 게 어렵고, 기술 결정에서 확신이 부족하다.
근데 하나 확실한 건, 이 역할이 싫지는 않다는 거다. 내가 짠 코드보다 팀원이 성장하는 모습이 더 뿌듯할 줄은 몰랐다. 6개월 뒤에 다시 후기를 쓰면 좀 다른 이야기가 되지 않을까 싶다.