Chapter 1. 무엇인 효과적인 팀을 만드는가?
1.1 팀 효과성에 관한 연구
1.1.1 아리스토텔레스 프로젝트
팀의 역학관계: 인구학적 특색, 갈등 해결 기술, 목표 설정, 심리적 안전감
성격적 특성: 외향성, 성실성
기술: 프로그래밍 능력, 고객 관리 능력
팀이 안전하다고 느껴질수록:
- 회사를 떠날 가능성이 낮습니다.
- 팀에서 논의한 다양한 아이디어를 더 많이 활용하고자 합니다.
- 더 많은 매출을 올리고, 판매 목표액을 넘어서기까지 합니다.
- 효과성 측면에서 상부로부터 높은 평가를 받기도 합니다.
신뢰성: 팀원들이 서로를 의지할 수 있다고 믿는 팀은 더 효율적이고 효과적으로 업무를 수행하느 경향이 있다.
쳬계와 명확성: 프로젝트의 목표에서부터 그에 따른 개인의 역할과 책임을 명확하게 이해하고 있는 상태. 자신에게 기대하는 것을 명확히 이해하는 팀원은 생상적이고 집중력이 높은 경향이 있다.
의미: 팀원들이 자신의 업무가 의미 있고 목적의식을 가진다고 느끼는 정도를 나타낸다. 목적의식이 강한 팀은 동기부여가 잘 되어 있으며 더 열정적인 경향이 있다.
영향력: 팀원들이 자신의 업무가 조직이나 사회에 어떤 차이를 만들고 영향을 미치고 있다고 믿는 것: 강한 영향력을 느끼는 팀은 자신의 업무와 프로젝트의 성공에 더욱 헌신하게 된다.
1.1.2. 다른 연구들
- 작은 팀이 더 낫다.
- 다양성은 이로울 수 있다.
- 투명한 의사소통은 필수적이다.
- 리더십은 정말 중요하다.
- 기민함은 적응력을 높인다.
- 협업 공간이 혁신을 이끈다.
1.2. 동기부여가 성과를 이끌어낸다.
- 동기부여와 성과를 이끌어내는 세가지 요인:
- 자율성
- 전문성
- 목적의식
1.3. 효과적인 팀 만들기
1.3.1. 적합한 인재 모으기
- 효과성을 위한 면접과 고용
- 팀의 크기:
- 팀의 크기를 결정하는 요소: 제품, 복잡도, 기업 문화, 리더십 스타일
- 공통의 엔지니어적 사고방식
- 사용자에 대한 관점
- 뛰어난 문제 해결 능력
- 일을 단순하게 유지하되 품질에도 신경을 씀
- 시간의 흐름에 따라 신뢰를 쌓아감
- 자율성, 사회적 자본
- 팀 전략에 대한 깊은 이해
- 적절하게 우선순위를 정하고 독립적으로 업무를 수행
- 장기적인 관점에서 사고하기
- 시간이 허락하는 한 소프트웨어 프로젝트를 더 나은 상태로 개선
- 새로운 도전에 거리낌이 없음
- 효과적으로 의사소통을 할 수 있음
- 다양성과 포용성
1.3.2. 팀정신 일깨우기
- 역할 및 책임 설정하기
- 공동의 목적 정하기
- 우선순위를 정하기 위해서는 목적의식을 공유하는 것이 필요하다.
- 프로젝트의 전반적인 목적과 목표 관련하여 소통하기
- 팀원들이 아이디어와 피드백을 나누도록 독려하기
- 팀원 각자의 업무가 어떻게 다른 팀원의 업무와 조화ㅡㄹ 이루고, 어떻게 프로젝트의 ㅗㄱ표달성에 기여하는지 확신 심어주기
- 팀원 간의 신뢰 구축하기:
- 팀 내에서 신뢰를 쌓기 위해서 다음과 같은 방법을 시도할 수 있다.:
- 열린 소통과 피드백 주고받기를 장려하세요.
- 팀원들이 서로를 개인적으로 알아갈 수 있는 기회를 제공하세요.
- 프로젝트 목표와 일정을 투명하게 공유하세요.
- 팀워크와 협업을 장려하세요.
- 팀 내에서 신뢰를 쌓기 위해서 다음과 같은 방법을 시도할 수 있다.:
1.3.3. 효과적으로 리더십 발휘하기
효과적인 리더가 수행할 책임들:
- 모든 팀원이 효과적으로 업무를 완수할 수 있도록 필요한 도구나 자원을 갖추게합니다.
- 여러분의 경험을 활용하여 문제가 생길 가능성이 이쓴 곳을 파악하여, 장차 큰 문제로 커지기 전에 미리 대처할 수 있도록 통찰력을 제공합니다.
- 효과적인 의사소통을 위한 도구와 절차를 사용하여 명확한 의사소통 경로를 마련합니다.
- 팀 회의, 업무 현황 업데이트, 진행 상황 보고를 통해 정기적으로 의사소통합니다. 의사소통은 적시에, 투명하게, 포용적으로 이루어져야 합니다.
전략적 가시성:
- 리더로서 해야한것:
- 더 큰 목표에 일치시키기
- 팀의 고유한 강점을 이용하기
- 효과적으로 소통하기
- 근면성실뿐만 아니라 영향력에도 초점을 맞추기
- 업무에 대한 이야기 만들기
- 중요한것: 기술 산업에서 눈에 띄지 않는다고 해서 가치가 없다는 뜻이 아니다. 때론 자신의 가치를 보여주기 위한 전략적인 접근 방법이 필요하다.
- 리더로서 해야한것:
1.3.4. 성장 지향적인 문화로 효과성을 계속해서 이어가기
- 학습과 성장 기회
- 기민함
- 애자일 방법론 중시하기
- 교차기능 간 협업 장려하기
- 의사소통의 중요성을 강조하기
- 적응의 문화 조성하기
- 지속적 통합 및 배포 구현하기
- 끊임없는 발전:
- 끊임없는 학습 장려하기
- 성과 측정과 관찰하기
Chapter 2. 효율성 vs 효과성 vs 생산성
2.1. 효율성, 효과성, 생산성의 차이점
2.1.1. 목표
- 효율성: 낭비를 최소화하고 결과물을 극대화할 수 있도록 일을 올바르게 하는것
- 효과성: 올바른 일을 하고 적절한 성과를 내는것
- 생산성: 효율성의 하위 개념으로, 투입 대비 산출량
2.1.2. 측정방법
- 생산성응 투자대비 결과물을 측정한다.:
- 코드 줄수, 기능점수, 스토리 포인트, 데브옵스 지표
- 효율성:
- 시간, 리소스 활용, 버그 수정률, 결함 밀도, 품질
- 효과성:
- 고객 만족도, 비지니스 가치, 사용자 채택률, 투자자본수익률, 시장 출시 속도
2.1.3. 영향 요인
- 팀 규모
- 다양성
- 역할 명확성
- 의사소통
- 업무 환경
- 도구 및 기술적 고려사항
- 코드 상태
2.2. 성과 vs 결과물
- 결과물: 엔지니어링 작업으로 만들어진 산출물
- 성과: 수행한 업무의 실제 결과
2.2.1. 결과물 및 성과 측정 방법
- 결과줄 관련 지표:
- 작업량, 속도, 품질, 정원, 코드 사앹
- 성과 관련 지표:
- 비지니스 가치, 투자 비용, 사용자 채택률
2.2.2 결과물보다 성과에 집중하기
- 생산성 측정의 함정:
- 정확한 측정의 어려움
- 가치 없는 과잉 생산
- 합리적이지 않은 마감일
- 번아웃
- 결과물에만 집중하면 수박효과가 발생한다.
- 수박 효과: 결과물이 정해진 목표를 달성하여 표면적으로 지표는 초록색이지만, 그 속은 빨간색인 상황을 지칭하는 용어이다.
- 예시:
- 작성된 코드 줄수는 많을수 있지만, 너무 많은 코드를 작성한다는 것은 버그, 기술 부채 및 성능 문제로 이어질 수 있는 비효율적인 코딩 관생을 따르고 있음을 나타내기도 한다.
- 버그의 심각성이나 재발 빈도를 고려하지 않고, 단순히 수정된 버그의 수만을 측정하는 것은 소프트웨어의 품질을 정확하게 나타낻지 못할 수 있다.
- 제공된 기능의 수가 서류상으로는 긍정적인 지표로 보일 수 있지만, 만약 고객의 요구사항을 충족하지 못하는 낮은 가치의 기능이라면 이는 거짓 양성 지표이다.
2.3. 효과적인 효율성
- 효과적으로 효율적인 팀이 되기 위해서 필요한것은:
- 일을 올바르게 수행하세요.
- 올바른 일을 하세요.
- 이상적으로는, 올바른 일을 올바르게 수행하세요.
2.3.1. 초심자를 위한 효과적인 효율성
- 효과적인 효율성을 달성하는 방법:
- 질문을 통한 접근
- 표준 준수
- 협력하기
- 적절한 도구 사용하기
2.3.2. 절충안을 찾기 위한 노력
- 효율성을 위한 일이 효과성을 해칠 수도 있다.:
- 기술 선택, 테스트, 프로젝트 일정, 예산, 장기적인 유지보수성, 사용자의 요구
2.3.3. 팀 생산성을 보는 다른 시각
깃허브의 사례:
- 사용자의 피드백을 받는 데 걸리는 시간
- 비동기적 의사소통
- 집중 작업 시간대
- 새로운 문제 해결
- 코드 작성과 버그 수정
- 보안과 취약점
- 역량 강화
- 자동화 테스트
- 컨텍스트 스위칭
- 주관적 웰빙
- 회의 문화
팀 수준에서는 다음 두가지 기법으로 현실적이며 관련성 있는 생산성 지표를 정의할 수 있다.
- 목표-질문-지표(GQM):
- GQM(Goal-Question-Metric) 접근법은 소프트웨어 조직 전반에 걸쳐 목표 지향적인 측정을 중시하는 방법론입니다. 이 접근 법은 프로젝트의 목표를 간명하게 나타내는 여러 목표들로 설정한 다음, 이러한 목표들을 달성하기 위해 진행 상황을 점검할 수 있는 일련의 지표를 정하는 것입니다. 이때 사용하는 지표는 구체적이고, 측정 가능하며, 목표와 연관성이 있어야한다. 여기에는 코드 품질, 프로세스 효율성, 팀 성과와 같은 생산성과 관련된 지표도 포함시킬 수 있다.
- 목표와 핵심결과(OKR):
- OKR(Objectives and key results)는 많은 기업이 조직의 거시적인 전략적 목표와 팀 및 개인적 목표를 연결하기 위해 사용하는 실용적인 목표 설정 프레임워크입니다. OKR 프레임워크는 구체적이고 측정 가능한 목표를 설정하며 그 목표를 달성하기 위한 방법을 평가하고 관찰하기 위한 핵심 결과를 선정합니다.
- 목표-질문-지표(GQM):
2.3.4. 효과성과 효율성 사이의 균형
- 두 목표는 상호 배타적일 필요 없이, 이상적인 균형점을 찾기 위한 세가지 핵심요인:
- 전략, 지표, 결단과 행동
2.3.5. 일상에서 효과적으로 효율성을 달성하는 매일매일의 팁
- 효과성에 우선순위를 두기
- 성과에 집중하기
- 지표 활용하기
- 협업 장려하기
- 팀원에게 권한 부여하기
- 끊임없는 발전
2.4. 결론
- 용어들 간의 미묘한 차이를 이해하고, 효율성, 효과성, 생산성 사이의 균형을 신중하게 조절해야한다.
Chapter 3. 효과적인 엔지니어링을 위한 3E 모델
- 3E 모델:
- Enable, Empower, Expand
3.1. 활성화
3.1.1. 비지니스 유형과 팀의 크기에 따른 효과성 정의
- 팀의 목표와 과제 파악하기
- 성공을 측정하기 위한 관련 지표 결정하기
- 각 지표에 대한 목표 설정하기
- 성과 측면에서 효과성 정의하기
- 핵심 이해관계자를 정의 과정에 참여시키기
- 데이터와 분석 결과를 사용해서 정의를 뒷받침하기
- 정의를 간결하고 명료하게 유지하기
- 정의를 정기적으로 검토하고 필요에 따라 수정하기
3.1.2. 효과성에 시동걸기
- 의사소통
- 훈련과 교육
- 측정
- 피드백
- 보상 및 인정
- 팀이 표준을 정하도록 권한 부여하기
- 핵심 기술 가다듬기
- 서번트 리더십 실천
3.2. 권한과 자율성 부여
3.2.1. 기회는 살찌우고 문제는 굶기기
기회 살찌우기: 팀 및 팀원의 성장과 성공을 위해 필요한 자원, 지원, 기회를 제공함으로써 성공에 몰두할 수 있는 환경을 조성하는 것이다. 이는 개개인의 잠재력을 극대화하고 자신의 모든 능력을 발휘하는데 초점을 맞춘다. 각자의 강점과 취향에 맞는 활동 또는 프로젝트에 참여를 독려하거나 역할을 맡기는 것도 포함한다.:
- 꼼꼼한 사람에게 품질 보증 업무를 맡기거나 창의적인 사람에게 디자인 관련 업무를 맡기기
- 기술력, 리더십 개발, 특정 분야의 전문성과 같은 개인의 강점을 발굴하고 다듬을 수 있도록 훈련, 워크숍, 멘토링 프로그램 제공하기
- 팀원들이 서로의 강점을 활용할 수 있도록 교차기능 팀을 구성하고, 각자의 강점으로 부족한 점을 보완하며 프로젝트를 진행할 수 있도록 지원하기
문제 굶기기: 효과성을 저해하는 장애물, 문제들, 비효율성의 영향력을 최소화한다.
- 정기적인 프로세스 감시와 팀원으로부터 피드백 수집을 통해 현재 프로세스의 병목 지점과 비효율성을 파악하고 개선 시행하기
- 팀 내의 충돌이나 문제를 즉각적으로 처리하여 부정적인 영향력 최소화하기
- 팀의 업무를 효율적으로 완수할 수 있도록 충분한 인력, 도구, 기술 같은 필요한 자원을 확보하여 불필요한 일정 지연과 좌절감 방지하기
지속적 배포와 피드백 순환고리
칸반보드
위임, 권한과 자율성 부여
3.2.2. 개인적 수준에서 효과성을 추구하기 위한 노력
- 회피수단이 아닌 도구로써 위임 활용하기
- 신뢰와 투명성에 기반한 문화 조정하기
- 지휘통제를 능가하는 프로세스 최적화 활용
- 시간이 어디로 흘러가는지 파악하기
- 오직 여러분만이 조직을 위해 기여할 수 있는 일에 집중하기
- 자신의 강점, 동료의 강점, 팀의 강점을 기반으로 발전하기
- 탁월한 성과를 가져올 몇가지 주요한 분야에만 집중하기
- 효과적인 의사결정 내리기
3.2.3. 팀 효과성 모델 적용하기
- 팀 효과성 모델: 높은 성과를 거두는 팀을 만들기 위해 필요한 요인을 체계적으로 이해하고 평가하는 방법을 제시하는 프레임워크와 이론
- 렌시오니 모델:
- 신뢰의 결핍
- 충돌의 두려움
- 헌신의 결핍
- 책임의 회피
- 결과에 대한 무관심
- 터크만 모델:
- 형성 단계
- 격동 단계
- 규범 단계
- 성과 단계
- 해산 관계
- 모델 하나를 골라 꾸준히 활용해야한다.
3.2.4. 효과성 극대화
- 적합한 도구와 프로세스 활용하기
- 회의 축소 및 팀 보호하기
- 경영진의 지지와 자원 확보
- 추가적인 팁:
- 우수한 인력 채용과 인재 육성에 투자하기
- 팀의 성장과 효과적으로 규모를 확장하기 위한 계획 수립하기
- 기본적인 도구를 재발명하기보단 핵심 비지니스 가치에 집중하기
- 자신의 진로와 우선순위에 대해 주의 깊게 고려하기
- 멀티플라이어: 주변 사람들의 지능, 능력, 헌신을 증폭시켜주는 리더
- 디미니셔: 자신도 모르게 팀원의 역량과 잠재 능력을 억누른다. 디미니셔는 권력을 독점하고, 모든 결정을 혼자 내리며, 팀의 자율성과 자신감을 떨어뜨린다. 또한 의도치 않게 의존성 문화를 조성해 팀원의 성장과 성과를 둔화시키도 한다.
3.2.5. 레버리지가 높은 활동 파악하기
- 개인적 레버리지: 더 적은 노력으로 더 많은 업무를 처리하게 도와주는 도구, 기술, 지식을 의미한다.
- 조직적 레버리지: 더 적은 시간과 자금으로 더 많은 성과를 이룰수 있게 도와주는 팀과 조직 구조를 의미한다.
3.2.6. 구글에서 얻은 교훈
- 표준화와 공유
- 재사용
- 올바른 것을 자동화하기
3.3. 확장
- 신뢰를 통한 권한 부여하기
- 효과적으로 위임하기
- 의사소통 최적화하기
- 자율성의 문화 조성하기
- 우선순위와 범위 설정하기
- 리더 멘토링과 육성하기
- 팀 운영에 대한 성찰하는 습관 키우기
3.3.1. 리더십이 직면한 도전 과제
- 결국 사람이다
- 기술 전문성은 부차적인 이야기이다.
- 영역이 확장됨에 따라 여러분의 자리는 사라진다.
- 방해 요소와 복잡한 문제가 더 많아진다.
3.3.2. 리더십의 영원한 세 가지 원칙
- 늘 결정하라:
- 눈가리개 찾기
- 핵심 절충안 파악
- 결정하고 반복하기
- 늘 떠나라:
- 문제 공간 분할하기
- 하위 문제를 다른 리더에게 위임하기
- 조율하고 반복하기
- 늘 확장하라:
- 중요한 일 vs 급한 일
- 공 떨어뜨리기:
- 하위 20%는 긴급하지도, 중요하지도 않아 쉽게 없애거나 무시할 수 있다.
- 중간 60%는 어느정도 긴급하기도 하고, 중요하기도 하다. 두 특성이 섞여있다.
- 상위 20%는 절대적으로 극도로 중요하다.
- 에너지 관리하기
3.4. 결론
- 무엇이 효과적인 팀을 만드는지, 효율성, 효과성, 생산성을 구분하고 측정하는 방법은 무엇인지, 결과물보다 성과에 초점을 맞추는 것이 왜 중요한지, 3E 모델을 활용해서 성장하는 조직에서 지속적으로 효과성을 달성하는 방법
Chapter 4. 효과적인 관리행동: 구글의 연구
4.1. 옥시젠 프로젝트
- 좋은 코치로 행동하기:
- 적절한 시기에 심사숙고를 거친, 구체적이며, 건설적인 피드백 제공하기
- 다른 사람이 명확히 이해하고 그대로 실행할 수 있는 가이드와 업무에 대한 기대사항 제시하기
- 직속 부하직원과 정기적인 일대일 미팅을 통해 성과에 대해 조언해 주고 경력 목표에 대해서도 상담하기
- 각 개인의 강점, 동기부여, 발전이 필요한 영역에 맞춰 코치해주기
- 좋은 질문을 통해 사람들이 각자 가지고 있는 의견에 대해 심사숙고할 기회를 제공하고, 답변을 적극적으로 들으며 의견의 근거에 대해서도 이해하기
- 공감 능력을 발휘하여 코치를 받는 이들이 자유롭게 의견을 표현하고, 문제점에 대해 토론하고, 조언을 구할 수 있는 안전하고 협조적인 환경 조성하기
- 긍정 강화, 높은 기준 설정, 성공에 대한 축하, 성장 지향적인 사고방식 장려와 같은 다양한 기법을 활용하여 동기를 부여하고 영감을 불러 일으키기
- 팀에 전파하고 싶은 특성과 행동을 몸소 보여주며 모범을 보이고, 진실성, 회복탄력성, 헌신, 서앚ㅇ 지향적인 사고방식을 행동으로 보여주기
- 과도하게 세세한 관리 대신 팀에 권한 부여하기
- 도전적인 과제로 업무 영역 넓히기
- 신중하고 사려 깊게 개입하기
- 자율성 장려하기
- 혁신과 신중한 위험 감수 장려하기
- 팀의 치어리더 되기
- 건설적인 피드백 제공하기
- 포용적인 팀 환경을 조성하고 성공과 웰빙에 대한 관심 표현하기:
- 새 팀원이 환영 받는다는 느낌을 가지게 만들기
- 팀 내 유대감 키우기
- 팀을 지지하는 열정적인 치어리더로 활약하기
- 예의범절을 몸소 보여주기
- 팀원들의 웰빙에 적극적으로 관심을 가지고 이해하며 지원하기
- 좋은 시절과 나쁜시절을 가리지 않고 꾸준히 지원하기
- 팀 내에 심리적 안전감 조성하기
- 생산적이며 결과 지향적으로 행동하기:
- 다양성을 갖춘 팀 만들기
- 비전과 전략을 측정 가능한 목표로 변환하기
- 팀을 체계화하고 목표 달성을 위해 자원 분배하기
- 누가 무엇을 담당하는지 명확하게 정리하기
- 팀의 장애물 제거하기
- 선견지명을 발휘하여 잠재적 위험에 대비하기
- 경청과 정보 공유에 능숙한 의사소통 전문가가 되기:
- 언제나 관심을 보여주고 호응을 하도록 노력하세요.
- 리더로부터 얻은 정보를 공유하고 그 배경과 맥락도 설명하세요.
- 진실이 불편한 상황일지라도 솔직하고 정직하게 행동하세요.
- 압박감이 클 때에도 침착함을 유지하세요.
- 다른 팀원의 말에 귀를 기울이세요.
- 경력 개발 지우너 및 성과 관리하기:
- 성과 기대치를 명확하게 소통하기
- 직원의 성과를 공정하고 공평하게 평가하기
- 성과와 보상의 연관성과 보상 체계 설명
- 경력에서 승진 이외의 다양한 가능성에 대해 조언하기
- 팀원이 회사 내에서 성장하고 변화할 수 있는 방안 지원하기
- 팀을 위한 명확한 비전과 전략 보유하기:
- 팀원에게 영감을 주는 비전과 전략 마련하기
- 팀과 회사의 비전과 전략을 일치시키기
- 비전을 만드는 과정 중심에 팀원 두기
- 비전을 명확하게 전달하여 팀의 이해를 돕고 질문을 장려하기
- 팀의 전반적인 전략이 어떻게 팀원의 업무와 맞물려 돌아가는지 설명하기
- 팀에 조언하기 위한 핵심 기술 능력 갖추기:
- 팀이 기술적 복잡성을 헤쳐 나가도록 도와주기
- 업무에서 마주치는 도전 과제 이해하기
- 기술적인 능력을 활용하여 문제 해결하기
- 비지니스 요구사항에 맞춰 새로운 기술 습득하기
- 기술/비기술직군 이해관계자 사이의 간극 메우기
- 효과적인 일대일 미팅 양식:
- 매니저:
- 관심 드러내기 - 휴가 때 팀에서 추천한 식당은 어땠어요?
- 큰 그림 제시 - 이사회에서 프로젝트 X의 파급력에 대한 극찬이 쏟아졌어요.
- 현황 파악/업데이트 - 요즘 어떻게 지내고 있나요?
- 장애물이나 걱정거리 제거 - 어떤 부분에서 도움이 필요해요?
- 포용력 - 추가로 언급하고 싶은것이 있나요?
- 나의 효과성 점검 - 제가 수행해 드려야 하는 일이지만 아직 못 해드린 일이 있나요?
- 팀원:
- 지난 주 수행한 업무: 프로젝트 Y 상황 업데이트
- 이번 주 업무 계획: 프로젝트 X 의 설꼐 문서 버전 2.0 배포
- 프로젝트 Y의 하위 프로젝트 지연 가능성 경고
- 지난 주 일대일 미팅에서 논의한 ABC 관련사항 후속 조치
- 팀 C와의 프로젝트 협업에 관해 얼마나 관심이 가는지 논의
- 매니저:
Chapter 5. 일반적인 효율성 안티패턴
5.1. 안티패턴 분류
- 개인적:
- 설명: 특정 팀원들이 보이는 특정한 성향이나 핻옹에서 비롯된다.
- 예시: 다른 사람을 지나치게 돕는 팀원이 의도치 않게 의존성을 높일 수 있다.
- 대응방안: 근본 원인을 직접 해결해야하며, 보통 안티패턴에 책임이 있는 사람이 직접 바로잡아야한다.
- 관행에서 비롯된:
- 설명: 엔지니어링 프로세스 내에서 반복적으로 발생하는 나쁜 관행이며, 프로젝트 성과에 부정적인 영향을 미칠수 있다. 대개 팀이 사용하는 작업 흐름이나 방법론, 의사소통 과정의 결함에서 발생한다.
- 대응방안: 보통 팀 리더가 주도하여 팀 전체에 대해 업무 방식을 수정하거나 의사결정을 내리고 의사소통을 하는 과정이 필요하다.
- 구조적:
- 설명: 팀원 구성 방식, 역할 할당, 협업 방식과 같이 팀의 구조적 요소를 둘러싸고 발생한다. 구조적 안티패턴을 최적화되지 않은 팀 구조로 인해 발생하는 지식 사일로, 의사소통의 단절, 불균형한 기술 분배와 같은 문제를 조명한다.
- 대응방안: 구조적 안티패턴을 파악하고 수정함 으로써 팀은 더 나은 의사소통과 공평한 기술 개발, 형법을 촉진하여 궁극적으로 보다 응집력 있고 효과적인 업무 환경을 조성할 수 있다.
- 리더십:
- 설명: 팀 리더의 행동, 결정 또는 조치에서 비롯되는 개인 차원의 안티패턴이다. 리더가 팀 협업을 방해하거나 업무 진행을 저해하고, 적대적인 업무 환경을 조성하는 비생산적인 특성을 보일때 나타난다.
- 예시: 너무 세세하게 관리하려는 리더는 의도치 않게 혁신을 저해하고 팀원들의 사기를 떨어뜨릴 수 있다.
- 대응방안: 리더십 관련 안티패턴의 무넺점은 팀의 사기와 전반적인 프로젝트 성과에 영향을 미치는 중요한 부분에서 발생한다는 것이다. 이러한 안티패턴을 인식하고 바로잡으려면 리더가 팀을 위해 중재하거나 중재하도록 안내할 수 있는 고참이나 상급자가 필요하다.
5.2. 개인적 안티패턴
5.2.1. 전문가 (The Specialist)
- 전문가의 출현:
- 프로젝트의 특정 요소를 완전히 숙달할 만큼 오래 작업한 사람
- 특정 모듈에 대해 물어볼 때마다 팀에서 언급하는 사람
- 다른 팀원들은 호기심은 있지만, 코드의 해당 부분을 건드리는 것을 조심스러워하며, 코드를 검토할 충분한 준비가 되어있지 않다.
- 코드를 개선하거나 문제및 변경 요청을 해결하기 위해 코드를 변경하는 데 자신감이 있는 사람
- 전문가가 안티패턴인 이유:
- 전문가가 팀에서 없어서는 안될 존재가 될 수 있으면, 이들이 결근할 경우 그 여파를 팀에서 두려워 하게 된다. 따라서 전문가는 팀에 실패를 가져올 수 있는 단일 장애점이 되고 팀이 이들의 존재에 지나치게 의존하게 된다.
- 전문가가 보유한 세부 지식을 문서화하는 것이 불가능하다. 지식 사일로를 초래하고, 지식 공유 세션이 실시되더라도 다른 엔지니어들은 모듈에 대한 실무 경험이 있어야만 코드가 현재 상태에 이르게 된 비지니스 로직이나 성능 최적화를 이해할 수 있다.
- 일부 전문가는 자신의 지식에 대해 고집이 세고 자신감이 지나친 나머지, 자신이 담당하는 영역의 사용성을 개선할 수 있는 중요한 피드백을 무시하기도 한다.
- 오랜 시간 동안 같은 일을 하면 개인의 전문성 성장의 한계에 부딪치게 된다. 새로운 기술을 습득할 시간적 여유나 의향이 없어져 성장이 정체될 수 있다.
- 해결방법:
- 팀원들이 다양한 분야에서 전문성을 개발하도록 장려하여 적응력과 회복탄력성을 갖춘 팀을 육성하세요.
- 전문가가 아닌 다른 엔지니어에게 변경사항 중 리부를 맡기고, 전문가는 그 변경사항에 대한 검토자 역할을 수행하도록 장려하세요.
- 전문가에게 자신이 전담하는 모듈과 관련된 예외적 사례와 자주 묻는 질문(FAQ)를 문서화하도록 권장하세요. 또한 이를 위한 지식 공유 ㅔㅅ션을 마련하는 것도 좋다.
- 전문가가 시야를 넓히고 프로젝트 내에서 관심 있는 다른 분야를 찾도록 유도하세요. 전문가의 담당 모듈과 관련된 영역부터 시작하면 그 작업에 익숙함을 느낄것입니다.
- 일대일 상담을 통해 전분가의 포부와 학습목표, 원하는 교육에 대해 물어보세요.
5.2.2. 제너럴리스트(The Generalist)
- 제너럴리스트의 특징:
- 이 엔지니어는 다양한 영역에 걸쳐 기여하기 위해 노력하며 다재다능함을 보여준다.
- 엔지니어의 참여 범위는 넓지만 이해 깊이가 깊지 않습니다.
- 엔지니어가 시작한 작업은 종종 완료를 위해 전문가에게 넘겨지게 된다.
- 유능하다는 환상은 여전히 유지되지만 실질적인 숙련도는 확보되지 않습니다.
- 해결방법:
- 제너럴리스트에게 프로젝트 전반에 걸친 일반적인 지식을 유지하면서도 숙련도를 높일 수 있는 프로젝트 내 특정 업무를 맡기세요.
- 엔지니어가 자신의 강점과 관심사에 해당하는 분야에서 전문성을 연마하는 데 집중하도록 장려하세요.
- 제너럴리스트가 전문가와 협업하여 최적의 성과를 달성할 수 있는 협업 환경을 조성하세요.
- 전문 영역 내에서 지속적으로 학습하고 숙련도를 쌓도록 장려하세요.
5.2.3. 강박적인 수집가(The Hoarder)
- 코드를 쌓는 것에 대한 문제 이유:
- 강박적인 수집가가 팀을 신뢰하지 않는다는 것을 나타낸다.
- 작업물을 공유하는 것이 안전하지 않다고 생각하는 신호일 수 있다.
- 다른 팀원들이 강박적인 수집가를 신뢰할 수 없는 상황으로 이어질 수 있다.
- 강박적인 수집가 특징:
- 엔지니어는 상당한 규모의 PR이 될 때까지 작업 업데이트를 보류한다.
- 다른 팀원들은 강박적인 수집가가 진행 중인 작업을 거의 알지 못합니다.
- 강박적인 수집가가 만든 상당한 규모의 PR에 대한 코드 리뷰는 시간이 많이 걸리고 시기적으로도 늦게 진행되다 보니 충분한 리소스를 투입할 수 없어, 결국 코드가 제대로 검토되지 않은채로 남을 수 있습니다.
- 엔지니어는 자신의 코드가 완벽하다고 믿기에 프로젝트의 다른 솔루션과 잘 동작하도록 코드를 변경하자는 제안을 쉽게 받아들이지 않으려합니다.
- 강박적인 수집가의 문제 이유:
- 강박적인 수집가는 계속 혼자 작업하면서 팀의 협업 리듬을 방해합니다. 지속적으로 피드백을 주고받기를 방해하고 변경사항을 원할하게 통합하는 데 방해가 됩니다. 그 결과 피드백 주기가 느려져 문제를 초기에 발견하고 수정하기가 더 어려워집니다.
- 코드 리뷰 단계에서는 병목 현상을 일으킵니다. 대규모 PR은 꼼꼼하게 검토하기 위해 더 많은 시간이 필요하므로 스프린트를 마무리하는 작업의 전반적인 효율성에도 영향을 미치게됩니다.
- 고립주의적 접근 방식은 지식 공유에도 방해가 됩니다. 다른 팀원들은 강박적인 수집가가 진행 중인 작업에 대한 정보를 알지 못하기 떄문에, 도움이 될만한 통찰력을 제공하거나 효과적으로 협업할 수 있는 기회와 시기를 놓치게 됩니다.
- 강박적인 수집가의 의도는 자신이 업무에 상당한 기여를 했다는 것을 보여주려는 것일수 있지만, 이 방식은 의도치 앟ㄴ게 팀의 기민함과 응집력을 저하시킵니다. 이를 해결하기 위해서는 투명하고 지속적인 통합을 지향하는 문화를 조성하는 것이 중요합니다.
- 해결방법:
- 진행 사항을 보여주는 커밋과 소규모 PR 을 자주 제출하도록 장려하세요.
- 팀원들이 서로의 활동을 공유하는 일일 스탠드업 미팅을 장려하세요.
- 지속적 통합을 가능하게 하고 병목 현상을 최소화하기 위해 일찍, 그리고 자주 코드리뷰를 하도록 장려하세요.
- 이러한 문제를 강박적인 수집가와 직접적으로, 부드럽고 조심스럽게 논의하세요. 왜 그들의 행동이 팀 업무에 악영향을 미칠 수 있는지 이해할 수 있게 도와주세요.
5.2.4. 끈질긴 조언자(The Relentless Guide)
- 끈질긴 조언자 특징:
- 이 엔지니어는 누가 시키지 않아도 열심히 도움을 제공합니다.
- 팀원들은 사소한 문제라도 습관적으로 이 엔지니어의 안내를 구합니다.
- 팀에 새로 온 사람들은 이 엔지니어의 전문 지식에 빠르게 의존하게 됩니다.
- 이 엔지니어는 자신감 있고 효과적으로 문제를 해결하며, 종종 다른 팀원들이 문제를 발견하기 전에 선제적으로 해결합니다.
- 끈질긴 조언자의 함정:
- 조언자가 만능 문제 해결사 역할을 맡음으로써 의도치 않게 팀의 개인적, 조직적 발전을 방해하게 된다. 팀원들은 자신의 기술과 지식을 연마하기보다는 주변의 지원에 의존하는 데 익숙해진다.
- 또는 끊임없는 지원으로 인해 조언자의 시간과 에너지가 불필요하게 소모되어 개인의 업무 생산성과 책임감을 발휘할 여지가 줄어들게 된다. 이러한 불균형은 번아웃으로 이어져 팀의 전반적인 발전을 저해할수 있다.
- 조언자의 열정은 칭찬할 만하지만, 그 성과는 오히려 팀의 자율적인 학습 능력과 스스로 문제를 해결하는 잠재력을 약화시킨다. 이에 대한 해결책으로는 도움을 받으면서도 독립적인 탐구를 할 수 있도록 균형 잡힌 학습 환경을 조성하는 것이다.
- 소수의 팀원이 조언자에게 의존하게 되면 팀은 기본적으로 조언자에 동의하는 사람들과 조언자의 의견에 의문을 제기하는 사람들의 두 파벌로 나뉠수 있다.
- 해결방법:
- 팀원들이 도움을 요청하기 전에 독립적으로 문제를 해결해 보도록 장려한다.
- 서로 다른 수준의 경험을 가진 사람들을 짝지어 함께 학습하도록 독려한다.
- 다양한 학습을 장려하기 위해 정기적인 지식 공유 세션을 마련한다.
- 조언자에게 자신의 업무와 개발에 전념할 수 있도록 본인에게 집중하는 시간을 더 많이 할애하라고 권유한다.
- 조언자에게 도전적인 업무를 맡기세요. 그에게 익숙하지 않고, 시간이 많이 필요한 업무가 좋습니다.
5.2.5. 사소한 개선자(The Trivial Tweaker)
- 특징:
- 엔지니어가 이해관계자에게 실질적으로 별다른 가치를 제공하지 않는 ㅏㅅ소한 코드 변경에 끊임없이 몰두합니다.
- 제품의 성능이나 사용성에는 큰 차이가 없음에도 불구하고, 이미 완벽하게 안정화 및 최적화된 코드를 리팩터링하는 경우가 있습니다.
- 팀 내 토론이 변경사항에 대한 논쟁으로 인해 옆길로 빠져버리고, 팀원들은 그 변경사항이 프로젝트 성과에 거의 영향을 미치지 않는다는 사실을 뒤늦게 깨닫게 됩니다.
- 사소한 개선자의 피상적인 변경사항을 검토하는 데 소중한 시간이 낭비됩니다.
- 의미 있는 리팩터링과 중요하지 않은 변경 사이의 경계가 모호해집니다.
- 해결책:
- 사소한 개선자에게 새롭고 도전적인 작업을 할당하여 기존 코드를 수정하는 대신 처음부터 무언가를 만들어내도록 하세요.
- 엔지니어가 리팩터링에 뛰어들기 전에 코드 변경의 잠재적 영향력을 신중하게 검토하도록 장려하세요.
- 피상적인 수정보다는 실질적으로 도움이 되고 의미 이쓴 개선을 중시하는 환경을 조성하세요.
- 프로젝트의 목표에 부합하도록 코드 변경에 대한 명확한 기준을 설정하세요.
5.3. 관행에서 비롯된 안티패턴
5.3.1. 최후의 영웅담(Last-minute heroics)
- 문제점:
- 부족한 피드백, 숨겨진 기술 부채, 품질 저하, 영웅에 대한 의존
- 해결 및 대비방법:
- 효과적인 계획, 투명한 소통, 우선순위를 매긴 백로그, 유지 가능한 페이스
5.3.2. 종잡을 수 없는 PR 프로세스 (PR process irregularities)
- 현상:
- 자동 거수기(Rubber-stamping): PR 을 충분한 검토 없이 승인하는 행위. 빠른 승인은 효율적으로 보일 수 있지만, 치명적인 문제를 눈치채지 못할수 있어, 잠재적인 버그 발생 ㅜ이험이 높아지고, 코드 품질도 그럭저럭 돌아가는 수준에 그칩니다. 자동 거수기는 코드 리뷰 단계를 무용지물로 만들고 PR 이 가지는 협업이라는 본질적인 가치를 훼손합니다.
- 자신의 PR 을 스스로 병합(Self-merging): 엔지니어가 자신의 PR 을 스스로 승인할 수 있으면, 이해 상충을 초래할 위험이 커지고, 코드 리뷰 프로세스의 필수적인 검사와 대안 검토 과정을 피해갈 수도 있습니다. 자신의 PR 을 스스로 병합하면 다양한 관점에서의 검토가 불가능하며, 이는 오류를 발견하거나 개선안을 검토할 기회를 놓치게 합니다.
- 장수하는 PR (Long-running PRs): PR 이 오래 존재한다는 것은 PR 이 엔지니어와 검토자 사이에서 오락가락하고 있다는 것이며, 이는 의사소통과 의사결정의 비효율성이 있다는 것을 의미한다. 무넺 해결에 지연이 발생하면 모듈 통합 프로세스 기간도 연장되고, 이는 전체 개발 주기 순환을 느리게 만들어 결국 개발 과정에 걸림돌이 됩니다.
- 마감 직전의 PR: 마감 기한 직전에 여러 엔지니어가 PR 을 생성하는 것은 엔지니어들이 계획이나 예측에 실패했다는 것을 뜻합니다. 이렇게 서둘러 생성된 PR 이 위험한 이유는 일정 초반부에 충분한 검토를 거친 PR 과 같은 수준의 검토가 이루어지지 않았기에 위험을 초래할수도 있습니다. 이러한 현상 이면에는 실무에서 병목 지점이 존재하여 업무가 지연되었을 가능성도 있습니다.
5.3.3. 장기간에 걸친 리팩터링(Protracted refactoring)
- 특징:
- 대상 범위의 확장: 애초에 계획했던 리팩터링의 대상이 점차적으로 확대되어 더 많은 부분이 리팩터링 대상으로 포함되고, 이로 인해 의도하지 않은 대상 범위의 확장이 발생합니다.
- 일정지연: 리팩터링이 계속되면서 프로젝트의 일정이 연장되며, 이는 출시 지연의 가능성을 높이고 프로젝트의 전반적인 목표달성에도 악영향을 끼칩니다.
- 자원 고갈: 여러 엔지니어가 장기적인 리팩터링에 휘말리게 되면서 다른 필수적인 업무를 위한 소중한 자원을 낭비합니다.
- 집중력 분산
- 해결방법: 원인파악하기:
- 완벽주위가 원일일수 있다. 리팩터링 대상 영역의 지식 부족도 원인일수 있다.
- 시간 제한 설정하기
- 동료 검토와 마무리 시점 정하기
- 열린 소통 장려하기
5.3.4. 적당히 넘어가는 회고(Retrospective negligence)
- 특징:
- 그냥 지나가거나 늦게 진행하는 회고
- 짧은 회고 시간
- 구조와 체계의 부재
- 오직 만장일치
- 후속 조치의 부재
- 겉핥기 분석
- 해결방법:
- 정기적인 수행에 우선순위 두기
- 충분한 시간 배정
- 체계적인 접근
- 다양성을 살릴 수 있도록 배려하기
- 조치사항 실행하기
- 근본 원인에 집중하기
5.4. 구조적 안티패턴
5.4.1. 고립된 집단 (Isolated clusters)
- 특징:
- 지식의 단편화
- 잃어버린 통찰력
- 성장의 정체
- 응집력 저하
- 해결방법:
- 다양한 분야끼리 교류하는 세션 마련하기
- 역할 돌아가며 맡기
- 여러 분야의 참여가 필요한 프로젝트 실행하기
- 열린 소통 채널 마련하기
5.4.2. 지식 병목 현상(Knowledge bottlenecks)
- 특징:
- 단일 장애점
- 의존성
- 지식 사일로
- 소통의 간극
- 해결방법:
- 교차 훈련 시행하기
- 지식 공유하기
- 페어 프로그래밍 시도하기
- 역할 순환시키기
- 멘토링 프로그램 시행하기
5.5. 리더십 안티패턴
5.5.1. 과도하게 세세한 관리(Micromanagement)
- 특징:
- 완벽주의자가 초래한 병목 현상
- 권위적인 업무 지시
- 정보의 문지기
- 문제점:
- 혁신 발목잡기
- 사기 저하
- 업무 진행속도의 둔화
- 성장의 한계 직면
- 불충분한 정보에 기반한 의사결정
- 해결방법:
- 주인의식 높이기
- 창의력 키우기
- 사기 드높이기
- 혁신 가속화하기
- 유리 장벽 되기
5.5.2. 범위 관리 실패(Scope mismanagement)
- 문제점:
- 계속되는 요청 변경
- 우선순위의 결여
- 과중한 업무 부담
- 출시 지연
- 품질 지연
- 품질 저하
- 해결방법:
- 변경사항 평가 프로세스 재정비하기
- 효과적으로 의사소통하기
- 범위 고정 기간 설정하기
- 주기적으로 검토 및 평가하기
- 의사 결정 권한 부여하기
- 상부에 보고 및 이관하기
5.5.3. 과도한 계획(Planning overkill)
- 문제점:
- 과도한 분석
- 끝없는 설계 반복
- 방대한 분량의 문서화 작업
- 개발 지연
- 융통성 결여
- 해결방법:
- 현실적인 범위 설정하기
- 반복적으로 다듬기
- 업무 수행에 유연성 도입하기
- 점진적으로 다듬고 상세화하기
- 위험 관리하기
5.5.4. 회의적인 리더십(Skeptical leadership)
- 문제점:
- 근거 없는 두려움
- 자신이 없는 기술적 의사결정
- 고통 떠넘기기
- 끊임없는 재확인과 안심시키기
- 떨어지는 자신감
- 업무 진행 지연
- 해결방법:
- 근거에 기반한 의사결정 내리기
- 효과적인 의사소통 활용하기
- 투명성 유지하기
- 시간 관리하기
- 자신감 기르기
5.5.5. 소극적 리더십(Passive leadership)
- 문제점:
- 침체기
- 방향성 결여
- 잃어버린 기회
- 책임감 부족
- 변화에 대한 저항
- 해결방법:
- 명확한 기대 설정하기
- 열린 소통 시작하기
- 권한 부여하기
- 혁신의 문화 조성하기
- 리더에게 책임 부여하기
5.5.6. 과소평가(Underappreciation)
- 해결방법:
- 자주 인정하고 칭찬하기
- 적시에 피드백 제공하기
- 공개적으로 칭찬하기
Chapter 6. 효과적인 매니저
6.1. 엔지니어링에서 관리까지
6.2. 시작하기
- 팀원들과 회의 가지기
- 프로젝트 평가하기
- 기술 스택 이해하기
- 급한 문제 다루기
- 빠른 승리 맛보기
- 인적 네트워크 구축하기
- 우선순위 설정하기
- 꼭 필요한 소통 채널 만들기
- 자아성찰과 자기관리에 투자하기
- 가면 증후군 관리하기
6.3. 전략 수립하기
- 장기적인 전략적 비전 수립하기
- 투명성을 기반으로 목표를 추구하기
- 데이터에 기반한 의사결정 내리기
- 위기 관리를 위해 치밀하게 게산하기
6.4. 시간 관리
6.4.1. 계획
- 타임 블로킹(Time blocking)
- 비슷한 작업 묶기
- 의사소통을 위한 계획 수립하기
6.4.2. 실행
- 팀원 육성하기
- 위임하기
- ’ 아니오’라고 말하는 법 배우기
6.4.3. 평가
- 달력 검사하기
- 성찰 및 조정하기:
- 내가 집중적으로 업무를 하는 시간 동안 방해를 최소화하기 위해 노력했을까?
- 내가 세운 위임 전략이 예상대로 잘 작동했던가? 위임한 업무에 대해 추가로 도움을 제공할 필요가 있었던가?
- 개인적인 발전과 자기 관리에 얼마나 많은 시간을 투자했던가?
6.5. 기대치 파악 및 설정
6.5.1. 나에게 기대하는 결과물은 무엇인가?
- 의사소통 이어가기
- 목표 설정하기
- 우선순위 설정
- 자체 평가
6.5.2. 팀원들에게 기대하는 결과물은 무엇인가?
- 투명하게 소통하기
- 팀원 각자와 개별적인 회의 가지기
- 같은 목표를 향항 방향 설정하기
- 기대치 문서화
6.6. 의사소통의 필수품
6.6.1. 팀 회의
- 명확한 회의 목표 설정
- 회의에 집중하고 회의 시간을 준수하기
- 적극적인 참여와 포용적인 태도 독려하기
6.6.2. 일대일 미팅
- 팀원의 말을 경청하는 동안 팀원이 가진 문제의 해결책을 즉시 제공하려고 하지 않는 것이 굉장히 중요하다.
- 필요하다면, 팀원을 지도하고 코칭하여 스스로 문제를 해결할 수 있도록 자립심을 키워줘야한다.
- 말할때는 성가신 문제를 다루더라도 차분하고 침착한 어조를 유지하세요.
6.6.3. 메시지 주고 받기
- 이메일: 공식적인 의사소통과 문서화
- 인스턴트 메신저(슬랙): 신속한 질문과 답변, 일상적인 대화, 실시간 협업
- 업무 관리 소프트웨어: 업무 진행 상황 추적, 책임 할당, 프로젝트 진행 상황 관찰
6.6.4. 비언어적 의사소통
- 몸짓 언어
- 얼굴 표정
- 신체적 근접성
6.7 인력 관리
- 기술 인재 쟁탈전
- 기술 다변화
- 원격 근무의 역동성
- 높아지는 기대치
- 프로젝트의 복잡성
6.7.1 채용
- 효과적인 엔지니어의 열가지 주요 특성:
- 사용자에 대한 관심
- 뛰어난 문제 해결 능력
- 일을 단순하게 유지함
- 효과적으로 의사소통을 할 수 있음
- 신뢰, 자율성, 사회적 지본 형성
- 팀 전략에 대한 깊은 이해
- 적절하게 우선순위를 정하고 독립적으로 업무를 수행
- 장기적인 관점에서 사고하기
- 시간이 허락하는 한 소프트웨어 프로젝트를 더 나은 상태로 개선
- 새로운 도전에 거리낌이 없음
6.7.2. 성과 평가
- 경력 목표
- 전문성 개발
- 추가적인 책임과 역할
- 도전과 성취
- 피드백과 개선
- 일과 삶의 균형
6.7.3 퇴직 관리
- 회사를 떠나는 원인을 파악하기 위한 회의를 마련하는 것부터 시작하세요. 퇴사 사유는 개인적, 업무적 이유일 수 있습니다.
- 만약 퇴직 사유가 팀이나 여러분과 관련되어 있다면, 정중히 피드백을 요청하세요. 프로젝트에 관한 경험이나 업무 관련성에 대해 물어보고, 개선이 필요한 영역이 있는지 파악하세요.
- 만약 개인적인 상황으로 인해 떠나고자 하는 경우 하이브리드 근무나 유연 근무 방식을 제안하세요. 이 조치로 인해 현재 담당하고 있는 프로젝트가 영향을 크게 받지 않으며, 그 직원이 회사에 남는 데 도움이 되는 조치인지 고민해 보세요.
- 퇴사 면담에서 얻은 피드백을 통해 팀 또는 조직 내에서 개선할 부분을 파악하세요.
- 진행 중인 프로젝트에 차질이 생기지 않도록 업무 지식과 역할을 매끄럽게 인계 받으세요.
6.7.4. 멘토링과 코칭
- 멘토링: 장기적 관계
- 코칭: 단기적
- 멘토링과 코칭 프로그램에 투자하세요:
- 조직 문화 적합성의 조화
- 비용 및 시간 절약
- 인재 개발과 사기 증진
6.8 도전적인 프로젝트 관리
- 애자일 방법론
- 범위 관리
- 프로토타이핑
- 유연성을 갖춘 결단력
- 품질 관리
- 일과 삶의 균형
- 의사소통
- 장애물 제거
- 성공 기념하기
6.9 팀의 역학관계 다루기
6.9.1 개인적 특이성과 팀의 다양성
6.9.2. 원격 팀운영
6.9.3. 갈등 해소
6.10 전문성과 성장 촉진
6.10.1. 자투리 시간에 성장이라는 고삐 채우기
6.10.2. 업무량이 많은 기간에도 성장에 힘 실어주기
6.11 네트워킹의 정수
- 네트워킹의 장점:
- 지식 교류
- 문제 해결
- 전문성 성장
- 협업 기회
- 진정성 보여주기
- 적극적으로 경청하기
- 후속 조치 취하기
- 정기적으로 연락 유지하기
- 네트워킹 다변화
Chapter 7. 효과적인 리더로 나아가기
7.1. 효과적인 리더 vs 효과적인 매니저
리더와 매니저의 공통점:
- 위임
- 목표 설정
- 코치
- 의사결정
- 신뢰 구축
- 참여와 소통
리더만의 특징:
- 프로젝트 비전 및 임무
- 팀 조율
- 방향성
- 영감
- 동기부여
매니저만의 특징:
- 프로젝트 계획 및 예산
- 팀 구조
- 일정
- 조직화
- 지표 추적 및 진행 상황 점검
효과적인 리더:
- 방향 설정: 효과적인 리더는 방향 설정에 탁월한 능력을 보입니다. 팀을 설레게 할 미래 비전을 만드는 선지자로서 비전을 실현하기 위한 전략을 수립하고, 큰 그림을 명확하게 그려냅니다.
- 구성원 결집시키기: 효과적인 리더는 비전을 팀과 공유하여 구성원 모두가 어디로 향하고 있는지 알립니다. 다시 말해, 팀에 명확한 목적의식을 부여하여 팀 구성원 간의 협력을 이끌어내는 것입니다. 이를 통해 팀은 공동의 목표를 향해 협력하게 됩니다.
- 동기와 영감부여: 효과적인 리더는 능숙하게 팀에 동기를 부여하고 영감을 불어넣습니다. 그저 단순히 지시를 내리는 것이 아니라 팀원에게 권한을 부여하고, 불만을 해결하고 노력합니다. 이를 통해 팀은 열정적이고 헌신적으로 변모하고, 이러한 에너지는 팀 곳곳에 가득 차게 됩니다.
효과적인 매니저:
- 계획 및 예산: 효과적인 매니저는 운영과 실행 계획에 집중합니다. 계획과 예산을 세심하게 살피는 전문가입니다. 주요 의제와 일정을 설정하고 리소스를 효율적으로 할당합니다.
- 조직: 효과적인 매니저는 업무의 운영 측면에서 체계와 질서를 확립합니다. 조직화와 인력 배치에 탁월한 능력을 보이며, 이를 활용하여 업무를 할당하고, 효율적인 프로세스를 구축하여 팀에 필요한 체계를 제공합니다. 이러한 방식으로 업무를 논리적으로 할당하고 책임을 명확하게 합니다.
- 통제 및 문제 해결: 효과적인 매니저는 문제에 대한 동기부여와 해결책 도출을 위해 보상을 활용합니다. 원할한 운영과 목표 달성에 방해가 될 요소를 해결 및 예방하기 위해 적절한 조치를 취합니다.
본질적으로, 리더십 특성을 갖춘 매니저는 리더십과 관리를 구분하지 않습니다.:
매니저로서 리더십 특성을 갖추기 위해 필요한 접근법은
- 전략적 비전
- 동기부여 리더십
- 권한 부여와 신뢰
- 적응력과 변화 관리
7.2. 리더십 역할
7.2.1. 테크리드
- 기술 설계 및 아키텍처 지침 제공
- 코딩 표준 및 모범 사례 설정
- 복잡한 버그 및 이슈의 문제 해결을 주도
- 엔지니어링 측면에서 절충안을 찾아 중요한 기술 결정 내리기
- 팀과 함께 직접 코딩하기
- 개발 기술 멘토 역할 수행
- 결과물이 품질 기준을 충족하는지 확인
7.2.2. 엔지니어링 메니저
- 인력관리
- 프로세스 관리
- 팀과 조직의 우선순위를 일치시키기
- 자원 확보
- 기술 감독
- 이해관계자와의 상호작용
- 전략적인 업무 우선순위 지정
7.2.3. 테크 리드 매니저
- 인력 관리와 실질적인 테크 리더십의 조화
- 코딩 기술에 대한 엔지니어 코칭 및 개발
- 기술 표준 및 아키텍처 수집
- 개발자의 어려움을 해결하도록 지원
- 우선순위가 높은 기술 작업에 집중
- 부서 간 조율 시 팀의 대변자 역할 수행
- 다양한 제약을 고려한 기술적 의사결정 내리기
- 멘토링 및 조언 제공
7.3. 리더십 기술 평가하기
7.3.1. 핵심 특성
- 기술 전문성:
- 이 프로젝트에 필요한 기술 노하우를 갖고 있나요?
- 창의적인 솔루션을 제시했을 떄 팀원의 표정이 밝아지는 것을 경험한 적이 있나요?
- 마지막으로 누군가의 어려운 무넺를 해결하도록 도와준 것이 언제였나요?
- 도전 과제에 어떻게 접근하나요? 색다른 아이디어를 시도하는 데 열려있나요?
- 기민함:
- 지식을 얼마나 빨리 습득하고, 적용하며, 공유할 수 있나요?
- 새로운 정보에 어떻게 접근하나요?
- 변화하는 상황에 따라 얼마나 빠르게 조치를 취할 수 있나요?
- 의사소통 능력:
- 팀이 항상 여러분이 한 말을 제대로 이해하나요?
- 여러분이 전달하려는 내용을 팀원이 이해하지 못해 오해를 하거나 의사소통이 산으로 간 적이 있나요?
- 자신이 상대하는 개인 혹은 집단에 맞게 의사소통 방식을 조정하는 편인가요?
- 지시사항을 자주 반복해서 설명해야 하나요?
- 적극적으로 경청하고 논의한 내용을 정확한 맥락으로 기억하고 있나요?
- 리더십 기술 향상시키기:
- 기민함: 워크샵, 컨퍼런스 온라인 강좌 등
- 의사소통 능력: 다른 사람의 말에 주의를 기울이고, 확실히 이해하기 위해 명확하게 질문하는 등 적극적으로 경청하는 연습을 하세요.
- 공감하기
- 비전
- 위임
- 성실성
7.3.2. 바람직한 리더십 특성
- 자발적 동기부여:
- 이 팀을 이끌고 싶은 동기가 있나요?
- 여러분은 팀의 목표가 확실하고 팀의 능력으로 이를 달성할 수 있다고 믿나요?
- 여러분과 팀이 추구하는 비전에 대한 열정이 있나요?
- 추진력:
- 최종 목표 앞에서 쉽게 주의가 흐트러지나요?
- 여러분은 팀의 업무를 지속적으로 추적하고 신속하게 수정할 수 있나요?
- 어려움에 직며했을 때 끈기를 잃지 않고 낙관적인 태도를 유지하나요?
- 목표 달성에 도움이 될 수 있는 기회를 알아보고 이를 잡아낼 수 있나요?
- 성실성:
- 여러분이 약속한 가치에 맞도록 일관되게 행동했나요?
- 약속을 지키지 못한 적이 있나요?
- 여러분은 다른 사람들에게 얼마나 투명하게 행동하나요?
- 공정성:
- 항상 사실에 근거하여 객관적인 결정을 내리나요?
- 무의식적으로 결정에 영향을 미칠만한 편경을 갖고 있지는 않나요?
- 공정하게 업무를 위임하고 있나요?
- 겸손:
- 실수를 하거나 모든 답을 알지 못할 때 솔직하게 인정하는 편인가요?
- 신참 팀원을 포함하여 팀 내 다른 사람들로부터 배움을 얻을 수 있는 열린 자세를 가지고 있나요?
- 정당한 공로를 인정하나요?
- 용기:
- 불확실성을 얼마나 잘 받아들이나요?
- 기존 관례에 도전한 적이 있나요?
- 과감하게 위험을 감수하면서도 현 상태에 의문을 제기할 수 있나요?
- 책임감:
- 여러분은 자신의 실수를 얼마나 흔쾌히 인정하나요?
- 여러분의 결정과 행동에 대해 여러분이 책임을 지나요?
- 다른 사람을 손가락질하거나 책임을 떠넘기는 것에 조금이라도 끌린 적이 있나요?
- 영향력:
- 사람들이 여러분의 말을 듣는 이유는 리더로서의 권위 떄문인가요, 아니면 여러분이 옳은 일을 할 것이라는 믿음 때문인가요?
- 여러분은 권위가 없어도 다른 사람들을 지도하는 것이 가능한가요?
- 타인에 대한 배려:
- 팀원들의 일상에서 무슨 일이 일어나고 있는지 알고 있나요?
- 다른 사람의 이야기에 공감할 수 있나요?
- 팀원들이 여러분과 소통할 때 지나치게 조심스럽지 않나요?
- 자기 인식
7.4. 효과적으로 리더십 발휘하기
7.4.1. 리더십 방식
변혁적 리더십: 탁월한 성과를 달성하도록 팀에 영감을 불어넣고 동기를 부여하는 리더의 능력을 특징으로 한다.
민주적 리더십: 팀원들이 의사결정 과정에 참여하는 것을 강조한다.
서번트 리더십팀원의 요구사항과 웰빙을 우선시하며, 팀원을 믿고 맡기며 팀원의 능력을 키우는 것에 초점을 맞춘다.
리더십 방식 선택하기:
- 공감
- 겸손
- 집사 정신
- 발전에 대한 헌신
다양한 방식 조합하기:
- 위임의 중요성 강조하기
- 무자비한 우선순위 매기기
- 멘토의 사고방식 수용하기
- 명확한 경계 설정하기
- 정기적인 자기성찰과 적응하기
환경에 기반한 리더십:
- 스타트업 리더십: 혁신 장려하기
- 대기업 리더십: 비지니스와 기술의 연결
7.4.2. 전략 수집
미래를 시각화하기:
- 환경 살펴보기
- 시나리오 그려보기
- 위험 평가하기
- 다양한 관점으로 바라보기
전략적 로드맵 정립하기:
- 명확성과 단순성을 유지하세요.
- 측정 가능한 마일스톤을 설정하세요.
- 유연성과 적응성을 로드맵에 포함시키세요.
- 로드맵을 고정된 문서로 취급하지 마세요.
- 이해관계자의 참여를 놓치지 마세요.
몰입형 전략적 사고:
- 전략만을 위한 행사 개최
- 디지털 디톡스
- 조용한 공간 마련하기
무자비한 우선순위 매기기
7.4.3. 역할 수행
끊임없는 소통:
- 장기 목표
- 중점 분야
- 업무의 맥락
- 마일스톤과 성과
- 도전 과제와 장애물
- 전략이나 방향성의 변경사항
- 학습과 발전의 기회
- 조직 차원의 변화
혁신을 위한 체계와 구조:
- 정보에 기반한 의사결정 내리기
- 속도의 중요성 강조하기
- 최소 기능 프로세스 도입하기
- 혁신을 위한 시간 마련하기
- 아이디어 발굴 세션 마련하기
심리적 안전감
- 열린 소통을 장려하고, 갈등을 협력자의 관점에서 접근하며, 비난을 호기심으로 바꿈으로써 심리적 안전감을 조성할 수 있다.
다양성을 갖춘 팀 이끌기:
- 무의식적인 편견 해소하기:
- 팀원들이 무의식적인 편견을 알아차리고 줄일 수 있도록 정기적인 무의식적 편견 해소 교육을 제공합니다.
- 무의식적 편견에 대한 열린 토론을 장려하고 팀원들이 자신의 경험을 공유할 수 있는 안전한 환경을 조성합니다.
- 다양한 채용 방식 적극 활용하기
- 포용적인 업무 문화 조성하기
- 무의식적인 편견 해소하기:
잠재력 식몇 및 능력 개발하기:
- 모두에게 적용 가능한 인재 개발 접근법은 없다.
- 피드백:
- 구체적이고 실행 가능하게
- 긍정적이며 건설적인 피드백이 되도록 균형잡기
- 개인별 맞춤 피드백 제공하기
- 후속 조치와 지원 제공하기
기술 전문성과 리더십 기술의 균형:
- 기술 전문성 개발
- 코딩이나 신기술 학습처럼 기술을 정기적으로 업데이트하는 시간을 마련하세요.
- 지식을 확장하고 기술적 숙련도를 유지하기 위해 콘퍼런스, 워크숍, 온라인 강의에 참가하세요.
- 기술을 실습해 볼 수 있는 업무나 기술 워크숍 참여를 위한 별도의 시간을 마련하세요.
- 업계 동향, 떠오르는 기술, 소프트웨어 개발에 모범 사례에 대해 꾸준히 정보를 확인하세요.
- 리더십 기술 강화:
- 리더십 역량 강화를 위한 리더십 개발 프로그램, 워크숍, 강의에 참여하세요.
- 조직 안팎에서 숙련된 리더에게 멘토링을 받아 통찰력과 조언을 얻으세요.
- 개선이 필요한 부분을 파악하기 위해 주기적으로 자신의 리더십 습관을 돌아보고 팀과 동료들에게 피드백을 요청하세요.
- 전략적 사고, 의사결정, 문제 해결 능력 개발에 초점을 맞춰 팀이 조직의 목표를 달성할 수 있도록 인도하세요.
- 효과적으로 팀을 이끌고 다른 사람들에게 좋은 영향을 주기 위해 의사소통, 형법, 대인 관계 기술을 키워보세요.
- 지식을 확장하고 새로운 관점을 얻기 위해 리더십과 관련된 책, 기사, 사례 연구를 읽어보세요.
- 기술 전문성 개발
7.4.4. 효과적인 리더십을 위한 자세
신뢰와 자율성:
- 가드레일:
- 명확한 의사소통 채널과 소통 규칙
- 잘 정의도니 역할과 책임
- 정기적인 체크인 미팅 및 진척도 검토
- 코딩 표준과 모범 세례 정립
- 문서화된 의사결정 절차
- 주인의식 불어넣기
- 유연한 업무 체계 제공하기
- 의사결정 맡기기
- 가드레일:
행동 모델링:
- 성장 지향적인 사고방식 보여주기
- 포용력 드러내기
- 진실성 보여주기
확신을 가지고 의사결정 내리기
데이터 기반 리더십
- 속도, 반복 시간, 결함 밀도, 코드 커버리지, 고객 만족도
- 명확한 지표와 KPI 설정하기
- 데이터 기반 문화 조성하기
- 팀에서 데이터를 확인할 수 있도록 효과적으로 소통하기
변화에 적응하기:
- 예측, 설명, 적응, 책임
효과성에서 효과적인 효율성으로 발전