회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
AWS 이용 중이라면 최대 700만 원 지원받으세요
시니어 엔지니어들로 구성된 팀 이끌기
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
시니어 엔지니어들로 구성된 팀 이끌기
본문은 요즘IT와 번역가 Jane Heo가 함께 미레크 스타넥(Mirek Stanek)의 글 <How to Lead a Team of Senior Engineers>을 번역한 글입니다. 필자인 미레크 스타넥은 현재 글로벌 인사관리 솔루션을 제공하는 핀테크 기업 파파야 글로벌(Papaya Global)에서 현장 리더(Site Leader)이자 엔지니어링 디렉터(Engineering Director)로 일하고 있습니다. 이번 글에서는 실무 엔지니어링 관리에서 필요한 기술 및 고위 인력으로 구성된 팀을 이끄는 방법을 소개합니다.
필자에게 허락을 받고 번역했으며, 글에 포함된 각주(*표시)는 ‘번역자주’입니다.
엔지니어링 리더의 중요한 책임 중 하나는 팀원들이 스스로 성장할 수 있도록 돕는 것입니다. 지식과 경험이 풍부한 엔지니어들로 구성된 고성과(high-performing) 팀을 육성하는 것이 관리자의 궁극적인 목표가 되어야 합니다. 그러나 동시에 이런 고민이 따르기도 합니다. “만약 그들이 저보다 더 똑똑하다면 어떡하죠? 그런 사람들을 어떻게 관리해야 하나요?” 실제로 여러 엔지니어링 리더 1:1로 이야기할 때 자주 받았던 질문입니다.
이번 글에서 몇 가지 기법과 자료를 공유하려고 합니다. 이 자료들은 높은 기술력과 풍부한 경험을 갖춘 시니어 팀원들을 효과적으로 이끌 수 있도록 도와줄 것입니다. 이들에게는 명령과 통제 방식의 관리법이 통하지 않기 때문입니다.
위키피디아(Wikipedia)에 따르면, “management”라는 단어의 어원은 다음과 같습니다.
영어 동사 manage는 15세기 프랑스어 동사 mesnager에서 유래했으며, 원래 말의 고삐를 잡는 것을 의미했다. 이탈리아어 maneggiare도 비슷하게 도구나 말을 다루는 뜻이 있고, 스페인어 manejar 또한 말의 통제를 뜻할 수 있다. 이 세 단어는 모두 라틴어 manus (손)와 agere (행동하다)에서 파생되었다.
“말의 고삐를 손에 쥐고 다루는 것”이란 표현이 과격하게 들릴 수 있지만, 어느 정도는 신입 엔지니어링 관리자들의 기본적인 행동을 반영하는 것 같습니다. 관리의 행정적인 부분(예를 들어, 기대 관리, 일정, 자원, 비용 관리 등)은 분명히 필요합니다. 하지만 능숙한 사람들과 함께 일할 때는 그들에게 무엇을 어떻게 하라고 지시하기보다 더 효과적인 접근 방식이 있습니다.
엔지니어링 리더로서 당신의 역할은 사람을 관리하는 것이 아니라, 그들의 재능, 잠재력, 성장을 관리하는데 더 가깝습니다. 이를 위한 몇 가지 방법은 다음과 같습니다.
사람들에게 무엇을 어떻게 해야 하는지 지시하는 방식에는 많은 한계가 있습니다. 마이크로 매니징(micromanaging)을 하게 되면 팀원의 잠재력을 충분히 발휘하지 못하게 하고, 모든 사람이 명확한 지시를 기다리게 되어 당신이 병목 지점이 될 수 있습니다.
명령을 내리는 대신, 구체적인 기대치를 설정하는 방식으로 접근해 보세요.
이러한 방식으로 팀에 기대 결과를 제시하고, 팀이 스스로 방법을 찾아 해결하도록 할 수 있습니다. 기대치를 설정하는 관리 방식을 확장하려면 목표 평가를 넘어서는 것이 중요합니다. 팀원들의 성과를 논의할 때 고려해야 할 세 가지 기본 요소는 다음과 같습니다.
훌륭한 소프트웨어 엔지니어는 이 모든 요소를 균형 있게 갖춘 사람입니다. 단순히 뛰어난 개발자나 소프트웨어 아키텍트로서의 능력 (Hard Skills)만으로는 충분하지 않으며, 훌륭한 발표자나 협상가로서의 능력 (Soft Skills)만으로도 부족합니다. 하드 스킬과 소프트 스킬은 물론 중요하지만, 이것들이 적절히 발휘될 때 비로소 영향력(Impact)이 생깁니다. 그리고 팀원의 의지, 개방성, 적극성(Attitude)이 이 영향력을 극대화하는 데 중요한 요소입니다.
소프트웨어 엔지니어링에서 흔히 겪는 실수 중 하나는 해결해야 할 문제를 정의하기도 전에 너무 빨리 해결책을 파고드는 것입니다. 만약 관리자인 당신이 뛰어난 팀원들에게 해결해야 할 문제 대신 구체적인 해결책만을 지시한다면 그들에게 올바른 해결책을 찾을 기회를 빼앗는 셈입니다.
우리가 사는 복잡한 세계에서는 처음 떠오른 해결책이 최적의 해결책이 아닌 경우가 많습니다. 복잡한 문제는 여러 정의를 가질 수 있고, 그중 어떤 것이 옳다고 할 수 없는 경우도 있습니다. 문제에는 다양한 이해관계자가 존재할 수 있으며, 이들 각자 나름의 해결책을 제시할 수 있습니다. 또한, 가장 목소리가 큰 사람, 조직도에서 직급이 높은 사람, 또는 의견을 표하지 않는 사람 등 이해관계자마다 의견을 표하는 방식과 영향력이 다를 수 있습니다.
문제를 직면하면 우선 아래 질문들에 답해 보세요.
이 질문을 통해 문제를 제대로 보고, 올바르게 정의하는 데 도움을 얻을 수 있습니다.
제품 회사에서 기술의 역할은 고객의 문제를 해결하는 것입니다. 이는 특히 제품에 지대한 영향을 주는 숙련된 엔지니어에게 중요하며, 이들이 단순히 기능을 만드는 데 그치지 않고, 제품 조직의 핵심 구성원이 되어야 합니다. 이를 위해, 엔지니어가 문제 발견과 해결 과정에 참여하고, 출시 후에도 작업을 책임지도록 하세요. 성과는 완료된 작업이 아닌, 이루어진 결과로 평가해야 합니다.
성과 기반의 팀 운영은 어느 정도 조직의 성숙도가 필요합니다. 만약 현재 회사가 아직 준비되지 않았다고 생각된다면, 대부분의 제품 회사에서 공통으로 적용할 수 있는 다음의 요소들로 팀의 목적을 정의해 볼 수 있습니다.
회사의 미션과 비전은 보통 높은 수준에서 정의되기 때문에 구체적인 행동이나 결정으로 쉽게 옮기기 어려울 수 있습니다. 조직을 같은 방향으로 맞추기 위해 회사는 원칙 기반의 리더십 문화를 장려할 수 있습니다. 원칙은 의사 결정과 전략 실행을 위한 틀을 제공합니다.
원칙은 팀에 일관성과 자율성을 부여합니다. 뛰어난 소프트웨어 엔지니어들조차 문제를 해결하는 방식은 수없이 많을 수 있지만, 원칙은 상시 감독 없이도 의사 결정에 지침이 됩니다. 예를 들어, API에 추가적인 보안 계층을 고려할 때, 애플(Apple)의 “프라이버시는 기본적인 인권이다”라는 원칙은 이 결정을 명확하게 할 것입니다. 반면, 페이스북(Facebook)의 “빠르게 움직여라.”는 보다 다양한 논의를 끌어낼 수 있습니다.
팀이 주어진 과제의 '방법'에 책임을 지는 동안, 원칙은 업무에서 가장 중요한 것이 무엇인지에 대한 맥락을 제공합니다. 산업 내에서 자주 언급되는 원칙들 몇 가지 예시는 다음과 같습니다.
만약 조직에 명확한 원칙이 없다면, 팀을 위해 자체적인 원칙을 만드는 것을 주저하지 마세요. 작은 회사에서는 이 기회가 본보기를 보이며 조직 전체에 긍정적인 영향을 미칠 기회가 될 수 있습니다.
관리하는 엔지니어들이 아무리 뛰어나더라도, 모든 리더에게 보편적으로 중요한 실천 방법들이 있습니다.
고성과(High-performing) 팀 리더의 5가지 특성
<Accelerate>라는 책에서는 고성과 팀 리더를 정의하는 다섯 가지 핵심 특성을 강조합니다.
이 특성들을 탐구하고, 어떻게 하면 당신의 리더십 역량을 한층 높일 수 있는지 살펴보세요.
팀과 함께 할 리더십 기술을 하나만 선택해야 한다면 1:1 미팅을 선택하세요.
1:1 미팅에서는 다음과 같은 일들이 이루어집니다.
처음 1:1 미팅을 시작하는 것은 어려울 수 있습니다. 이 세션에 구조와 지속성을 부여하고, 팀원들에게 가치 있는 시간이 되도록 해야 합니다.
이번 글은 여러분보다 더 숙련된 시니어 소프트웨어 엔지니어를 이끌 수 있도록 돕기 위해 작성했습니다. 이를 통해 엔지니어링 리더들이 훌륭한 아이디어를 실현할 수 있길 바랍니다.
<원문>
How to Lead a Team of Senior Engineers
위 번역글의 원 저작권은 Mirek Stanek에게 있으며, 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다