Leadership , Engineering ,

좋은 엔지니어와 나쁜 엔지니어의 리더십

by Mimul FollowFebruary 04, 2014 · 5 min read · Last Updated:
Share this

1996년 Ben Horowitz가 Netscape 재직 시절에 Good Product Manager, Bad Product Manager라는 글에 모티브를 얻어 Foursquare의 Jason Liszka가 기술인들에게도 좋은 리더십과 나쁜 리더십이 있다는 걸 정리해, Good Tech Lead, Bad Tech Lead를 포스팅을 했는데, 내용이 좋아서 번역해 보았습니다.

Teamwork

  • Good Tech Lead 좋은 기술 리더는 팀의 성공을 자신의 성공으로 인식해 팀의 멤버 역할을 수행한다. 지저분한 일도 받아들이고, 장애물도 제거해 팀이 100%의 능률을 올릴 수 있도록 한다. 중요한 시스템의 지식이 특정인 한 두명에게 집중되지 않게 하고 자신들 팀의 기술 능력이 퍼지도록 하는 일을 한다.
  • Bad Tech Lead 나쁜 기술 리더는 자기 자신을 위해 세간에 이목을 끄는 업무를 맡으며, 그 일을 통해 공을 차지해야만 동기 부여가 된다. 그리고 대규모 엔지니어링 조직의 비용으로 팀에 이득이 될만한 프로젝트에 팀원들을 일하게 하고 팀내(로컬) 최적화를 도모한다. 조직이 아닌 팀의 이익만 도모한다.

Technical vision

  • Good Tech Lead 좋은 기술 리더는 제품의 기술적인 방향성을 위한 전체 비전을 가지고 있고 또 그것을 멤버들에게 확실히 이해시킨다. 그리고 팀원들에게 특정 기능 영역을 위임하고 그들 스스로가 의사결정을 내리게 한다. 그래서 그들 팀 멤버가 스스로가 영리하고, 서로 믿으며, 프로젝트의 중요한 부분을 차지하고 있다고 인식하게 한다.
  • Bad Tech Lead 나쁜 기술 리더는 기술적인 방향을 설명하거나 명시하고 싶어하지 않고, 대신에 의사 결정을 강요한다. 그리고 도움이 되는 문서를 전파하거나 만들면서 얻어지는 효과를 배가시키는 것을 하지 않고 자신의 머리속에 중요한 제도적 지식을 유지한다.

Discussion and debate

  • Good Tech Lead 좋은 기술 리더는 이야기를 잘 듣고, 건강한 토론을 장려한다. 팀의 토론이 결론에 도달하지 못할 경우에는 결론을 내는데 도움이 되는 생각의 프레임이나 프로세스를 설명해 준다. 그리고 필연적 결론을 가지고 토론을 하지 않는다. 그리고 위대한 아이디어가 자신을 납득할 수 있도록 마음을 열어둔다.
  • Bad Tech Lead 나쁜 기술 리더는 결론이 없는 토론을 장시간 방치하고 팀의 생산성을 낮춘다. 토론을 미리 앞서 중단시키나, 혹은 이 문제는 "이미 해결되었으니"라고 말하면서 토론을 묵살한다. 팀이 올바른 결론을 내리기보다는 자신이 논쟁에서 이기는 것에 집착한다.

Project management

  • Good Tech Lead 좋은 기술 리더는 적극적으로 리드한다. 기술적인 진척상태가 정상 궤도에 있는지 확인한다. 견적을 제시하가 위해, 중간 이정표를 설정하기 위해 팀 멤버로서 일을 한다. 관심 영역을 예측하고 문제가 발생하기 전에 그들이 해결하는 지를 확인한다. 그리고 기술적 장애물을 식별하고 장애물을 해결하도록 팀을 도와준다. 작업이 공유되는 중첩 영역을 식별하고 반대로 충분한 주의가 가지 않는 영역, 자원이 부족한 곳울 찾는다.
  • Bad Tech Lead 나쁜 기술 리더는 수동적 자세를 갖는다. 권한을 위임하지만 진행 상태는 팔로우하지 않는다. 중간 이정표를 설정하지 않고 모든것이 마지막 기한까지 처리되기를 기도만 한다. 복잡한 시스템의 end-to-end 테스트를 하는 것을 런칭 전까지 기다리는 자세로 방치한다. 또한, 팀원들이 흥미롭지만, 중요하지 않는 일을 하는데 많은 시간을 허비하게 한다.

