본문 바로가기

관심사/독후감

<타냐 라일리> 개발자를 넘어 기술 리더로 가는 길: 빅 피처 관점의 사고력

 
 

✍🏻 밑줄 그으며 책읽기

스태프 엔지니어의 역할

  • 빅피처 관점: 가능한 것들을 이해하고, 좋은 판단력을 지니는 것 
  • 성공적인 프로젝트 실행력: 내놓은 해결책이 실제로 문제를 해결할 수 있어야한다.  
  • 롤 모델 역할: 공유하는 의견이 코드와 아키텍처를 실제로 더 좋게 만들어야 한다. 제안한 의견이 옳아야하기 때문이다. 기술적 지식은 모든 스태프 엔지니어의 기본 소양이기 때문에, 해당 역량을 키우기 위해 지속적으로 노력해야 한다. 

필요한 리더십 역할

  • 커뮤니케이션 및 리더십
  • 복잡한 문제 탐색하기 
  • 업무상 관점 제시하기 
  • 멘토링, 후원, 위임하기 
  • 다른 사람들이 관심을 갖도록 문제 구성하기 
  • 리더가 아니어도 리더처럼 행동하기 

빅 피처 관점의 사고력

왜 스태프 엔지니어인가?

시니어 단계에서 꾸준히 자기 계발을 지속하면 '기술 전문 리더십'수준에 도달할 수 있다. 이러한 사람을 '스태프 엔지니어'라고 부른다. 시니어 엔지니어는 스태프 엔지니어 혹은 매니저가 되는 길을 선택해야한다. 이 때, 원하는 길에 맞는 스킬을 학습해야한다. 스태프 엔지니어와 매니저는 동급이다. 

 

직함의 중요성

직함은 다음과 같은 이유로 아주 중요하다. 

  • 구성원들이 자기 경력을 잘 쌓고 있는지를 스스로 인지하도록 만들어준다.
  • 구성원들에게 권위를 부여할 수 있다. 
  • 직책별 기대치를 외부에 손쉽게 알릴 수 있다.

빅 피처 관점에서 엔지니어가 필요한 이유

일반적으로 개별 팀은 기업 차원에서 생각하기 보다는 개별 팀의 목표를 달성하는 데만 집중한다. 개별 팀에서는 최상의 결정 (로컬 최댓값: local maximum에 의존해서 내리는 결정)이라 해도, 전사 관점에서는 최상의 결정이 아닐 수 있다. 이를 피하려면 여러 팀의 목표를 고려하고, 조직 전체적인 관점에서 좋은 결정을 내릴 수 있는 의사결정자가 필요하다. 작은 기업에서는 최고 기술 책임자가 모든 결정의 세부사항에 깊이 관여할 수 있다. 그러나 이런 기업이라면 스태프 엔지니어가 필요하지 않을 수 있다. 
매니저가 관리 분야와 기술 분야 모두를 담당한다면 기술적인 면에서는 판단력이 떨어질 수도 있다. 게다가 팀원이 생각하기에 더 나은 해결책이 있다해도, 매니저의 권위 때문에 기술 결정에 이의를 제기하는 데 불편함을 느낄 수도 있다. 좋은 매니저가 되는 데 모든 시간을 쏟아붓는 사람이라면 기술 스킬을 높이는 데에 시간을 할애하지 못할 수 밖에 없다. 관리가 아니라 소위 '잡일'을 하는 데 많은 시간을 쓰는 사람은 팀원의 요구를 충족해줄 수 없다. 팀의 니즈와 기술 전략의 니즈 양 측면이 다 필요한 상황이라면 매니저는 어디에 집중할 지 선택해야 한다. 

이러한 이유로 많은 기업에서 기술 전문 리더십과 관리 리더십 경력 사다리를 별도로 설정하는 이유다. 기업 내에 충분한 경험을 쌓은 엔지니어가 있다면, 모든 결정을 최고 기술 책임자나 매니저가 내릴수록 비효율이 증가한다. 대신 엔지니어게 충분한 시간과 맥락, 권한을 주면 더 나은 결과를 얻을 수 있다.  

여러 팀과 협업하며 프로젝트를 이끄는 엔지니어가 필요한 이유

여러 팀과 협업해야하는 프로젝트에 관여하는 팀은 복잡하고 현실적인 어려움이 있다. 

  • 설계 문서를 자세히 들여다보면 가장 중요한 의사결정을 연기했거나 거부한 경우도 있다.
  • 더 중요한 프로젝트를 고려하여 내린 의사결정이 있을 수 있다. 
  • 예상치 못한 의존성 발견될 수 있다.
  • 팀 간의 명확한 업무 분담 및 경계로 인한 아키텍처 중복이나 차이가 발생할 수 있다.
  • 레거시 코드를 살펴보고, 아무것도 바꾸고 싶어 하지 않는 팀과 협상해야하고, 수년 전에 퇴사한 엔지니어의 의도를 파악해야하는 작업을 해야할 수도 있다. 
  • 어떤 경우에는 무엇을 바꿔야 하는지 알아내는 것조차 어렵고, 어떤 일을 해야하는지 온전히 파악되지 않는 상황도 발생한다. 

이 때 프로젝트를 올바르게 진행하는 방법은 지엽적인 부분보다 전체적인 그림을 볼 수 있는 사람을 팀에 두는 것이다. 이런 사람은 프로젝트를 시작하기 전부터 작업 범위를 설정하고 제안서를 작성한다. 그리고 프로젝트를 시작하면 상위 시스템의 아키텍트 역할을 맡거나 주요 의사소통 담당자를 맡을 가능성이 크다. 이들은 프로젝트 진행 프로세스에서 일어날 만한 위험을 예측해서 대비하고, 경력을 바탕으로 심도 있는 질문을 이끌어낼 수 있도록 높은 수준의 엔지니어링을 유지한다. 그리고 멘토링이나 코칭을 담당하거나, 프로젝트에서 개별 주도권을 확립해 기업의 모범 사례가 되기도 한다. 프로젝트 내외적인 부분을 살펴서 무슨 일이 일어나는지 파악하고, 비전을 다른 직원들에게 설명하고, 궁극적으로 프로젝트를 통해 달성할 수 있는 과업과 영향을 이야기한다. 


TPM (Technical Program Manager)과 스태프 엔지니어의 차이

TPM은 설계나 품질보다는 업무 완료에 초점을 맞추어 일을 진행한다. TPM의 주 업무는 프로젝트를 제시간에 완료하도록 관리하는 것이다. 반면, 스태프 엔지니어는 높은 품질의 엔지니어링으로 프로젝트를 완료하는 것이다. 

 

단어사전

권위: 가치의 우위성을 공인시키고 영향력을 행사할 수 있는 능력이나 위신