소프트웨어 개발은 팀 스포츠입니다. 개인의 성과는 팀과 회사 전체의 성과만큼 중요하지 않습니다.
작업 방식을 개선하면 팀 성과가 향상됩니다 . 모든 사람의 업무 방식을 개선하면 팀의 성과가 배가됩니다 .
전체 팀의 성과를 배가시키면 엄청나게 효율적인 개인 기여자가 되는 것보다 주목받고 승진하는 데 훨씬 더 빠른 길을 가게 될 것입니다.
다른 사람의 성과를 높이려면 개인의 성과를 높이는 것과는 다른 사고방식과 접근 방식이 필요합니다. 이 기사에서는 팀(또는 회사 전체)의 성과를 배가할 수 있는 16가지 입증된 방법을 보여 드리겠습니다.
구글에 "10x 개발자"라고 검색하면 개인 성과와 관련된 검색결과가 많이 나옵니다.
내가 얻은 최고의 결과 중 몇 가지 인용문을 확인하세요.
"저는 팀 내 7~8명의 개발자와 함께 작업의 60%를 수행하는 팀에 익숙합니다."
이런 말은 나를 오그라들게 만든다.
이것. 이다. 아니다. 어떻게. 우리. 짓다. 현대의. 소프트웨어.
소프트웨어 개발은 팀 게임입니다. 아니면 팀 게임도 가능합니다. 그리고 게임은 순수한 결과가 아닌 비즈니스 결과에 따라 점수가 매겨집니다. 개인으로서는 효율적 이지 않고 팀이나 조직으로서는 효과적 입니다.
엔지니어링 부사장으로서 저는 경쟁력 있는 코더를 찾고 있지 않습니다. 몇시에 몇 줄의 코드를 작성하는지 상관하지 않습니다. 그리고 단일 개발자가 팀 작업의 60%를 수행하는 것은 자랑할 만한 것이 아니라 우선적으로 해결해야 할 기능 장애라고 생각합니다.
그렇다면 내가 찾고 있는 사람 은 누구인가? 다음 수학을 고려해 봅시다:
자신의 결과물만 개선한다면 팀의 결과물에 추가하는 것 입니다.
그러나 모든 팀원의 성과를 향상시키면 팀의 성과 도 배가 됩니다.
그리고 곱셈은 덧셈을 꽤 빨리 이깁니다.
당신이 정말로 신화적인 10배 개발자라 할지라도, 팀의 규모에 관계없이 팀의 성과는 10 "단위"만큼만 증가할 것입니다. 그러나 전체 팀의 성과를 2배만 향상시킨다면 단 10명으로 구성된 팀의 경우 10개의 "단위"가 증가하게 됩니다. 그리고 100명으로 구성된 팀의 경우 100개의 "단위"로 구성됩니다.
그리고 우리는 당신이 팀의 다른 모든 개발자보다 10배 더 효율적일 때의 극단적인 상황에 대해 이야기하고 있습니다. 실제로 10명보다 훨씬 작은 팀에서는 곱셈이 덧셈을 능가합니다.
게다가 우리는 원시 출력에 대해서만 이야기하고 있습니다. 얼마나 세게 밀었는지, 어느 방향으로 밀었는지는 아닙니다. 그리고 팀 전체가 추진하는 방향이 중요합니다.
모터보트에 100마력 엔진이 있는지, 1000마력 엔진이 있는지는 중요하지 않습니다. 이 엔진이 보트를 앞으로 밀지 않고 옆으로 밀거나 뒤로 밀면 문제가 되지 않습니다. 잘못된 방향으로 밀면 자신의 결과물을 낭비할 수 있을 뿐만 아니라 팀 전체의 작업을 훼손할 수도 있습니다.
당신은 -10x 개발자가 될 수 있습니다.
그리고 이 관계는 양면적이다.
올바른 방향으로 추진 하더라도 나머지 팀원이 반대 방향으로 추진하면 신 모드의 10배 생산성이 무효화될 수 있습니다.
당신이 그들을 도와야 그들이 당신을 도울 수 있습니다. 팀의 약점을 취소하여 팀이 성과를 취소하지 않도록 하세요.
반직관적으로 들릴 수도 있지만, 팀 전체를 더욱 효율적으로 만드는 데 집중하는 것이 자신의 성과에만 집중하는 것보다 개인의 성과를 높이는 더 나은 방법인 경우가 많습니다.
이것이 바로 나와 다른 관리자들이 팀에 긍정적인 영향을 미칠 수 있는 능력만큼 개인의 효율성을 추구하지 않는 이유입니다. 그리고 귀하가 더 광범위한 영향을 미칠수록, 즉 더 많은 사람들이 올바른 방향으로 빠르게 나아갈 수 있도록 도울수록 귀하는 회사에 더 많은 가치를 창출할 수 있습니다.
하지만 내 말을 그대로 받아들이지는 마세요.
몇몇 유명 회사의 엔지니어링 경력 사다리를 살펴보겠습니다.
CircleCI는 6단계 사다리(E1-E6)를 사용합니다: Associate Engineer, Engineer, Senior Engineer, Staff Engineer, Senior Staff Engineer, Principal Engineer.
레벨 E1-E3은 작업 실행에 중점을 둡니다. 태스크 내 E1, 에픽/프로젝트 내 E2, 팀 내 E3.
레벨 E4-E6에서는 기술을 활용하여 영향력을 확장하고 생성합니다. 그들은 다른 사람들을 촉진하고 안내하며 멘토링합니다. 팀 내 및 팀의 비즈니스 이해관계자와의 E4, 여러 팀 전체의 E5, 조직 전체의 E6.
출처: https://docs.google.com/spreadsheets/d/131XZCEb8LoXqy79WWrhCX4sBnGhCM1nAIz4feFZJsEo/edit#gid=0
카르타는 7층 사다리(L2~L8)를 사용합니다. 자신의 말에 따르면:
평준화에 있어 가장 중요한 한 가지, 즉 회사에 미치는 영향을 쉽게 설명할 수 있습니다. 직원이 진행하면서 작업(L2), 기능(L3), 문제(L4), 팀(L5), 조직에 미칠 것으로 예상되는 (대략적인) 영향을 설명하여 전체 시스템을 요약할 수 있습니다. (L6), 회사 (L7), 업계 (L8).
출처: https://medium.com/building-carta/engineering-levels-at-carta-d33db2a55a20
Spotify는 선임, 직원 또는 주요 개발자와 같은 외부 직위에 대해서는 그다지 신경 쓰지 않습니다. 그들은 매우 유연하며 직원들이 자신에게 가장 적합한 것을 선택하도록 합니다. 그러나 내부적으로 그들은 "영향 범위"라고 부르는 것에 따라 구성된 4단계 사다리를 사용합니다.
그리고 그들은 이러한 4가지 수준("단계")을 다음과 같이 설명합니다.
Spotify에서 귀하의 경력 경로에 대한 4가지 단계를 확인했습니다. 각 단계는 책임 증가뿐 아니라 기술 내에서의 영향력 증가(개인 단계, 분대/챕터 단계, 부족/길드 단계, 기술/회사 단계)로 표시됩니다.
출처: https://engineering.atspotify.com/2016/02/spotify-technology-career-steps/
Dropbox는 소프트웨어 엔지니어 1~4, 직원 소프트웨어 엔지니어, 수석 소프트웨어 엔지니어, 수석 소프트웨어 엔지니어 등 7단계 등급(IC1-IC7)을 사용합니다.
다음은 각 수준의 "영향력 범위"를 설명하는 방법입니다.
출처: https://dropbox.github.io/dbx-career-framework/
나는 이들 4개의 회사를 선택했는데, 그들의 사다리가 가장 간결하게 설명되어 있어 거의 직접적으로 인용할 수 있기 때문입니다. 그러나 비슷한 패턴이 업계 전체에서 광범위하게 반복됩니다.
그러면 이 모든 회사에서 당신을 승진시키는 것은 무엇입니까? 그들은 무엇을 가장 중요하게 생각합니까?
다시 말하지만, 당신이 만드는 영향의 영역입니다.
당신이 긍정적인 영향을 미치는 조직의 규모가 커질수록(그리고 더 많은 사람들이) 회사에 더 많은 가치를 부여하게 될 것이며 더 많은 인정을 받게 될 것입니다.
그러한 수준에서 작동하는 것은 무섭게 들릴 수 있습니다. 그러나 전체 팀의 성과를 2~3배 높이는 것은 생각보다 덜 어려운 경우가 많습니다. 개인 성과를 10배로 늘리는 것보다 쉽습니다.
좋아요, 그럼 어떻게 할 수 있나요?
다른 사람의 성과에 긍정적인 영향을 미칠 수 있는 방법이 많기 때문에 완전히 철저하기는 어렵습니다. 하지만 좋은 요점을 파악하고 스스로 더 많은 아이디어를 생각해 낼 수 있는 사고방식을 구축할 수 있도록 몇 가지를 살펴보겠습니다.
작게 시작하십시오. 팀원들과 이것저것 토론해보세요. 코드 검토, 페어 프로그래밍, 팀 회의를 통해 지식을 전파하세요. 당신의 일과 행동을 통해 모범을 보이십시오.
코딩뿐만 아니라 프로세스, 커뮤니케이션, 시간 관리 등 팀 성과에 영향을 미칠 수 있는 모든 것에 대한 지식을 전파하세요.
브라운백, 워크숍, 블로그를 통해 더 많은 사람들에게 영향력을 확대하세요. 다른 팀과 협력할 수 있는 기회를 잡으세요.
마지막으로, 전문가로 널리 인정받으면 전사적 학습 프로그램을 관리하거나 실천 커뮤니티를 선도하는 책임을 맡으세요.
일회성 감정이 되지 마십시오. 이전 경험에만 의존하지 마십시오.
지속적으로 배우십시오. 회사 외부의 동료들과 이야기를 나눠보세요. 읽다. 회의에 참석하십시오. 업계의 최신 정보를 받아보세요. 다른 회사는 무엇을 하고 있는지 조사해 보세요. 새로운 기술과 라이브러리를 실험해보세요.
팀이 다음 단계에 도달하는 데 도움이 되는 혁신적인 지식의 원천이 되십시오.
어떤 프로세스를 사용하든 소프트웨어 개발은 결국 크고 작은 프로젝트의 흐름입니다. 얼마나 잘 분석하고, 분류하고, 계획하고, 실행하는지가 이를 운영하는 팀의 성과에 엄청난 영향을 미칩니다.
프로젝트를 준비하고 이끄는 자원 봉사는 여러 사람의 성과에 영향을 미칠 수 있는 좋은 방법입니다.
요구사항 분석, 구현 계획, 작업 분석 등 프로세스의 한 부분에 대한 책임을 지는 것부터 시작하세요.
프로세스를 처음부터 끝까지 소유하고 전체 프로젝트 실행을 감독하여 전화를 겁니다.
그리고 최대의 효과를 얻으려면 대규모 팀 간 프로젝트를 조정하는 책임을 져야 합니다.
복잡한 소프트웨어 시스템에는 모듈, 라이브러리, 하위 시스템, 제품, 서비스, API, 도구, 문서, 파이프라인 등 장기간 유지 관리해야 하는 "움직이는 부분"이 많이 있습니다. 명확한 소유권이 없으면 잘 유지하기가 쉽지 않습니다.
그리고 얼마나 잘 유지관리되는지는 이를 사용하는 모든 사람의 성과에 큰 영향을 미칩니다. 일부 초석 모듈의 경우 이는 회사 전체의 모든 사람을 의미할 수도 있습니다.
회사의 코드베이스, 제품 또는 하위 시스템의 일부를 소유하고 이를 좋은 상태로 유지함으로써 놓칠 수 없는 영향을 미칠 수 있습니다.
소규모에서는 작은 코드 모듈이나 웹 서비스와 같이 팀 내부의 무언가를 유지 관리할 수 있습니다.
더 큰 규모에서는 중앙 디자인 시스템이나 고객 지향 API와 같이 전체 제품 및 회사에 대한 기본 요소를 유지할 수 있습니다.
효율적인 도구는 팀의 속도에 엄청난 변화를 가져옵니다. 그리고 우리 작업에는 최적화, 자동화 또는 보다 숙련된 방식으로 사용할 수 있는 것들이 너무 많습니다.
견고한 CI/CD 파이프라인. 코드 형식화 및 Linting. 빠른 테스트 스위트. 자동화된 코드 및 테스트 데이터 생성. 더욱 효율적인 코드 탐색. IDE의 모든 기능을 활용합니다. 더 나은 로컬, 테스트 및 준비 환경. 잘 구성된 프로젝트 관리 시스템.
디버깅, 모니터링, 로깅을 위한 강력한 도구입니다. 구성 요소 및 공유 라이브러리의 검색 가능성이 향상되었습니다. 워크플로우(Github, Slack, Trello 등) 자동화 및 연결. 목록은 계속 이어질 수 있습니다.
도구를 개선하고, 반복 작업을 자동화하거나, 기존 도구를 더 잘 사용하는 방법에 대한 지식을 전파함으로써 팀과 회사 전체의 성과에 큰 영향을 미칠 수 있습니다.
당신을 대신하여 프로젝트를 방문할 동료의 입장이 되어 보세요. 이해하기 쉬운 코드와 아키텍처는 전체 팀의 성과를 높이거나 망칠 수 있습니다. 더 깔끔하고 단순하며 탐색 및 디버깅이 더 쉽고 오류 발생 가능성이 낮아집니다.
하나의 구성 요소나 모듈에 대한 상대적으로 작은 개선이라도 팀의 성과를 크게 향상시킬 수 있습니다. 그리고 제품 전반의 코드 규칙과 같은 보다 글로벌한 개선은 회사 전체에도 영향을 미칠 수 있습니다.
사람들을 하나로 모아 올바른 방향을 향해 나아가는 것은 팀 전체의 성과를 배가시키는 가장 강력한 방법 중 하나입니다. 그리고 당신은 당신이 생각하는 것보다 훨씬 더 많은 영향을 미칠 수 있습니다.
우선, 올바른 방향을 스스로 이해하십시오. 회사의 목표, 비즈니스 및 고객을 이해하기 위해 노력하십시오. 이를 통해 해결해야 할 문제가 무엇인지 이해하고 이러한 문제에 대한 더 나은 솔루션을 찾을 수 있습니다.
둘째, 팀이 올바른 방향으로 갈 수 있도록 도와주세요. 배운 내용을 공유하고 문서화하세요. 팀이 관련 지표를 추적하고, 피드백을 수집하고, 보다 반복적이고 민첩한 방식으로 작업할 수 있도록 도와주세요. 귀하의 제품 관리자를 위한 신뢰할 수 있는 컨설턴트가 되십시오.
셋째, 다른 팀 및 이해관계자들과 협력하여 회사 전체가 한 방향으로 나아갈 수 있도록 돕습니다.
소프트웨어는 소프트웨어 개발자에 의해서만 만들어지는 것이 아닙니다. 이는 개발자, 디자이너, 테스터, 제품 관리자, 분석가, 데이터 과학자, 사용자 연구원 및 다양한 비즈니스 이해관계자(고객 지원, 마케팅, 영업, 재무)의 공동 노력입니다.
그들을 지원하십시오. 긴밀히 협력하십시오. 그들의 삶을 더 쉽게 만들고, 그들이 빠르게 일할 수 있도록 돕고, 전체 다기능 그룹이 원활하게 함께 일할 수 있도록 노력을 조정하는 데 노력을 기울이십시오.
이를 통해 엔지니어링 팀보다 훨씬 더 광범위한 범위에서 조직에 영향을 미칠 수 있습니다.
팀과 조직의 업무 방식은 성과에 근본적인 영향을 미칩니다. 그리고 이는 관리자와 스크럼 마스터만을 위한 것이 아닙니다. 개발자로서 당신도 회사 프로세스에 많은 영향을 미칠 수 있습니다.
첫째, 자신을 교육하십시오. 경험주의, 반복 개발, 제품 발견 및 Agile의 원칙을 이해합니다. CI/CD 또는 기능 플래그 기반 개발과 같은 최신 기술 접근 방식을 알아보세요. 현대의 다기능 팀이 어떻게 기능하는지 알아보세요.
둘째, 비판적인 눈으로 관찰하고, 개선의 기회를 적극적으로 찾고, 프로세스 형성에 주도적으로 참여하십시오. 팀 내부와 외부에서 적극적으로 활동하십시오. 프로세스 관련 토론에 참여하십시오. 새로운 아이디어를 구현하는 챔피언.
많은 사람들과 팀의 성과를 배가시킬 수 있을 것입니다.
많은 기술적 개선에는 장기간에 걸친 전체 팀의 공동 노력이 필요합니다. 즉, 기존 프레임워크를 새로운 프레임워크로 연속적으로 교체하고, 새로운 코딩 규칙 세트로 마이그레이션하고, 코드베이스의 중요한 부분을 점진적으로 리팩터링하는 것입니다.
일관되게 관리하고 추진하지 않으면 이러한 계획은 일반적으로 빠르게 흐지부지됩니다. 그리고 그들의 결과는 기껏해야 평범합니다.
그러한 이니셔티브를 주도하기 위해 자원 봉사하십시오. 이를 잘 계획하고 관리한다면, 다른 사람들이 더 쉽게 기여할 수 있도록 하고, 주변의 노력을 조정하고 끝까지 진행한다면 팀과 조직의 향후 성과에 상당한 영향을 미칠 수 있습니다.
효과적인 팀워크를 위해서는 명확하고 투명한 의사소통이 필수적입니다. 이는 사람들이 얼마나 잘 협력하고, 얼마나 서로를 신뢰하고, 얼마나 올바른 결정을 내리고, 목표를 얼마나 잘 이해하는지를 결정합니다.
그리고 이는 팀 내부, 팀 간, 다양한 역할과 부서 간, 직원과 경영진 간 등 모든 수준에 적용됩니다. 의사소통의 품질은 전체 조직의 성과를 방해하거나 잠금 해제할 수 있습니다.
그리고 그것을 개선하기 위해 많은 일을 할 수 있습니다.
다른 팀과 상태를 공유하세요. 팀과 회사의 문서, 로드맵, 위키를 좋은 상태로 유지하세요. 다른 팀으로부터 정보를 적극적으로 가져와 팀이 최신 정보를 얻을 수 있도록 도와주세요.
경영진에게 팀의 목표를 명확히 하고 진행 상황을 업데이트하도록 요청하세요. 전사 커뮤니케이션 표준 및 채널(Slack 등) 개선을 제안합니다. 필요할 때마다 팀 간 조정 회의를 시작합니다.
올바른 문화는 하나도 없습니다. 회사마다 비슷한 수준의 성공을 거두더라도 다르게 행동합니다. 그러나 같은 회사 내의 서로 다른 사람, 팀, 부서가 문화적으로 충돌하면 생산성이 저하됩니다.
회사의 문화를 이해하세요. 이를 예시하고 홍보하십시오. 자신의 행동과 의사소통 패턴을 의식하십시오.
이는 생각보다 회사 성과에 더 많은 영향을 미칩니다.
때로는 더 높은 성과에 도달하는 것이 단지 동기 부여의 문제일 뿐입니다. 더 열심히 밀어붙이려는 의지. 성공에 대한 갈망이 더 커졌습니다. 올바른 태도를 갖는 것.
팀의 사기에 영향을 미치기 위해 관리자가 될 필요는 없습니다. 예를 들면. 좋은 기운을 퍼뜨려 보세요. 열정, 낙천주의, 투지를 보여주세요. 일을 재미있게 만드세요. 위기 상황에서 침착하고 침착함을 유지하세요. 팀을 모아 매일 조금씩 더 노력하세요.
그러한 행동은 입소문이 나며, 위에서부터 사람들에게 "권한을 부여"하려는 시도보다 효과가 더 좋은 경우가 많습니다. 그리고 팀 외부로 쉽게 확산되어 광범위한 영향을 미칠 수 있습니다.
조직의 성과를 높이는 또 다른 방법은 채용을 통해서입니다.
가능하다면 채용 과정에 참여해 보세요. 인터뷰에 참여하십시오. 채용 문제를 준비하는 데 도움을 주세요. 이력서를 검토하세요.
채용 과정 자체에 참여할 수 없더라도 새로운 인재를 채용하는 데 도움을 줄 수 있는 방법이 많이 있습니다. 동료를 추천하세요. 블로그, 토론 포럼, 컨퍼런스에서의 연설, 네트워킹을 통해 회사를 홍보하세요. Glassdoor에 긍정적인 리뷰를 남겨주세요.
신입사원의 온보딩과 멘토링을 책임집니다.
다른 누구도 해결할 수 없는 문제를 해결하여 회사에 경쟁 우위를 제공할 수 있다면 엄청난 가치를 창출할 수 있습니다.
이것은 10배 천재의 고독한 작업처럼 들릴 수도 있지만 여전히 팀에 관한 것입니다. 훌륭한 솔루션에 대한 지식을 전파하지 않고 다른 사람이 쉽게 재사용할 수 있도록 설계하지 않으면 병목 현상이 발생하고 승수 대신 잠재적인 단일 실패 지점이 될 것입니다.
가치를 창출하는 것이 아니라 회사를 위험에 빠뜨리게 됩니다.
그러나 모든 사람이 귀하의 솔루션을 이해하고 그 위에 구축할 수 있는 방식으로 복잡한 문제를 해결할 수 있다면 귀하는 게임 체인저가 될 수 있습니다.
회사는 막대하고 장기적인 영향을 미치는 결정에 대처해야 하는 경우가 많습니다. 기술 스택 선택. 클라우드 공급업체 선택. 빌드와 구매 결정을 내립니다.
더 자주, 작은 질문이 떠오릅니다. 프로젝트의 대략적인 규모는 어느 정도입니까? 기술적으로 가능합니까? 이 문제에 대한 가능한 해결책은 무엇입니까?
귀하의 팀과 전체 비즈니스에 대한 조언자가 되십시오. 업계 환경을 심층적으로 알아보세요. 최신 개발 및 동향에 대한 최신 정보를 받아보세요. 연구를 잘 해보세요. 이를 통해 회사에 많은 가치를 가져올 수 있습니다.
실제로 하위 시스템을 소유하고, 프로젝트를 주도하고, 구축과 구매 결정을 내릴 수 있습니까? 설계자, 관리자, 기술 책임자의 책임이 아닌가요?
그래 넌 할수있어! 잘 운영되는 회사에서는 관리자나 기술 책임자가 가능한 한 많은 것을 기꺼이 위임할 것입니다. 이것이 실제로 그들의 직업입니다. 이는 관리자의 가장 중요한 책임인 성장과 팀의 성과를 높이는 데 도움이 됩니다.
영향력이 더 큰 일부 작업에는 실제로 더 많은 경험이 필요할 수 있습니다. 누구도 코딩 부트캠프를 막 마친 후배가 회사의 모든 팀에서 사용하는 미션 크리티컬 하위 시스템을 소유하게 놔두지 않을 것입니다. 그러나 우리가 논의한 모든 영향은 점진적인 진행을 보입니다.
팀 내에서 소규모 이니셔티브부터 시작하여 영향력의 범위를 점진적으로 확장하세요. 더 많은 성장 기회를 찾으려면 리더 또는 관리자와 협력하세요. 자신, 팀, 회사 전체에서 그러한 기회를 지속적으로 살펴보십시오. 주목받고 평판을 쌓으세요.
이것은 당신을 더 크고 더 큰 스플래시를 만드는 빠른 길로 안내할 것입니다. 10배가 아닌 100배 개발자가 되기 위해. 그리고 - 이것이 당신의 야망이라면 - 결국 스스로 기술 리더가 되는 것입니다.
네, 탄탄한 개발자가 되어야 합니다. 형편없는 일을 스스로 하면서 다른 사람을 위한 승수가 되기는 어렵습니다. 하지만 당신이 정말로 10배, 5배, 아니면 그냥 1배라면 너무 애쓰지 마세요. 개인의 효율성에서 팀과 회사 전체의 효율성으로 사고방식을 전환하세요.
그리고 그렇게 하면 하늘(및 회사 규모)만이 한계가 됩니다. 당신은 10배의 개발자가 될 수 있을 뿐만 아니라 심지어 100배 이상의 개발자가 될 수도 있습니다.