10X 엔지니어는 신화입니까?
현실은 어떤 사람들은 다른 사람들보다 프로그래밍을 더 잘한다는 것입니다.
이전에 기술 회사에서 근무할 때 팀원 중 일부가 어떻게 모든 일을 할 수 있는지 알고 있다는 사실에 경외감을 느꼈습니다.
대학 시절에도 해커톤과 인턴십에 참여하면서 많은 것을 배운 재능 있는 개발자들을 만날 수 있었습니다.
이 기사에서는 사람들이 10X 엔지니어에 대해 가질 수 있는 몇 가지 오해에 대해 알아볼 것입니다. 10X 엔지니어가 무엇인지 살펴본 후 아니, 10X 엔지니어가 되기 위해 제가 드릴 수 있는 최고의 조언을 살펴보겠습니다.
10X 엔지니어란?
많은 개발자들이 10X 엔지니어의 실제 정의에 대해 논쟁할 것입니다. 그러나 명확성을 위해 이제 간단한 정의를 정의해 보겠습니다.
10X 엔지니어는 동료 XNUMX명의 생산성을 높일 수 있는 소프트웨어 개발자입니다.
10X 엔지니어의 아이디어는 생각보다 일찍 시작되었을 수 있습니다.
A 연구 논문 1968년부터 "온라인 및 오프라인 프로그래밍 성능을 비교하는 탐색적, 실험적 연구"라는 이름으로 처음으로 일부 최고의 프로그래머가 최악의 프로그래머보다 훨씬 더 나은 성능을 발휘한다는 아이디어를 제안했습니다. 이것이 오늘날 합의된 정의는 아니지만 10X 엔지니어의 아이디어는 곧 학계 외부로 퍼졌습니다.
몇 년 후, 고전 책 The 신화적인 남자의 달 10X 엔지니어의 아이디어를 추가로 설명했습니다. 저자 프레드 브룩스는 다음과 같이 제안합니다. 소프트웨어 개발 팀은 수술 팀처럼 구성될 수 있습니다.
이 팀에는 수석 프로그래머 또는 지원 프로그래머 또는 "간호사"가 있는 "외과의사"가 있습니다.
이 비유는 이해하기 쉽지만 현재 소프트웨어 개발 상태에 적용하면 다소 단순하고 구식이라고 생각합니다.
기술 팀의 팀 역학은 외과 의사의 팀과 매우 다릅니다. 한 사람이 대부분의 작업을 수행하거나 가장 어려운 작업만 수행한다는 이러한 생각은 내가 10X 엔지니어가 되어야 한다고 생각하는 것을 잘못 특성화했습니다.
일반적인 오해
10X 엔지니어에 대한 아이디어가 기술 영역 전체에 퍼져 나감에 따라 대다수의 관리자는 종종 "10X"가 의미하는 바를 잘못 해석합니다.
일반적인 오해는 10X 엔지니어가 동료보다 XNUMX배 많은 코드를 생성한다는 것입니다. 이것은 사실이 아닙니다.
10X 엔지니어는 동료보다 더 많은 코드를 실행 가능하게 생성할 수 있지만 수량은 올바른 측정 기준이 아닙니다. 10줄도 안 되는 시간에 수행할 수 있는 작업을 수행하는 데 수천 줄의 코드를 소비하는 프로그래머를 상상해 보십시오. 마찬가지로 XNUMXX 엔지니어가 XNUMX배 더 빠르게 코딩하지 않습니다!
10X 엔지니어에 대한 또 다른 오해는 단순히 코딩 지식이 있기 때문에 훌륭하다는 것입니다. 다시 말하지만, 이것은 잘못된 메트릭을 보는 또 다른 경우입니다.
10X 엔지니어를 그토록 가치 있게 만드는 것은 그가 팀과 조직에 가치를 10배 더 추가하는 방법입니다. XNUMXX 엔지니어는 코딩 지식을 사용하고 회사의 요구 사항에 맞출 수 있는 능력 때문에 필수 불가결합니다.
관리자는 문제를 해결하고 다른 사람들과 잘 협력할 수 있는 엔지니어를 찾아야 합니다. 코딩 지식을 넘어 10X 엔지니어는 주변 사람들의 작업 수준을 높일 수 있어야 합니다.
10배 엔지니어가 되는 XNUMX가지 방법
이 섹션은 다음 고용을 찾고 있는 관리자이거나 단순히 10X 엔지니어가 되기를 열망하는 엔지니어인 경우에 적합합니다.
다음은 10X 엔지니어의 주요 습관과 특성입니다.
그들은 기술 스택을 최대한 활용하는 방법을 알고 있습니다.
당신의 도구를 아는 것이 내가 당신에게 줄 수 있는 가장 확실한 조언일 것입니다. 그러나 많은 개발자는 효율적으로 작업하는 방법을 학습하여 여전히 워크플로를 개선할 수 있습니다.
나와 함께 일한 대부분의 10x 엔지니어는 터미널 주변을 잘 알고 있습니다. 초보자에게는 약간의 학습 곡선일 수 있지만 셸 명령을 즉석에서 만드는 방법을 이해하면 장기적으로 작업을 훨씬 빠르게 수행하는 데 도움이 됩니다.
10x 엔지니어는 약간 게으른 것도 이점을 얻을 수 있습니다. 내가 무슨 말인지 말해주지.
새로운 커밋을 프로덕션으로 푸시하기 위해 매일 일련의 명령을 수동으로 수행해야 한다고 상상해 보십시오. 10x 엔지니어는 반복적인 작업을 피해야 합니다. 그들은 가능한 한 많은 시간을 자동화하기 위해 추가 노력을 기울입니다.
최고의 엔지니어도 장기적으로 생각해야 합니다. 스타트업에서 일하고 있다면 빠르고 쉬운 솔루션에 집중하고 싶은 마음이 들 수 있습니다. 그러나 이러한 솔루션은 규모를 축소할 수 없습니다.
그들은 배움을 멈추지 않는다
훌륭한 개발자는 배움을 멈추지 않습니다. 최고의 엔지니어는 바쁜 업무 시간에 작업에 적용할 수 있는 새로운 개념, 언어 및 프레임워크를 시험해 볼 시간을 찾습니다.
10x 엔지니어는 건전한 호기심을 유지해야 합니다. 그들은 종종 스스로에게 "이것이 더 잘할 수 있을까?"라고 묻습니다. 또는 "이 문제를 해결하는 더 간단하거나 더 효율적인 방법이 있습니까?"
따라서 10x 엔지니어는 학습 기술 자체를 마스터해야 합니다. 배우는 방법을 배우는 것은 급변하는 환경에서 살아남는 가장 좋은 방법입니다.
그들은 시간을 가장 잘 보내는 방법을 알고 있습니다.
훌륭한 소프트웨어 엔지니어는 특히 자신의 시간에 무엇을 할 것인지 결정하는 데 능숙합니다.
10X 엔지니어는 일반 엔지니어보다 더 많은 시간을 일할 필요가 거의 없습니다. 엔지니어는 특정 요청을 거절하고 거절할 때를 알아야 합니다. 그들은 어떤 작업을 스스로 수행하고 어떤 작업을 위임해야 하는지 알아야 합니다.
유능한 엔지니어는 작업이 신속하게 수행할 가치가 있는지 여부를 식별하는 방법을 숙달해야 합니다. 명심해야 할 한 가지 정신 모델은 파레토 원리입니다.
일의 가치의 80%는 노력의 20%에서 나온다는 원칙입니다. 즉, 모든 작업이 동일하지는 않습니다.
그들은 적절한 멘토링을 찾습니다
훌륭한 엔지니어는 업계의 노련한 베테랑에게서 많은 것을 배울 수 있습니다. 10X 엔지니어는 종종 지식을 넓히기 위해 직장 안팎에서 멘토링을 찾고 있습니다.
마찬가지로, 10X 엔지니어는 자신의 팀원에게 멘토링 역할을 수행함으로써 이점을 얻을 수 있습니다. 더 초보적인 팀원들에게 열린 마음으로 팀 전체가 활기를 띠고 있습니다.
그들은 비즈니스를 이해합니다.
간단히 말해서 소프트웨어 엔지니어링은 컴퓨터가 실제 문제를 해결하는 방법일 뿐입니다. 이를 염두에 두고 유능한 엔지니어는 해결하려는 문제의 전문가가 되어야 합니다.
엔지니어로서 자신이 속한 비즈니스 또는 산업을 이해하기 위해 노력하는 것은 현명한 생각입니다. 10x 엔지니어는 다른 부서와의 회의에 적극적으로 참여해야 합니다.
엔지니어가 비즈니스 맥락에서 다른 부서가 수행하는 작업을 이해하는 데 노력을 기울인다면 효과적인 의사소통자가 될 것입니다. 효과적인 의사 소통은 팀이 비즈니스 요구 사항 및 프로젝트 사양을 오해하는 것을 방지하는 데 도움이 됩니다.
결론
이제 10X 엔지니어가 어떤 모습인지 더 명확하게 알 수 있기를 바랍니다. 또한 10X 엔지니어가 아닌 것에 대한 이해도 있어야 합니다.
물론 위의 조언은 모든 소프트웨어 엔지니어링 역할에 적용할 수 있는 일반적인 지침일 뿐입니다. 당신이 최고가 될 수 있는 방법을 알고 싶다면 DevOps 엔지니어, 전체 스택 개발자 또는 데이터 과학자에게 가장 좋은 방법은 배우고 구축할 기회를 찾는 것입니다.
당신의 현재 위치가 좋은 학습 환경인지 생각해 보십시오. 아마도 현재 기술 스택 외부의 기술을 탐색할 수 있는 사이드 프로젝트 작업에 더 많은 시간을 할애하고 싶을 것입니다. 다음은 기술 분야에서 이점을 얻기 위해 따를 수 있는 몇 가지 팁일 뿐입니다.
엔지니어 지망생에게 가장 도움이 되는 조언은 무엇이라고 생각하십니까?
댓글을 남겨주세요.