소프트웨어 엔지니어링 관리 — Google 엔지니어링 VP Peeyush Ranjan의 인사이트
소개
소프트웨어 엔지니어로서 저는 운이 좋게도 업계에서 영향력 있는 친구와 업계 관리자로 승진했으며 엔지니어링 리더로서의 여정을 통해 귀중한 통찰력을 공유했습니다. 이 게시물에서는 수년 동안 즐겁게 교류한 리더 중 한 명인 Google의 엔지니어링 부사장인 Peeyush Ranjan의 생각을 공유할 것입니다. Peeyush는 인도에서 가장 성공적인 전자 상거래 유니콘 중 하나인 Flipkart에서 최고 기술 책임자(CTO)와 Airbnb에서 엔지니어링 부사장을 역임한 소프트웨어 엔지니어 및 엔지니어링 리더로서 인상적인 배경을 가지고 있습니다.
책임을 위한 조직 구성
Peeyush가 Flipkart에서 CTO의 역할을 맡았을 때 엔지니어링 팀에는 이미 약 1,000명의 엔지니어가 있었고 그의 리더십 아래 약 1,500명으로 늘어났습니다. 그는 특정 책임을 가지고 운영할 수 있는 방식으로 구조화된 조직을 만들기 시작하여 각 영역에 "가는" 사람들이 있는지 확인했습니다. 예를 들어 양면 시장이라는 점을 감안할 때 그는 비즈니스의 판매자 측에 대한 책임 있는 소유자와 비즈니스의 구매자 측에 대한 책임 있는 소유자를 만들었습니다. 이 접근 방식은 공유되거나 분산된 책임을 제거하여 문제의 근원에 도달하고 문제가 올바르게 작동하지 않을 때 솔루션을 찾는 것을 더 쉽게 만듭니다.
리더십 위치에 적합한 사람 확보
Peeyush는 또한 각 부서 내에서 리더십 위치에 적합한 사람을 배치하는 것의 중요성을 강조했습니다. 그는 가치 이해, 운영 방식, 가치 체계와 가치 체계의 공통점 찾기를 포함하여 이러한 리더를 식별하는 프로세스를 설명했습니다. 리더로서 당신이 테이블에 제시하는 가치와 원칙을 이해하고 따를 수 있는 사람들을 확보하여 회사의 미션을 통합하는 조화로운 환경을 만드는 것이 중요합니다.
팀 신조가 조직의 가치 및 원칙과 일치하도록 보장
신입 관리자를 위한 가장 중요한 교훈 중 하나는 팀의 핵심 신조가 조직의 가치 및 원칙과 일치하도록 보장하면서 더 큰 그림을 보는 것이 중요하다는 것입니다. 각 팀은 더 큰 퍼즐의 조각이며 엔지니어링 관리자는 팀이 조직의 광범위한 목표에 원활하게 부합하도록 하는 데 중요한 역할을 합니다.
효과적인 팀을 만드는 권한 부여 및 투명성
Peeyush의 핵심 가치는 효과적인 엔지니어링 팀을 만드는 데 필수적인 권한 부여와 투명성입니다. 팀에 권한을 부여하고 피드백에 귀를 기울이는 관리자는 팀의 생산성을 배가할 수 있으므로 단순히 팀 구성원 수를 늘리는 것보다 더 효과적입니다. 엔지니어는 투명성을 높이 평가하므로 관리자는 팀에 솔직하고 정직해야 합니다. 투명성은 신뢰를 구축하여 목표와 목표를 함께 달성하는 것을 더 쉽게 만듭니다.
이를 달성하는 한 가지 방법은 회사의 모든 수준의 리더십 계층에서 관리 전승을 정기적으로 통합하는 것입니다.
관리 전승이 중요한 이유에 대해 더 많은 맥락을 추가하겠습니다. 상위 관리 수준에서 하위 수준으로 정보와 결정을 계단식으로 전달하는 프로세스는 소프트웨어 회사에서 여러 가지 이유로 필수적입니다.
- 정렬 및 일관성: 전달은 모든 수준의 관리가 동일한 목표와 목표를 향해 작업하도록 보장하여 조직 전체에서 의사 결정 및 리소스 할당의 일관성을 촉진합니다.
- 명확한 커뮤니케이션: 경영진은 정보와 지침을 전달함으로써 모든 직원이 회사의 우선 순위, 전략 및 기대 사항에 대해 잘 알고 있는지 확인하여 직원이 보다 효과적으로 역할을 수행할 수 있도록 합니다.
- 권한 부여 및 책임: 전달은 의사 결정 권한과 책임을 하위 관리 수준에 위임하여 정보에 입각한 선택을 하고 팀 성과에 대한 소유권을 가질 수 있도록 합니다.
- 적응성 및 반응성: 관리 전승은 관련 정보 및 결정이 모든 수준에 즉시 도달하도록 보장함으로써 변화하는 시장 상황 또는 조직의 요구에 더 빠르게 대응할 수 있도록 합니다.
- 협업 및 팀워크: 효과적인 전달은 모든 팀이 회사 전체의 이니셔티브, 과제 및 성공에 대한 루프를 유지함으로써 부서 간 협력 및 팀워크를 촉진합니다.
- 직원 참여 및 사기: 직원이 회사의 목표와 이를 달성하는 데 있어 자신의 역할을 이해할 때 조직의 성공에 기여할 동기와 참여를 더 많이 느낄 수 있습니다.
- 지식 공유 및 기술 개발: Passdowns는 다양한 팀 및 수준의 관리 간에 모범 사례, 교훈 및 전문 지식을 공유하고 지속적인 학습 및 기술 개발 문화를 조성하는 플랫폼 역할을 할 수 있습니다.
위험을 감수하고 혁신하는 자율적인 팀 구축
위험을 감수하고 혁신하려는 자율적인 팀을 만드는 방법에 대한 Peeyush의 통찰력은 지속적인 개선에 필수적인 성장 마인드셋에 공감합니다. 이 접근 방식은 개인이 솔루션을 찾고 아이디어를 내도록 장려하여 신뢰와 창의성의 환경을 구축합니다.
자율적인 팀 구축의 주요 이점은 다음과 같습니다.
- 더 빠른 의사 결정: 자율 팀은 해당 영역 내에서 의사 결정을 내릴 수 있으므로 응답 시간이 빨라지고 지속적인 관리 승인의 필요성이 줄어듭니다.
- 혁신 증가: 팀이 자유롭게 실험하고 결정을 내릴 때 회사를 발전시킬 수 있는 창의적인 솔루션과 혁신을 제시할 가능성이 높아집니다.
- 더 높은 생산성: 더 큰 자율성을 통해 팀은 작업 부하와 우선 순위를 보다 효과적으로 관리할 수 있으므로 효율성과 생산성이 향상됩니다.
- 직원 참여도 향상: 자율적인 팀의 직원은 자신의 업무에 대해 더 많은 소유권과 책임감을 느끼는 경향이 있어 업무 만족도와 참여도가 높아집니다.
- 민첩성 및 적응성: 자율 팀은 시장, 고객 요구 또는 기술의 변화에 신속하게 대응하여 회사의 적응력과 탄력성을 높일 수 있습니다.
- 확장성: 팀이 독립적으로 운영할 수 있도록 지원함으로써 관리 오버헤드를 크게 늘리지 않고 새 팀을 추가할 수 있으므로 조직은 운영을 보다 쉽게 확장할 수 있습니다.
- 교차 기능 협업: 자율 팀은 종종 다양한 기술과 전문 지식을 가진 구성원으로 구성되어 팀 내에서 교차 기능 협업 및 지식 공유를 촉진합니다.
- 관료주의 감소: 자율적인 팀은 더 적은 수준의 관리 감독을 필요로 하므로 관료주의와 관료주의를 줄이고 프로세스를 간소화하고 실행을 가속화할 수 있습니다.
- 더 나은 리소스 할당: 자율 팀은 프로젝트 요구 사항 및 우선 순위에 대한 직접적인 지식을 기반으로 리소스 할당에 대해 보다 정보에 입각한 결정을 내릴 수 있으므로 리소스를 보다 효율적으로 사용할 수 있습니다.
- 인재 유치 및 유지: 자율성과 권한 부여를 지원하는 문화는 최고의 인재를 유치하고 직원을 유지하는 데 도움이 됩니다.
엔지니어링 관리의 가장 어려운 측면 중 하나는 개별 기여자에서 관리자로 전환하는 것입니다. Peeyush는 훌륭한 엔지니어가 되는 것이 반드시 훌륭한 인력 관리자가 되는 것은 아니라고 말했습니다. 성공적인 엔지니어링 관리자는 감정이입적인 인력 관리자와 기술 리더의 역할 사이에서 균형을 유지하여 위압적이지 않으면서 팀을 이끌고 영향력을 행사해야 합니다.
리더는 팀이 성장하고 자신의 솔루션을 개발할 수 있는 기회를 제공하여 업무에 대한 주인의식과 자부심을 만들어야 합니다. 또한 각 직원에 대한 깊은 배려심을 개발하고, 구체적인 경력 목표를 이해하고, 경력 목표에 따라 성장할 수 있는 기회를 찾도록 도와야 합니다. 대부분의 경우 사람들은 회사를 떠나는 것이 아니라 관리자를 떠난다는 오래된 속담을 기억하십시오. 각 직원의 요구 사항을 수용하기 위해 리더십 스타일을 제공하는 공감하고 배려하는 관리자가 됨으로써 이탈 위험을 크게 완화하고 미션 지향적인 강력한 팀을 구축하는 데 도움을 줄 수 있으며 함께 힘을 합쳐 위대한 일을 성취할 수 있습니다.
팀을 처음부터 시작하기 위한 핵심 리더 식별
성공적인 팀을 구축하는 방법에 대한 Peeyush의 통찰력은 새로운 팀을 시작하는 모든 사람에게 매우 중요합니다. 그는 처음부터 팀을 시작하는 올바른 사고 방식, 모호한 상황에서 일할 수 있는 능력, 스스로 시작하려는 추진력을 가진 핵심 리더를 식별하는 것이 중요하다고 강조했습니다.
또한 그는 직원과 업무를 조직의 나머지 구성원에게 알리고 신뢰를 구축하며 팀의 성장과 발전을 촉진하는 방법을 배우는 것의 중요성을 설명했습니다.
처음부터 팀을 시작할 리더를 선택할 때 다음 요소를 고려하십시오.
- 기술 전문성: 소프트웨어 엔지니어링에 대한 강력한 배경을 가지고 있고 프로젝트와 관련된 기술 및 도구에 익숙한 리더를 선택하십시오. 기술 지침을 제공하고 아키텍처, 설계 및 개발 사례에 대해 정보에 입각한 결정을 내릴 수 있어야 합니다.
- 경험: 소프트웨어 엔지니어링 팀을 구성하고 이끌며, 가급적이면 유사한 도메인이나 업계에서 이전에 경험이 있는 후보자를 찾으십시오. 이 경험은 그들이 성공적인 팀을 만들기 위한 과제와 모범 사례를 이해하는 데 도움이 될 것입니다.
- 비전 및 전략: 리더는 팀의 목표에 대한 명확한 비전을 가지고 이를 달성하기 위한 일관된 전략을 개발할 수 있어야 합니다. 그들은 팀의 우선 순위를 정의하고 이를 회사의 목표에 맞출 수 있어야 합니다.
- 의사소통 및 대인 관계 기술: 효과적인 의사소통은 팀 구성원과 이해관계자 모두에게 팀의 목표, 기대 및 진행 상황을 전달해야 하므로 리더에게 매우 중요합니다. 또한 적극적으로 경청하고 팀의 우려 사항과 요구 사항에 공감할 수 있어야 합니다.
- 적응성 및 문제 해결: 리더는 신기술, 변화하는 우선순위 또는 자원 제약과 같은 변화하는 환경에 적응할 수 있어야 합니다. 그들은 강력한 문제 해결 기술을 가지고 있어야 하며 문제에 대한 창의적인 해결책을 찾을 수 있어야 합니다.
- 팀 구축 및 동기 부여: 리더는 응집력 있고 성과가 높은 팀을 구축한 실적이 있어야 합니다. 그들은 인재를 식별 및 채용하고, 긍정적인 팀 문화를 조성하고, 팀원들이 최고의 성과를 낼 수 있도록 동기를 부여하는 데 능숙해야 합니다.
- 의사 결정 및 위임: 리더는 정보에 입각한 시기적절한 결정을 내리고 작업을 효과적으로 위임하여 팀 구성원이 작업에 대한 소유권을 가질 수 있도록 해야 합니다.
- 갈등 해결: 팀 내에서 또는 외부 이해 관계자와 갈등이 발생할 수 있으며 리더는 건설적이고 외교적으로 해결하여 상호 이익이 되는 해결책을 찾을 수 있어야 합니다.
- 멘토링 및 코칭: 리더는 지도, 멘토링 및 기술 개발 기회를 제공하여 팀 구성원의 전문적인 성장에 전념해야 합니다.
- 문화적 적합성: 이상적인 리더는 팀의 환경과 작업 습관을 형성하는 데 중요한 역할을 하므로 회사의 가치와 문화에 부합해야 합니다.
대화 중에 그는 효과적인 엔지니어링 관리에 대한 접근 방식을 부모의 접근 방식에 비유했습니다. 엔지니어링 관리자와 부모 사이의 Peeyush Ranjan의 비유는 흥미롭고 생각을 자극하는 것입니다. 그가 설명했듯이 두 역할 모두 목표를 달성하고 잠재력을 최대한 발휘할 수 있도록 책임을 안내하고 육성하는 책임이 있습니다. 부모가 자녀의 성장과 성공을 돕기 위해 지원과 격려를 제공하고 때때로 올바른 방향으로 추진해야 하는 것처럼 엔지니어링 관리자도 팀원을 위해 똑같이 해야 합니다.
이것은 저에게 오래된 속담을 생각나게 했습니다. 사람에게 물고기 잡는 법을 가르쳐주면 평생 먹일 수 있습니다.”
이 속담은 단순히 문제에 대한 일시적인 해결책을 제공하는 것이 아니라 사람들이 자급자족하고 독립적이 되는 데 필요한 기술을 가르치는 것의 중요성을 강조합니다. 이는 장기적인 성장과 자립을 촉진하는 교육과 권한 부여의 가치를 강조합니다.
이 원칙은 제품의 중요한 부분뿐만 아니라 해당 분야의 주니어 엔지니어를 육성하고 개발하는 데 도움을 주는 직원 및 수석 엔지니어에게도 적용됩니다.
팀원을 위한 지원 및 육성 환경 조성
팀 구성원은 서로 다른 강점, 약점 및 개발 요구 사항을 가지고 있습니다. 효과적인 엔지니어링 관리자는 이러한 차이점을 인식하고 각 팀 구성원의 요구에 맞는 개별화된 지원 및 개발 기회를 제공하기 위해 노력합니다. 각 개인이 번성할 수 있는 환경을 조성하려면 팀원의 동기, 경력 목표 및 관심사에 맞춰야 합니다.
동시에 엔지니어링 관리자는 명확한 방향 감각을 제공하고 팀원에게 기대치를 설정해야 합니다. 부모가 자녀의 행동에 대한 경계와 기대치를 설정하는 것처럼 엔지니어링 관리자는 명확한 성과 기대치를 설정하고 책임을 확립하며 지속적인 개선 문화를 조성해야 합니다. 부모가 자녀에게 하는 것처럼 팀원의 성장과 발전을 돕기 위해 정기적인 피드백과 코칭을 제공해야 합니다.
궁극적으로 엔지니어링 관리자의 역할은 팀원이 성장하고 배우고 잠재력을 최대한 발휘할 수 있는 지원 및 양육 환경을 제공하는 것입니다. Peeyush는 부모의 비유를 사용하여 이 역할에서 공감, 인내 및 성장 마인드셋의 중요성을 강조합니다. 유능한 엔지니어링 관리자는 팀원의 입장이 되어 그들의 요구 사항을 예측하고 성공에 도움이 되는 적절한 수준의 지원을 제공할 수 있어야 합니다.
결론
요약하면 엔지니어링 관리에 대한 Peeyush의 접근 방식은 책임, 권한 부여, 엔지니어 성장 및 육성, 지속적인 개선의 원칙과 일치합니다. 성공적인 팀을 만들고 효과적인 리더십을 제공하는 데 대한 그의 통찰력은 새 팀을 시작하거나 엔지니어링 관리자 역할로 전환하는 모든 사람에게 매우 중요합니다. 기술 리더십과 공감 및 인력 관리 기술의 균형을 유지함으로써 엔지니어링 관리자는 팀 구성원이 성장하고 잠재력을 최대한 발휘할 수 있도록 지원하고 육성하는 환경을 조성할 수 있습니다.
성공적인 리더는 현재 조직의 고유한 상황을 고려하지 않고 맹목적으로 이전 경험이나 접근 방식을 적용하고 즉시 뛰어드는 것을 자제하는 적응형 스타일을 채택해야 합니다. 대신 팀과 회사의 특정 요구에 맞게 리더십 전략을 조정해야 합니다.
추천 자료:
참고: 위 책에 대한 링크는 제휴 링크입니다.