Pragmatism

  • Good Tech Lead 좋은 기술 리더는 실용적이며, 올바로 일을 하는 것과 일을 기한까지 성과를 낼 수 있는 균형을 잘 알고 있다. 급할 땐 절차를 무시하지만 결코 게으르진 않다. 전체의 진행을 차단하는 문제를 일시적 방법이나 해결책 찾기 위해, 런칭을 위한 최소한의 실현 가능한 인프라를 구축하기 위해 자신의 팀을 격려한다. 좋은 기술 리더에게는 디테일도 중요하다. 기한을 지켜 개발하는 것과 마찬가지로, 코드 품질, 코드 리뷰, 테스트가 중요하다고 생각한다.
  • Bad Tech Lead 나쁜 기술 리더는 단기적으로 시간을 절약하기 위해 지름길을 선택하지만, 이는 장기적으로 비용을 상승히키고 기술부채 더미를 쌓는 결과를 초래한다. 그리고 임기응변과 완벽을 구분할 줄 모른다.

Communication

  • Good Tech Lead 좋은 기술 리더는 자신의 역할이 코드를 작성하는 것보다 중요하다는 것을, 효과적인 의사소통이 잡의 필수적인 부분이며, 자신의 팀을 좀 더 효율적으로 만드는데 소비하는 것이 좋은 시간 소비라는 것을 알고 있다. 또한 약간의 커뮤니케이션 오버헤드가 팀 업무를 할때는 필요하다는 것을 인지하고 있고 그들은 전체 팀의 생산성을 위해서 몇몇 개개인의 생산성을 희생이 필요하다는 것도 알고 있다.
  • Bad Tech Lead 나쁜 기술 리더는 코드를 작성하는 때가 가장 생산적이라고 믿으며, 커뮤니케이션은 집중을 방해하는 것이라고 생각한다. 그들은 전체 팀의 생산성을 최적화하는 것이 아니라 그들 자신을 위해 가장 최선의 일이 무엇인지가 우선적이라고 생각한다. 그들은 리더 역할에 시간을 투입할 때에 불만을 토로한다.

Relationship with Product

  • Good Tech Lead 좋은 기술 리더는 제품이 어떻게 작동하는지에 대해 Product Manager나 디자이너들과 대화를 한다. 겉으로는 그들의 의사결정을 되돌리는 경우도 있지만, 심적으로는 제품의 목표를 의식하고 있고, 언제 의견을 수용할지를 알고 있다. 그들은 덜 기술적인 부담을 가진 대체 제품 모형을 제안을 통해 기술적인 제약의 창의적인 해결방안을 찾아주고, PM과 디자이너에게 기술적인 리스크를 이해하는데 도움을 줘 그들 스스로가 트레이드오프(장단점)를 잘 알게 해준다.
  • Bad Tech Lead 나쁜 기술 리더는 사전 협의없이 제품에 대한 의사 결정을 다른 부서에 떠넘기고 제품에 대한 오너십을 갖지 않는다. 그들은 기술 제약성으로 인해 뒤로 미루고 또한 대안이나 설명을 해주지 않는다.

Resiliency(대응력)

  • Good Tech Lead 좋은 기술 리더는 제품 스펙의 변경이 되어도 잘 대응하며, 놀라운 상황이 와도 침착하게 반응한다. 그들은 변경사항이 일어난 곳을 예상하고 코드를 설계해 잘 대처한다.
  • Bad Tech Lead 나쁜 기술 리더는 제품 스펙이 변경되었을 때 심란해 하고, 변경이 발생할 가능성이 없는 영역에서 설계를 조급하게 일반화해 버린다.

Personality

  • Good Tech Lead 좋은 기술 리더는 느긋한 성격이지만, 중요할땐 자기 주장을 한다. 자연스럽게 개입해 리드하고 기술력과 경험을 통해 존경받는다. 그리고 항상 개선할 방법들을 찾는다. 또, 겸손하고 팀 전체의 신뢰를 높인다.
  • Bad Tech Lead 나쁜 기술 리더는 대립각을 세우고 공격적이다. 자신의 타이틀이 존경과 권위를 부여 받는다고 생각한다. 그리고 피드백을 받을 때는 방어적이다. 거만하고 자신의 동료들이 열등감을 가져야 자신이 만족감을 얻는다.