Skip to content

도서 리뷰 시리즈 - 개발 7년차, 매니저 1일차 ​

출처 ​

카미유 푸르니에. 『개발 7년차, 매니저 1일차』. 권원상, 한민주(역). 한빛미디어, 2020.

한 줄 리뷰 ​

리더라면 동료들을 위해 꼭 읽어봐야 할 도서

3장 테크리드 ​

테크리드는 팀의 규모를 키울 수 있는 능력 있는 기술 프로젝트 매니저가 되기 위해 노력해야 한다. 관리 및 리더십이 필요한 상황을 다루는 방법을 배운다. 그리고 제품, 분석 및 다른 비즈니스 담당자들과 효과적으로 협력하는 방법을 배운다.

테크리드에게는 기술 전문성 이상으로 사람을 다루는 기술이 필요하다. 그리고 또 다른 중요한 기술인 프로젝트 관리 기술이 필요하다. 프로젝트를 세분화하는 작업은 시스템을 설계하는 것과 유사점이 많다.

모든 훌륭한 테크리드가 아는 한 가지 비결 ​

테크리드가 된다는 것은 소프트웨어에 대해 많이 알고 있으며, 프로젝트에서 더 큰 책임을 질 수 있을 만큼 성장했다고 인정받았다는 의미다.

프로젝트 관리 업무와 기술적 결과물을 만드는 일 사이에서 '균형 잡기' 기술을 배워야 한다. 자율성을 가지고 언제 일할지 선택하고 싶다면 시간을 잘 다룰 줄 알아야 한다.

테크리드의 주요 역할 ​

테크리드가 가장 우선시해야 하는 것은 프로젝트를 계속 진행할 수 있도록 넓은 관점에서 업무를 조망하는 것이다.

  • 시스템 아키텍트 및 비즈니스 분석가
    • 변경이 필요한 핵심 시스템과 프로젝트 결과로 제공하고자 하는 핵심 기능을 파악
    • 업무에 대한 예측과 우선순위를 근거로 대략적인 구조를 만드는 것이 목표
    • 시스템 전반의 아키텍처를 이해하는 감각과 복잡한 소프트웨어를 설계하는 방법
  • 프로젝트 기획자
    • 프로젝트를 작은 단위로 나누어 대략적인 결과물로 정리
    • 팀이 빠르게 작업할 수 있도록 업무를 작은 단위로 나누는 효율적인 방법을 찾아야함
  • 소프트웨어 개발자 및 팀 리더
    • 코드를 작성하고 문제를 공유하며, 권한을 위임한다.
    • 테크리드가 새 기능을 개발하기 위해 과로하기 십상인데, 이는 때로 팀이 실패하는 원인이 되곤 한다.
    • 직접 빌드하고 싶은데 시간이 없다면 그 일을 다른 사람에게 위임할 줄도 알아야 한다.

훌륭한 테크리드가 되는 방법 ​

아키텍처 이해하기 ​

지원해야 할 아키텍처에 관해 충분히 이해하지 못했다는 느낌이 든다면 시간을 투자해야 한다. 다음 세 가지를 해보자.

  • 첫째, 아키텍처에 대해 학습하여 감을 잡고 시각화해본다.
  • 둘째, 데이터가 어디에 있고, 어떻게 흘러가는지 파악한다.
  • 셋째, 제품의 핵심 로직은 어디고, 이 부분이 어떻게 반영됐는지 이해한다.

팀 플레이어 되기 ​

충분한 역량이 있는 시니어 개발자가 다른 어려운 작업을 맡는 게 더 합리적이다. 다른 팀원이 전체 시스템을 배우고 역량을 키울 수 있도록 배려하는 의미에서라도 늘 혼자서 감당해서는 안 된다. 업무를 잘 처리할 시간적 여유가 있다면 때때로 즐거운 일도 맡아서 하라.

기술 결정을 주도하기 ​

팀의 가장 중요한 기술적 결정을 주도해야 한다. 하지만 팀을 배제하고 혼자서 모든 결정을 내려도 된다는 의미는 아니다. 팀원의 의견을 구하지 않고 모든 기술적 결정을 혼자 내리기 시작하면, 일이 잘 안 될 때 팀원들은 테크리드를 원망하고 비난할 것이다. 반대로 기술적 결정을 하지 않고 모든 것을 팀원들에게 맡기면 신속하게 결정할 수 있는 것도 해결되지 않고 지연될 것이다.

