Skip to content

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

출처

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

한 줄 리뷰

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

3장 테크리드

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

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

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

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

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

테크리드의 주요 역할

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

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

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

아키텍처 이해하기

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

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

팀 플레이어 되기

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

기술 결정을 주도하기

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

의사소통

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

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

4장 사람관리

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

새로운 팀원과 관계 맺기

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

신뢰 관계 구축하기

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

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

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

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

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

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

신규 직원의 피드백 받기

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