2020.12.28

개발자가 관리자 직책을 고려할 때 알아야 할 7가지

Scott Carey | InfoWorld
2021년 새해 다짐으로 모두가 바쁜 지금, 많은 개발자가 새로운 언어를 마스터하는 것이든 마침내 관리 분야로 자리를 옮기는 것이든 경력의 다음 단계에 대해 고민하고 있다. 다른 많은 직업과 달리 소프트웨어 엔지니어는 경력 개발을 위해 관리직으로 옮길 필요가 없다. 개발 작업에 전념하고 계속해서 기술을 다루고자 하는 개발자가 추구할 수 있는 수석 엔지니어, 특별 엔지니어, 아키텍처, CTO 등 다양한 진로가 있다.
 
ⓒ Getty Images Bank

그러나 관리직, 이른바 개발자 관리자에 관심이 있다면 자신의 전문 지식이나 결과물보다는 팀에 더 초점을 둬야 한다는 점에 유의해야 한다. 개발자 관리자의 주된 업무는 인력 채용과 유지, 육성, 팀으로 오는 요청의 이해와 조정, 달성 및 반복 가능한 실행 목표 설정, 기술 부채 관리 등이다. 관리직으로의 전환을 생각할 때 고려해야 할 사항을 직접 경험했던 사람의 조언으로 정리했다.
 

1. 전혀 다른 일임을 인식하라

소프트웨어 엔지니어링 분야에서 관리자 대부분은 관리직으로의 전환을 경력 측면에서 위로 올라가는 것이 아니라 전혀 다른 스킬 셋과 우선순위가 필요한 수평 이동으로 생각한다. 그리고 실제로 그렇게 생각하는 것이 맞다.

아틀라시안(Atlassian)의 선임 소프트웨어 엔지니어링 관리자인 이사벨 니오는 “엔지니어링 관리는 소프트웨어 엔지니어링의 대체 경력 진로다. 어떤 이유인지, 우리는 자신의 역할에 필요한 기술을 숙달했고 선임 엔지니어로 몇 년을 일해왔다면 다음 단계는 엔지니어링 관리자가 되는 것이라는 환상을 갖고 있다”라고 말했다. 텍사스 오스틴 대학에서 철학을 전공하고 독학으로 개발자가 된 마이클 코테는 “개발자 관리자가 된다는 것은 완전히 새로운 직무를 익히는 것을 의미한다. 프로그래밍과 프로그래머 철학에 관한 지식은 여전히 유용하지만 그것이 더는 본업이 아닌 상황이 된다”라고 말했다.

코딩을 배우는 데 대부분의 시간을 보낸 사람은 이런 과정에서 상당한 적응 기간이 필요할 수 있다. 또 예전처럼 코드 베이스를 직접 다룰 일이 많지 않다는 사실을 인식하는 것은 새로운 개발자 관리자가 가장 배우기 어려운 부분이기도 하다. 그런데도 좋은 개발자 관리자는 여전히 팀이 산출하는 코드의 품질을 책임진다. 트레인라인(Trainline)의 엔지니어링 수석인 댄 테일러는 “예전처럼 코드를 많이 쓰지는 않지만 의사 결정의 타당성을 확인하기에 충분한 정도의 감은 계속 유지해야 한다”라고 말했다.
 

2. 관리직으로 가는 일반적인 경로를 파악하라

많은 개발자가 팀 내에서 특정 영역의 전문가로 확고하게 자리를 잡은 후 어느 순간 관리직으로 옮겨가는 상황을 맞이한다. '기술 수석'으로 임명돼 해당 기술에 초점을 둔 팀을 구성하라는 지시를 받는 경우도 있다.

트위터의 엔지니어링 부사장인 닉 캘드웰이 이런 사례에 해당한다. 그는 마이크로소프트에서 일하면서 마이크로소프트 오피스 애플리케이션에 내장된 자연어 처리(NLP)와 맞춤법 검사 툴에 관한 깊은 전문 지식을 쌓아 관리직으로 첫 발을 내디뎠다.