의사소통 ​

이제는 팀의 생산성이 당신의 생산성보다 더 중요하다. 많은 경우에 의사소통으로 인한 비용이 든다는 의미다. 모든 팀원이 회의에 참석하는 대신 당신이 팀을 대표해서 팀원들의 요구사항을 전달하고, 회의 결과를 공유해야 한다. 성공한 리더에게 보편적인 특성 중 하나는 의사소통 능력이다.

회의에 주의를 기울이고 자신과 팀의 지식 한계를 끊임없이 시험한다. 다른 사람과의 의사소통과 경청을 잘못하면 더 이상 성장하기 어렵다.

4장 사람관리 ​

  • 매니지먼트 업무로 전환하는 과정에서 중점을 두어야 할 것
    • 자신의 매니지먼트 스타일을 깨닫는 것
    • 팀은 팀원 개개인의 상태만큼 건강하며
    • 팀원 하나하나를 관리하는 매니저로서 당신이 각 팀원들에게 큰 영향을 미치기 때문
  • 다음은 사람 관리에 필요한 주요 업무다
    • 새로운 보고 체계 만들기
    • 정기적으로 원온원 미팅하기
    • 경력 성장, 목표 달성, 개선된 영역 및 근거 있는 칭찬 등 정기적인 피드백 하기
    • 팀원이 학습할 영역을 찾고 프로젝트 업무, 외부 교육이나 멘토링 등을 통해 성장 돕기

새로운 팀원과 관계 맺기 ​

어떻게 해야 새로운 사람을 빨리 파악하고 잘 관리할 수 있을까?

신뢰 관계 구축하기 ​

한 가지 전략은 새로운 관리해야 하는 사람의 개인적 특성을 파악하기 위한 질문을 하는 것

예를 들면 이런 질문이다 ​
- 칭찬은 어떻게 받고 싶습니까? 공개적으로 아니면 비공개적으로?
- 진지한 피드백을 어떻게 하면 될까요?
- 피드백을 받아들일 시간이 필요하면 문서로 할까요? 아니면 비공식적인 구두 형태의 피드백이 괜찮을까요?
- 왜 이 팀에서 일하기로 했나요? 어떤 점이 흥미가 있었어요?
- 기분이 나쁘거나 짜증 나면 어떻게 표현하나요? 당신의 기분을 상하게 하는 것 중 제가 알아야 할 것이 있나요?
- 당신이 싫어하는 '팀장의 행동'이 있나요?
- 당신의 경력 목표 중 제가 도울 수 있는 것은 무엇인가요?
- 팀에 합류한 뒤 좋은 의미든 나쁜 의미든 놀랐던 점 중 제가 알아야 할 것은 무엇인가요?

신규 직원용 문서를 갱신하며 팀 업무에 참여시키기 ​

  • 실제로 많은 개발 팀에서 신규 직원이 팀에 적응하는 과정의 일부로 신규 팀원용 기존 문서를 갱신하도록 한다.
  • 신규 팀원은 팀에서 관련된 프로세스와 도구에서 변경된 부분을 파악하여 기존 문서에 반영한다.
  • 이 과정을 통해 팀원 모두 프로세스를 다시 숙지하는 계기를 만들 수 있다.

관리 스타일과 기대 사항 소통하기 ​

  • 신규 직원도 팀장이 기대하는 바와 팀장의 스타일을 이해할 필요가 있다.
  • 직원도 팀장이 무엇을 기대하는지 알지 못하면 어떤 결과를 얻어야 할지 알 수 없다.
  • 상대에 대한 기대 사항에는 구체적인 내용이 포함되어야 한다.
    • 얼마나 자주 만날 것인지
    • 서로 정보를 어떻게 공유하고 신규 직원의 업무를 얼마나 자주 검토할지

신규 직원의 피드백 받기 ​

  • 신규 직원의 시각으로 관찰한 팀에 대한 피드백을 가능한 한 많이 받으라는 것
  • 기존 팀원의 눈에는 보이지 않는 팀의 모습을 새롭고 다른 시각에서 볼 수 있는 아주 귀한 시간이다
  • 기존 팀원에게 공격하는 것처럼 들리지 않도록 팀의 프로세스와 시스템 비판은 장려하지 않도록 한다