- 리더의 역할
- 관리자(Manager): 사람을 이끈다.
- 테크 리드(Tech lead): 기술과 관련한 책임을 진다.
- 신생 팀이라면 관리자와 테크 리드 역할을 한 사람이 맡는다. 이를 테크 리드 매니저(Tech lead manager, TLM)라 한다.
- 관리자에게는 대인 관계 측면에서의 기술(people skill)이 훨씬 많이 요구된다.
- 구글은 엔지니어링을 아는 사람만이 소프트웨어 엔지니어링 관리자가 될 수 있다.
- 거시적인 측면에서 엔지니어링 관리자는 테크 리드를 포함한 자신이 관리하는 팀의 구성원 모두의 성과, 생산성과 행복을 책임져야 한다. 동시에 팀에서 만드는 제품의 사업적 요구까지 충족시켜야 한다.
- 제품의 기술적인 면, 즉 기술과 관련한 결정과 선택, 아키텍처, 우선순위, 성능과 일반적인 프로젝트 관리를 책임진다.
- 엔지니어링 관리자와 긴밀히 협조하여 맡겨진 제품을 개발하는데 필요한 팀원을 확보하고 엔지니어들의 기술 스펙트럼과 기술 수준을 최대한 활용해 목표를 완수하게끔 이끌어야 한다.
- 때로는 직접 나서서 빠르게 일을 처리할지, 아니면 속도는 다소 더디더라도 다른 팀원에게 위임할지를 판단해야 한다. 팀의 규모와 역량이 커질수록 위임하는 편이 나을 때가 많다.
- 인적, 기술적 요구를 혼자 관장하는 사람
- 자신의 일, 위임, 사람 관리 사이에서 균형을 잡는 요령을 배워야 한다.
- 관리자가 되지 않겠다고 생각했더라도 경력이 쌓이다보면 어느 순간 리더의 위치에 있을 수 있다.
- 코딩한 경력이 길다면 관리 일을 했을 때 눈에 보이는 결과물이 없어보일 수 있다. 관리 업무를 수량화하기는 까다롭지만 관리를 통해 팀에 활기를 불어넣고 생산설을 높일 수 있다.
- 피터의 원칙(Peter Principle): 위계 조직에서 직원들은 자신의 무능력이 드러나는 직급까지 승진하는 경향이 있다.
- 테크 리드나 관리자가 될 것을 고민해보아야 하는 이유
- 경력 스펙트럼을 확장하는 길이다. 코딩에 아무리 능하더라도 혼자서 작성할 수 있는 코드 양에는 한계가 있다.
- 알고보니 관리자에 적합할 수 있다. 경험해보고 나니 사람들을 지도하고, 도와지고, 팀을 보호하고, 회사의 요구를 채우는데 뛰어나다는 것을 깨닫는 경우도 있다.
관리자는 무엇보다도 관리하려는 충동을 이겨내야 한다
- '관리'병을 치료하려면 '섬기는 리더십'을 자유롭게 응용할 수 있어야 한다. 섬기는 리더로서 겸손, 존중, 신뢰의 분위기를 조성하려 힘써야 한다.
- 팀원이 혼자서는 제거할 수 없는 관료적 장애물을 치워주고, 팀이 합의에 이르도록 도와주고, 누군가 늦게까지 야근할 때는 저녁을 사준다.
- 팀이 나아가는 길 앞의 균열을 메우고 필요할 때 조언해준다.
- 섬기는 리더가 해야할 관리는 오직 팀의 기술적, 사회적 건강 관리 뿐이다.
- 리더로서 해야 할 가장 중요한 일은 팀을 떠받드는 것이다.
- 당근과 채찍 방식은 비효율적이고, 창의적인 사람의 생산성을 떨어뜨린다는 연구는 수도 없이 많다.
- 관리자는 명칭 자체가 구시대적인 측면이 있다. 이로 인해 관리자는 부모처럼 행동하게 되고, 그 반작용으로 직원들은 아이처럼 반응하게 된다.
- 관리자가 직원들을 신뢰한다는 분명한 신호를 주면 직원들은 신뢰에 부응해야 한다는 긍정적인 압박을 느낀다.
- 전통적인 관리자는 일을 '어떻게(how)' 처리할지를 고민하는 반면, 훌륭한 관리자는 '무슨(what)' 일을 처리할지를 고민한다 (어떻게는 팀을 믿고 맡긴다).
- 팀원들이 안전하다고 느끼게 해주는 일 역시 팀을 촉진하는 좋은 방법이다. 심리적 안전을 확보해주면 사람들은 더 큰 위험도 기꺼이 감수할 것이다.
- 불가능한 목표에 도전하면 실패할 가능성은 그만큼 크다. 하지만 불가능에 도전해 실패하면 성공이 확실하리라 생각한 일을 성취했을 때보다 십중팔구 훨씬 큰 것을 얻는다.
- 팀이 위험을 감수하는 문화를 조성하는 멋진 방법은 바로 실패해도 괜찮음을 알게 하는 것이다.
- 성공에 기여한 개인을 축하해주는 것은 좋지만 실패 시 비난할 누군가를 찾으려 해서는 안 된다.
- 특정 개인이 이룬 성취는 팀이 보는 앞에서 칭찬하되, 실패한 개인에게는 개인적으로 따로 불러서 건설적인 비판을 한다.
- 어떤 경우든 배울 기회로 삼고, 겸손, 존중, 신뢰라는 원칙 하에 행동한다.
- 해서는 안 되는 패턴
- 부족하거나 의욕이 적은 사람처럼 좌지우지할 수 있는 사람을 고용해 자리보전을 할 수는 있지만 직접 처리해야 할 일이 늘어난다. 만만한 사람들로 팀을 꾸리면 휴가를 떠나지도, 의자에서 일어나지도 못한다. 팀의 생산성 또한 떨어진다.
- 나보다 똑똑하고 나를 대체할 역량을 갖춘 사람을 적극적으로 뽑아야 한다. 스스로 할 일을 찾고 확장하며, 일부는 스스로 팀을 이끌고 싶어할 것이다.
- 똑똑한 사람들로 주변을 채우면 자신의 전문성을 확장하는 데도 훨씬 유리하다.
모든 치아를 공평하게 대해야하지만, 때로는 치과의사가 되어야 한다.
- 저성과자의 역량이 높아지기를 혹은 어디론가 떠나기를 희망하는 사이, 팀의 다른 고성과자들은 저성과자들을 밀고 당겨주느라 귀중한 에너지를 낭비하고 팀의 사기는 서서히 떨어져간다.
- 저성과자를 방치하는 일은 새로운 고성과자가 팀에 합류하는 것을 막기도 하며, 그나마 있던 팀 내 고성과자를 떠나게도 한다. 그러다 보면 결국 스스로의 힘으로는 떠날 수 없는 저성과자로만 구성된 팀이 남게 된다.
- 한 팀에서 잘 해내지 못하는 사람이라도 다른 팀에 가면 좋은 성과를 내는 경우도 많다.
- 의외로 작은 격려와 방향 제시가 필요했을 뿐인 경우도 많다.
- 너무 오래 지켜보기만 하면 그들과 팀의 관계가 걷잡을 수 없이 틀어져서 도와줄 수 있는 길이 모두 막혀버릴 수도 있다.
- 저성과자를 지도할 때는 짧은 기간 마이크로매니징을 해야할 수 있다. 겸손, 존중, 신뢰를 바탕으로 작은 성공 경험을 쌓기 위해 기간을 정해 측정할 수 있는 아주 구체적인 목표를 제시한다.
- 매주 만나서 진척 상황을 확인하고 다음 마일스톤에서 기대하는 바를 명확히 정의했는지, 그래서 성공과 실패를 바로 구분할 수 있는지 확인한다.
- 저성과자와 직접 대면하여 중요하고 꼭 필요한 변화를 촉진해야 한다.
- 더는 위험을 감수하면서까지 사람이라는 요인을 무시해서는 안된다.
- 재택근무 중, 생산성과 팀원 간 소통 등 특별한 문제가 없다면 직원의 생각에 공감하는 것이 좋다. 가령 직원이 출근하는 것을 선호하는 관리자라도 팀원의 상황을 공감하여 잠시동안 재택근무를 허락해주거나 일주일에 두어 번 출근하도록 절충하는 방법을 생각해볼 수 있다.
- 부드럽게 끌어주는 리딩과 우정을 혼동하지 말자. 관리자의 손에는 팀원들의 경력을 좌지우지할 힘이 있기 때문에 인위적이고 낯선 행동에서 팀원들은 오히려 압박을 느낄 수 있다.
- 팀과의 친밀한 우정 없이도 혹은 완고한 독불장군이 되지 않고서도 팀을 이끌고 합의를 끌어낼 수 있다.
- 팀과 점심을 함께 하는 것도 좋은 방법이다. 팀원들을 불편하게 하지 않으면서 업무 외적인 대화를 나누며 사회적 유대를 유지하는 데 효과가 크다.
A급 인재는 A급 인재를 뽑고, B급 인재는 C급 인재를 뽑는다.
- 적합한 사람을 찾는 데 드는 비용은 애초에 뽑지 말았어야 할 직원을 관리하는 비용에 비하면 아무것도 아니다.
- 적합하지 못한 사람을 채용하면 팀 생산성 손실, 팀 스트레스, 직원 관리에 허비되는 시간, 해고 서류 작업과 스트레스 등의 비용을 치러야 한다.
- 팀원 채용 시 발언권이 없고 채용된 사람들이 만족스럽지 못하다면 더 뛰어난 엔지니어를 뽑아달라고 필사적으로 싸워야 한다. 그럼에도 평균 이하의 엔지니어들이 팀에 배속된다면 직장을 옮겨야 할 때이다.
- 어린이처럼 대하는 것은 팀을 신뢰하지 못한다는 것을 보여주는 것이다.
- 특정 팀원을 믿지 못해서 마이크로매니징할 수 밖에 없는 상황이 고착화된다면 채용을 잘못한 것이다.
- 믿을만한 사람을 뽑고 신뢰를 보여준다면 보통은 그들도 능력을 발휘할 것이다.
- 성공하는 리더십과 관리를 위한 올바른 패턴
- 겸손과 자신감 결여는 분명히 다르다. 자만에 차 있지 않더라도 자신감과 의견을 가질 수 있다.
- 팀이라는 '집단'으로서의 자존심과 정체성을 강화해야 한다.
- 신뢰는 자존심 버리기의 한 축이다. 팀을 믿어라. 팀원들의 능력과 기존에 이룬 성과들을 존중해야 한다. 새로 합류한 팀원이라도 마찬가지다.
- 팀을 마이크로매니징 하지 않으면 실무자들이 관리자보다 세부사항을 잘 알고 있으리라고 확신할 수 있게 된다.
- 팀을 하나로 모으고 방향을 정하게 도와주는 것은 관리자의 몫이지만, 목표를 이루기 위해 수행하는 구체적인 방법은 현장에서 일하는 사람이 결정하게 하는 것이 주인의식 형성에 좋다.
- 스스로가 완벽한 듯 행동한다면 팀원들의 존경을 빠르게 잃어갈 것이다.
- 질문하기를 장려한다면 건설적인 비판이 이루어지는 더 나은 팀의 더 나은 리더가 될 가능성이 훨씬 더 커진다.
- 실수했다면 사과한다. 사람들은 무언가를 망쳤으면 사과할 줄 아는 리더를 존경한다.
- 업무와 관련된 복잡한 세부 내용과 장애물들을 인지하고 있음을 팀도 알게 하되 덜 회의적인 태도를 취하는 게 좋다.
- 더 많은 사람을 이끌수록 감정은 억누르고 평정심을 유지해야 한다.
- 리더의 역할은 사람들을 고무시키는 것이다. 관리자에 대한 직원들의 관찰은 하루 24시간 일주일 내내 이루어진다. 아무리 사소한 것이라도 관리자가 내비치는 거의 모든 것이 무의식적으로 알려지고 팀에 전염된다.
- 마음을 다스리는 요령 중 하나는 '질문하기'이다. 팀원이 조언을 구한다는 것은 무언가를 해결해줄 기회가 찾아온 것인데, '직접 해결하기'는 가장 마지막에 택해야 하는 전략이다. 조언을 구하는 사람은 보통 스스로 문제를 해결하는 걸 도와주길 바란다. 문제를 다시 정의하고 탐구하도록 보조해보자.
- 권한이 있다면 직접 지시하고 방향을 정해줄 수 있지만 합의를 끌어내는 것보다는 전반적으로 효과가 약하다.
- 기술적인 문제든, 조직 차원의 문제든 해야할 일이 무엇인지 팀 내 합의를 이뤘지만 장애물에 막히는 경우가 있다.
- 팀원 차원에서 극복하기 어려운 장애물도 리더라면 손쉽게 걷어낼 수 있는 경우가 있다.
- 스스로가 모든 해법을 알고 있을 필요는 없다. 하지만 누가 해결해줄 수 있는지 할고 있다면 큰 도움이 된다.
- 스스로 배울 기회를 주는 일은 훌륭한 리더십에서 빠질 수 없는 요소이다.
- 훌륭한 멘토라면 성장하는 팀에 발맞ㅈ춰 멘티가 배우는 데 쓰는 시간과 제품 개발에 기여하는 시간의 균형을 잘 잡아줘야 한다.
- 멘토에게 필요한 능력
- 팀의 프로세스와 체계에 대한 경험
- 다른 이에게 무언가를 설명해주는 능력
- 멘티에게 도움이 얼마나 필요한지 측정하는 능력
- 멘티에게 최대한의 정보를 제공하는 것은 옳지 않다. 설명이 과하거나 이야기를 끝도 없이 쏟아낸다면 멘티는 그냥 듣는 척만 하고 한 귀로 흘릴 것이다.
- 팀이 한 방향으로 빠르게 전진하기를 원한다면 리더가 설정한 방향을 모든 팀원이 이해하고 동의해야 한다.
- 목표가 명확하다면 우선순위를 명확히 설정해놓고, 구체적으로 무엇을 택하고 무엇을 버려야 할지는 팀이 스스로 정하도록 적시에 도와야 한다.
- 목표를 세우고 팀이 제품을 한 방향으로 끌게 하는 가장 쉬운 방법은 팀이 이루어야 할 임무를 구체적인 문장으로 적어놓는 것이다.
- 팀이 방향과 목표를 정하도록 도왔다면 한 걸음 물러서서 더 많은 자율권을 준 뒤 모두가 올바르게 가고 있는지 주기적으로 확인한다.
- 명확한 목표 없이도 팀은 성공할 수 있지만 개개인이 살짝씩 다른 방향으로 줄을 당기느라 엄청난 에너지를 낭비하게 된다. 눈치 채는 게 늦을수록 방향을 바로잡기까지 더 많은 에너지를 투입해야 한다.
- 팀에 말 못 할 정보가 흘러들어오는 위치에 있기 때문에, 혹은 팀이 듣고 싶어 하지 않느 것을 말해야만 하는 위치에 있기에 정직해야 한다.
- '답은 알지만 내 마음대로 이야기해줄 수는 없다'와 같은 답변은 가능하다.
- 모른다면 모른다고 대답하자.
- 칭찬 샌드위치를 사용하지 말라. 겉에 둘러진 칭찬 때문에 핵심 메시지, 즉 실제로는 고쳐야 할 점을 지적한 것임을 제대로 인지 못하는 사람이 대부분이다.
- 상대가 비판을 듣자마자 방어적으로 변하지 않길 원한다면 친절과 공감이 아주 중요하다.
- 직접적인 피드백이나 비판을 전할 때는 메시지를 정확하게 왜곡 없이 전달하는 게 핵심이다. 상대가 방어 태세를 취하게 되면 자신이 무엇을 고쳐야 할지가 아니라, 역으로 내가 잘못한 점을 찾아 논쟁하려 할 것이다.
- 리더로서 이탈하는 팀원 줄이기를 포함해 팀의 생산성을 장기적으로 더욱 끌어올리려면 팀원들이 행복해하는지를 확인하는 데도 시간을 써야 한다.
- 수시로 팀원의 복지를 챙기고, 그들이 하는 일을 인정해주고, 일에 만족하는지 확인한다.
- 지저분하고 표 안 나는 일, 하지만 꼭 해야만 하는 일들을 스프레드시트에 정리하여 모든 팀원에게 고르게 분배되도록 관리
- 팀이 일한 시간을 측정하여 이따금 대체 휴가를 주거나 팀 소풍을 보내줌
- 일대일 면담을 하며 기술적인 이야기를 나누고 업무를 수행하는 데 부족한 것이 없는지 챙김. 업무에 만족하는지, 다음 프로젝트는 무엇을 하고 싶은지 물어봄
- 면담 후 뭐 필요한거 없어요?
- 매 면담 시 더 필요한 것은 없는지를 물어보면 처음엔 당황하겠지만 이후 필요한 것들을 생각해 온다.
- 행복지수를 1~10 사이로 매기게 하여 개인 행복도를 판단해 본다.
- 팀원이 어떤 상황에 처해 있는지를 인지하고 있다면 특정 직원이 특정 기간에 왜 생산성이 평소보다 떨어지는지, 혹은 더 열심히 일하는지가 눈에 들어올 것이다.
- 가정에 어려움이 있는 팀원을 배려해 약간의 여유를 주면 나중에 팀이 마감에 쫓겨 달려야 할 때 기꺼이 더 많은 시간을 희생해 줄 것이다.
- 경력 관리 챙겨주기도 팀원 행복 추적에 큰 비중을 차지한다.
- 5년 후 무엇을 하고 싶은지를 물어본다.
- 승진, 새로운 것 배우기, 의미 있는 제품/서비스 런칭, 똑똑한 사람들과 일하기 등
- 일 잘하는 리더가 되려면 팀원들이 이 모든 걸 성취하게 할 방법을 고민하고, 또 이런 고민을 하고 있음을 팀원들이 알게 해야 한다.
- 가장 중요한 것은 이러한 막연한 목표들을 구체적으로 명시해 두는 것이다. 그래야 진짜 경력 관련 조언을 해줘야 할 시점이 왔을 때 팀원이 현재 처한 상황과 주어진 기회를 평가해볼 수 있는 실질적인 지표가 생긴다.
- 행복도 추적은 단순히 경력을 모니터링하는 것에서 그치지 않는다. 각자에게 스스로 성장시킬 기회를 만들어주고, 하는 일을 인정해주고, 그 여정에서 약간의 재미를 느끼게 해줘야 한다.
- 이제 막 리더로 부임했다면 일거리를 팀원들에게 위임하려는 노력을 더 해야 할 가능성이 크다.
- 자신의 정신 건강을 온전히 유지하는 방법이자 팀원들에게 배움의 기회를 주는 방법이다.
- 팀을 이끈지 제법 되었거나 새로운 팀을 이끌게 되었다면 오히려 직접 일을 처리하는 게 팀원들의 존경을 이끌어내고 팀의 업무 속도를 높이는 가장 손쉬운 방법이다. 특히 아무도 하지 않으려 하는 지저분한 일을 떠맡아라.
- 남은 평생을 지금과 똑같은 일을 계속하고 싶은 것이 아니라면 대신할 사람을 찾아야 한다. 이 일은 채용 과정에서부터 시작된다.
- 당신보다 똑똑한 사람을 채용하라.
- 적합한 팀원을 구했다면 그 사람에게 더 많은 책임을 질 기회를, 때때로 팀을 이끌어볼 기회를 줘야 한다.
- 팀에 필요한 기술 수준을 갖추지 못한 엔지니어, 열차를 막아서는 사람, 의욕이 떨어진 직원 등 문제가 있다면 거센 파도를 일으켜야 한다. 문제가 저절로 해결될 가능성이 극히 희박하기 때문이다.
- 회사는 원래부터 혼란스럽다. 다만 전임 관리자가 팀원들을 혼란으로부터 보호해주고 있었을 뿐이다.
- 회사 위쪽에서 무슨 일이 벌어지고 있는지를 팀이 알게 해주는 것도 중요하지만, 수많은 불확실성과 팀 외부의 시시콜콜한 요구를 막아주는 일도 못지않게 중요하다.
- 가능한 한 많은 정보를 팀과 공유하되 팀에 실제로 영향을 줄 가능성이 거의 없는 조직 차원의 광기로 인해 팀 업무가 방해받지 않도록 한다.
- 누군가 일을 잘못 처리했을 때 알려주는 것처럼 잘 처리했을 때도 꼭 알려준다.
- 기대 이상으로 잘 해냈다면 당사자는 물론 팀 전체에 알려준다.
- 진짜로 훌륭한 리더는 어떤 일은 되돌릴 수 있고 어떤 일은 되돌리기가 생각만큼 쉽지 않은지를 판단해내는 감각이 뛰어나다.
- 누구에게 무엇이 필요한지 결정하고 제공하는 것이 리더로서 우리가 해야 할 일이다 (동기부여와 방향지시).
- 정체된 팀원에게는 동기를 부여하고, 무얼 해야할지 모르는 팀원에게는 더 강하게 지시한다. 동기가 지시가 모두 필요한 사람이 있을 수 있고, 모두 필요 없는 사람이 있을 수 있다.
- 방향지시에 필요한 능력: 수행해야 할 작업에 대한 기본적인 이해, 간단한 조직 관리 기술, 전체 작업을 관리 가능한 단위로 쪼개는 능력
- 사람들을 가장 행복하고 생산적이게 만드는 비법은 외적 동기부여가 아니라 내적 동기를 북돋아주는 것이다.
- 내적 동기부여 방법: 자율성(주도성), 숙련(전문성), 목적
- 자율성(주도성): 다른 사람의 마이크로매니징 없이 스스로 행동할 수 있는 것. 자율적인 직원에게는 제품이 나아가야 할 대략적인 방향만 알려주면 어떻게 도달할지는 스스로 결정한다.
- 숙련(전문성): 현재 기술 수준을 높이고 새로운 것을 배울 기회를 제공하는 것. 숙련에 필요한 기회를 충분히 제공받은 사람들은 동기가 커지고, 때론 야근도 불사한다. 결과적으로는 더 강한 팀을 만들어준다.
- 목적: 아무 의미도 찾을 수 없는 일을 하고 있다면 자율성과 숙련의 기회를 줘도 의미가 없다. 일의 목적이 필요하다.
- 팀을 이끈다는 것은 소프트웨어 엔지니어가 되는 것과는 또 다른 일이다.
- 관리자에게도 소프트웨어 엔지니어링 경험이 중요하지만 유능한 관리자에게 무엇보다 중요한 자질은 사회적 스킬이다.
- 좋은 관리자는 팀이 일을 스스로 잘하도록 돕고, 올바른 목표에 집중하게 하고, 조직 외부의 방해요소를 차단해준다. 이 때도 겸손, 존중, 신뢰를 담는다.
- 전통적인 의미에서의 '관리'는 하지말자. 리더십, 영향력, 팀을 위한 봉사에 집중하자.
- 가능하면 위임한다. DIY (Do It Yourself)를 자제한다.
- 팀이 무엇에 집중하는지, 그리고 방향과 속도에 특히 신경을 쓴다.