그러나 전문성이 위험으로 이어질 수도 있다. 캘드웰은 “보통 회사는 기술적인 역량을 이유로 어떤 사람을 관리직에 앉힌다. 이때 가장 흔히 일어나는 실수는 유능한 기술자로 그 자리에 오른 만큼 자신의 복사판으로 팀을 구성해야 한다고 생각하는 것이다. 나 역시 그런 실수를 저질렀다. 하지만 이후 관리의 핵심은 자신의 한계와 팀을 규합하는 역량을 인지하는 것임을 배웠다"라고 말했다.

관리직으로 가는 또 다른 보편적인 경로는 선임 개발자가 인력 관리 쪽으로 차츰 기울거나 엔지니어링 담당 직원만이 아닌 더 폭넓은 비즈니스와 접촉하게 되는, 더 유기적인 경로다. 영국의 온라인 식료품 배달업체 오카도(Ocado)의 기술 사업부 엔지니어링 팀 수석인 잭 트레인은 이 경로를 따라 관리직을 맡게 됐다. 그는 “신참급 엔지니어를 멘토링하는 것을 원래 좋아했고, 선임 역할로 올라가서는 여러 그룹 사이에서 협업하고 요구사항을 해석해 팀에 전달하고 커뮤니케이션하는 것도 좋아했다”라고 말했다.
 

3. 다양한 경험을 추구하라

엔지니어링 부서 너머로 시야를 확대하는 것은 관리직으로 가는 길의 중요한 단계가 될 수 있다. 신용 평가 업체 크레딧 카르마(Credit Karma)의 국제 엔지니어링 담당 VP인 댄 마운더는 핀테크 분야에서 닷넷 전문가로 오랜 경험을 쌓았지만 관리직에 대한 관심이 생긴 계기는 2008~2010년에 했던 다양한 소매 비즈니스 컨설팅 경험이었다. 그는 “컨설팅을 하면서 다양한 고객을 접했던 것이 많은 도움이 됐다. 내 일의 핵심은 발전과 빠른 조직 파악이다. 요구사항과 사람들 사이를 조율해 결과에 이르도록 하는 것이 즐겁다”라고 말했다.

인력 관리 소프트웨어 제조업체 사이레넘(Sirenum)의 연구개발 팀 리더인 서지오 클라라는 처음 직장 생활을 시작한 지멘스에서 항상 문제에 대한 해결책을 제시하는 다재다능함으로 빠르게 승진했다. 이후 이러한 역량을 컨설팅 역할에 적용했다. 그는 “핵심은 요구사항과 문제를 이해하고 기술 배경이 없는 사람들과 대화하고 이들의 이야기를 해석해 팀에 전달하는 것이었다. 컨설턴트 경험은 이 스킬을 쌓는 데 도움이 됐다”라고 말했다.
 

4. 핵심 관리 스킬을 먼저 개발하라

엔지니어링 관리자의 핵심 스킬은 개발 팀원과는 매우 다르다. 일반적으로 관리자는 관리자 개인의 코드 기여도가 아니라 팀의 업무 만족도와 성과에 따라 평가된다. 아틀라시안의 니오는 IT 기업의 엔지니어링 관리자에게 필요한 수평적으로 연관된 10가지 스킬과 속성을 언급했다. 이 목록에는 재무 및 인력 분석과 같은 기초적인 역량도 포함되지만, 융통성, 기업가 정신과 같은 모호한 스킬도 있었다.

트위터의 캘드웰은 팀원들을 보살피고 예측 가능한 성과와 품질 수준으로 이들을 이끄는 역량 외에 고차원적인 통찰력도 지녀야 일급 관리자가 될 수 있다면서 “관리자는 단순히 실행하는 것이 아니라, 기업이 어떤 것에 접근하는 이유와 방법에 관한 전략과 비즈니스에 대한 이해도 겸비해야 한다”고 말했다.

문화를 만드는 측면도 있다. 마운더는 경쟁 신용 평가 기관인 익스피리언(Experian)에서 근무할 당시 조직 철학 교수인 다미안 휴즈의 말에 강한 인상을 받았다. 그는 마운더에게 “리더의 역할은 단 하나, 사람들이 번성하는 조직을 만드는 것이다. 나머지는 쉽다”라고 말했다. 마운더는 이 목표를 달성하기 위해 팀 내에서 누구도 질문하기를 부끄러워하지 않도록 하는 데 공을 들였다. 그는 “내향적인 사람들이 많은 기술 분야에서는 쉽지 않은 일이었다. 사람들이 즐거운 마음으로 일하고 자신이 책임지는 일을 이해하는 환경을 만들어야 한다. 나머지는 간단하다”라고 말했다.
 

5. 커뮤니케이션을 마스터하라

모든 유형의 리더에게 가장 중요한 스킬은 당연히 커뮤니케이션이다. 마운더는 “팀과의 커뮤니케이션이 가장 중요하다. 그래야 팀이 내가 하는 말을 신뢰하고 이를 달성하고자 노력한다. 리더가 되기 위해서는 사람들이 나를 따르고 싶어 하도록 해야 하지만 피어 그룹 역시 이 여정에 동참해야 한다. 많은 엔지니어가 그렇듯이 나도 개발에 집중했을 당시에는 커뮤니케이션 스킬이 부족했다. 하지만 배우면 된다”라고 말했다.

VM웨어의 코테는 "유능한 관리자는 우선순위를 정확히 파악하고 비즈니스 요구사항과 기술적 실현 가능성 사이에서 균형을 잡는 능력을 갖춰야 한다. 여기서 커뮤니케이션 능력이 정말 유용하다”라고 말했다. 사이레넘의 클라라는 “사람들과 공감하고 기술적 관점과 비기술적 관점에서 모두 이야기할 수 있는 것이 중요하다. 결국 관리자가 하는 일은 사람을 관리하는 것이고, 여기에는 설명서가 없으므로 스스로 학습해야 한다. 이 과정은 어려울 때도 있고 시행착오도 겪게 되지만 중요한 경험이다”라고 말했다.
 

6. 경계를 설정하라

엔지니어링 관리자에게 또 다른 중요한 스킬은 엔지니어를 위한 경계를 설정해 솔루션을 구매하기보다는 스스로 만드는 쪽으로 기울거나 신선하고 새로운 기술에 쉽게 현혹되는 이들의 자연스러운 성향을 억제하는 스킬이다. 오카도의 트레인은 “최근 한 관리자는 나에게 볼링장의 범퍼 레일이 돼 팀원이 옆으로 빠질 걱정을 할 필요 없이 종일 핀을 쓰러트리는 데만 열중할 수 있도록 하라는 말을 했다. 그 균형이 핵심이다. 항상 번지르르한 일만 할 수는 없다”라고 말했다.
 

7. 기업 내에서 주목받도록 행동하라

관리직을 염두에 두고 있다면 팀 내에서 그러한 성향과 역량을 보여주는 것만으로는 부족할 때가 있다. 조직 내 적절한 사람들의 관심을 끌어야 한다. 코테는 “진전하기 위해서는 나를 진전시켜줄 사람들이 나의 존재를 알아야 한다. 스스로를 마케팅하고 팀원에게도 스스로를 마케팅하도록 독려하는 것이 좋다. 강연하거나 문서를 배포하고 뭔가를 발표하라. 유능한 관리자는 팀원이 자신이 하는 일에 관해 이야기하도록 적극적으로 독려한다”라고 말했다.

소프트웨어 자동화 전문기업 셰프(Chef)의 엔지니어이며 UI 팀장인 샤데 홈즈는 "관리직으로 진출하는 과정에서 눈에 띄는 일을 더 많이 해야 했다. 나만의 기술 영역 안에 머물러서는 기술 리더십 분야에서 더 많은 일을 하고 싶다는 의사를 충분히 전달할 수 없었다”라고 말했다. 결국 대면, 그리고 디지털 채널을 통한 적극적인 소통 의지가 중요하다. 피드백을 주고 새로운 위원회와 그룹에 참여하고 멘토를 찾고 더 폭넓은 비즈니스를 이해할 수 있는 위치로 스스로 들어가는 것 등이 모두 주목받기 위한 중요한 방법이다. editor@itworld.co.kr



2020.12.28

개발자가 관리자 직책을 고려할 때 알아야 할 7가지

Scott Carey | InfoWorld
2021년 새해 다짐으로 모두가 바쁜 지금, 많은 개발자가 새로운 언어를 마스터하는 것이든 마침내 관리 분야로 자리를 옮기는 것이든 경력의 다음 단계에 대해 고민하고 있다. 다른 많은 직업과 달리 소프트웨어 엔지니어는 경력 개발을 위해 관리직으로 옮길 필요가 없다. 개발 작업에 전념하고 계속해서 기술을 다루고자 하는 개발자가 추구할 수 있는 수석 엔지니어, 특별 엔지니어, 아키텍처, CTO 등 다양한 진로가 있다.
 
ⓒ Getty Images Bank

그러나 관리직, 이른바 개발자 관리자에 관심이 있다면 자신의 전문 지식이나 결과물보다는 팀에 더 초점을 둬야 한다는 점에 유의해야 한다. 개발자 관리자의 주된 업무는 인력 채용과 유지, 육성, 팀으로 오는 요청의 이해와 조정, 달성 및 반복 가능한 실행 목표 설정, 기술 부채 관리 등이다. 관리직으로의 전환을 생각할 때 고려해야 할 사항을 직접 경험했던 사람의 조언으로 정리했다.
 

1. 전혀 다른 일임을 인식하라

소프트웨어 엔지니어링 분야에서 관리자 대부분은 관리직으로의 전환을 경력 측면에서 위로 올라가는 것이 아니라 전혀 다른 스킬 셋과 우선순위가 필요한 수평 이동으로 생각한다. 그리고 실제로 그렇게 생각하는 것이 맞다.

아틀라시안(Atlassian)의 선임 소프트웨어 엔지니어링 관리자인 이사벨 니오는 “엔지니어링 관리는 소프트웨어 엔지니어링의 대체 경력 진로다. 어떤 이유인지, 우리는 자신의 역할에 필요한 기술을 숙달했고 선임 엔지니어로 몇 년을 일해왔다면 다음 단계는 엔지니어링 관리자가 되는 것이라는 환상을 갖고 있다”라고 말했다. 텍사스 오스틴 대학에서 철학을 전공하고 독학으로 개발자가 된 마이클 코테는 “개발자 관리자가 된다는 것은 완전히 새로운 직무를 익히는 것을 의미한다. 프로그래밍과 프로그래머 철학에 관한 지식은 여전히 유용하지만 그것이 더는 본업이 아닌 상황이 된다”라고 말했다.

코딩을 배우는 데 대부분의 시간을 보낸 사람은 이런 과정에서 상당한 적응 기간이 필요할 수 있다. 또 예전처럼 코드 베이스를 직접 다룰 일이 많지 않다는 사실을 인식하는 것은 새로운 개발자 관리자가 가장 배우기 어려운 부분이기도 하다. 그런데도 좋은 개발자 관리자는 여전히 팀이 산출하는 코드의 품질을 책임진다. 트레인라인(Trainline)의 엔지니어링 수석인 댄 테일러는 “예전처럼 코드를 많이 쓰지는 않지만 의사 결정의 타당성을 확인하기에 충분한 정도의 감은 계속 유지해야 한다”라고 말했다.
 

2. 관리직으로 가는 일반적인 경로를 파악하라

많은 개발자가 팀 내에서 특정 영역의 전문가로 확고하게 자리를 잡은 후 어느 순간 관리직으로 옮겨가는 상황을 맞이한다. '기술 수석'으로 임명돼 해당 기술에 초점을 둔 팀을 구성하라는 지시를 받는 경우도 있다.

트위터의 엔지니어링 부사장인 닉 캘드웰이 이런 사례에 해당한다. 그는 마이크로소프트에서 일하면서 마이크로소프트 오피스 애플리케이션에 내장된 자연어 처리(NLP)와 맞춤법 검사 툴에 관한 깊은 전문 지식을 쌓아 관리직으로 첫 발을 내디뎠다.

그러나 전문성이 위험으로 이어질 수도 있다. 캘드웰은 “보통 회사는 기술적인 역량을 이유로 어떤 사람을 관리직에 앉힌다. 이때 가장 흔히 일어나는 실수는 유능한 기술자로 그 자리에 오른 만큼 자신의 복사판으로 팀을 구성해야 한다고 생각하는 것이다. 나 역시 그런 실수를 저질렀다. 하지만 이후 관리의 핵심은 자신의 한계와 팀을 규합하는 역량을 인지하는 것임을 배웠다"라고 말했다.

관리직으로 가는 또 다른 보편적인 경로는 선임 개발자가 인력 관리 쪽으로 차츰 기울거나 엔지니어링 담당 직원만이 아닌 더 폭넓은 비즈니스와 접촉하게 되는, 더 유기적인 경로다. 영국의 온라인 식료품 배달업체 오카도(Ocado)의 기술 사업부 엔지니어링 팀 수석인 잭 트레인은 이 경로를 따라 관리직을 맡게 됐다. 그는 “신참급 엔지니어를 멘토링하는 것을 원래 좋아했고, 선임 역할로 올라가서는 여러 그룹 사이에서 협업하고 요구사항을 해석해 팀에 전달하고 커뮤니케이션하는 것도 좋아했다”라고 말했다.
 

3. 다양한 경험을 추구하라

엔지니어링 부서 너머로 시야를 확대하는 것은 관리직으로 가는 길의 중요한 단계가 될 수 있다. 신용 평가 업체 크레딧 카르마(Credit Karma)의 국제 엔지니어링 담당 VP인 댄 마운더는 핀테크 분야에서 닷넷 전문가로 오랜 경험을 쌓았지만 관리직에 대한 관심이 생긴 계기는 2008~2010년에 했던 다양한 소매 비즈니스 컨설팅 경험이었다. 그는 “컨설팅을 하면서 다양한 고객을 접했던 것이 많은 도움이 됐다. 내 일의 핵심은 발전과 빠른 조직 파악이다. 요구사항과 사람들 사이를 조율해 결과에 이르도록 하는 것이 즐겁다”라고 말했다.

인력 관리 소프트웨어 제조업체 사이레넘(Sirenum)의 연구개발 팀 리더인 서지오 클라라는 처음 직장 생활을 시작한 지멘스에서 항상 문제에 대한 해결책을 제시하는 다재다능함으로 빠르게 승진했다. 이후 이러한 역량을 컨설팅 역할에 적용했다. 그는 “핵심은 요구사항과 문제를 이해하고 기술 배경이 없는 사람들과 대화하고 이들의 이야기를 해석해 팀에 전달하는 것이었다. 컨설턴트 경험은 이 스킬을 쌓는 데 도움이 됐다”라고 말했다.
 

4. 핵심 관리 스킬을 먼저 개발하라

엔지니어링 관리자의 핵심 스킬은 개발 팀원과는 매우 다르다. 일반적으로 관리자는 관리자 개인의 코드 기여도가 아니라 팀의 업무 만족도와 성과에 따라 평가된다. 아틀라시안의 니오는 IT 기업의 엔지니어링 관리자에게 필요한 수평적으로 연관된 10가지 스킬과 속성을 언급했다. 이 목록에는 재무 및 인력 분석과 같은 기초적인 역량도 포함되지만, 융통성, 기업가 정신과 같은 모호한 스킬도 있었다.

트위터의 캘드웰은 팀원들을 보살피고 예측 가능한 성과와 품질 수준으로 이들을 이끄는 역량 외에 고차원적인 통찰력도 지녀야 일급 관리자가 될 수 있다면서 “관리자는 단순히 실행하는 것이 아니라, 기업이 어떤 것에 접근하는 이유와 방법에 관한 전략과 비즈니스에 대한 이해도 겸비해야 한다”고 말했다.

문화를 만드는 측면도 있다. 마운더는 경쟁 신용 평가 기관인 익스피리언(Experian)에서 근무할 당시 조직 철학 교수인 다미안 휴즈의 말에 강한 인상을 받았다. 그는 마운더에게 “리더의 역할은 단 하나, 사람들이 번성하는 조직을 만드는 것이다. 나머지는 쉽다”라고 말했다. 마운더는 이 목표를 달성하기 위해 팀 내에서 누구도 질문하기를 부끄러워하지 않도록 하는 데 공을 들였다. 그는 “내향적인 사람들이 많은 기술 분야에서는 쉽지 않은 일이었다. 사람들이 즐거운 마음으로 일하고 자신이 책임지는 일을 이해하는 환경을 만들어야 한다. 나머지는 간단하다”라고 말했다.
 

5. 커뮤니케이션을 마스터하라

모든 유형의 리더에게 가장 중요한 스킬은 당연히 커뮤니케이션이다. 마운더는 “팀과의 커뮤니케이션이 가장 중요하다. 그래야 팀이 내가 하는 말을 신뢰하고 이를 달성하고자 노력한다. 리더가 되기 위해서는 사람들이 나를 따르고 싶어 하도록 해야 하지만 피어 그룹 역시 이 여정에 동참해야 한다. 많은 엔지니어가 그렇듯이 나도 개발에 집중했을 당시에는 커뮤니케이션 스킬이 부족했다. 하지만 배우면 된다”라고 말했다.

VM웨어의 코테는 "유능한 관리자는 우선순위를 정확히 파악하고 비즈니스 요구사항과 기술적 실현 가능성 사이에서 균형을 잡는 능력을 갖춰야 한다. 여기서 커뮤니케이션 능력이 정말 유용하다”라고 말했다. 사이레넘의 클라라는 “사람들과 공감하고 기술적 관점과 비기술적 관점에서 모두 이야기할 수 있는 것이 중요하다. 결국 관리자가 하는 일은 사람을 관리하는 것이고, 여기에는 설명서가 없으므로 스스로 학습해야 한다. 이 과정은 어려울 때도 있고 시행착오도 겪게 되지만 중요한 경험이다”라고 말했다.
 

6. 경계를 설정하라

엔지니어링 관리자에게 또 다른 중요한 스킬은 엔지니어를 위한 경계를 설정해 솔루션을 구매하기보다는 스스로 만드는 쪽으로 기울거나 신선하고 새로운 기술에 쉽게 현혹되는 이들의 자연스러운 성향을 억제하는 스킬이다. 오카도의 트레인은 “최근 한 관리자는 나에게 볼링장의 범퍼 레일이 돼 팀원이 옆으로 빠질 걱정을 할 필요 없이 종일 핀을 쓰러트리는 데만 열중할 수 있도록 하라는 말을 했다. 그 균형이 핵심이다. 항상 번지르르한 일만 할 수는 없다”라고 말했다.
 

7. 기업 내에서 주목받도록 행동하라

관리직을 염두에 두고 있다면 팀 내에서 그러한 성향과 역량을 보여주는 것만으로는 부족할 때가 있다. 조직 내 적절한 사람들의 관심을 끌어야 한다. 코테는 “진전하기 위해서는 나를 진전시켜줄 사람들이 나의 존재를 알아야 한다. 스스로를 마케팅하고 팀원에게도 스스로를 마케팅하도록 독려하는 것이 좋다. 강연하거나 문서를 배포하고 뭔가를 발표하라. 유능한 관리자는 팀원이 자신이 하는 일에 관해 이야기하도록 적극적으로 독려한다”라고 말했다.

소프트웨어 자동화 전문기업 셰프(Chef)의 엔지니어이며 UI 팀장인 샤데 홈즈는 "관리직으로 진출하는 과정에서 눈에 띄는 일을 더 많이 해야 했다. 나만의 기술 영역 안에 머물러서는 기술 리더십 분야에서 더 많은 일을 하고 싶다는 의사를 충분히 전달할 수 없었다”라고 말했다. 결국 대면, 그리고 디지털 채널을 통한 적극적인 소통 의지가 중요하다. 피드백을 주고 새로운 위원회와 그룹에 참여하고 멘토를 찾고 더 폭넓은 비즈니스를 이해할 수 있는 위치로 스스로 들어가는 것 등이 모두 주목받기 위한 중요한 방법이다. editor@itworld.co.kr

X