훌륭한 JavaScript 개발자를 찾는 데 어려움을 겪고 있습니까? 멘토 쉽이 답이다

드라이 랩-Vern (CC-BY-NC-2.0)

우리가 협력하는 팀에 대한 멘토십의 영향에 대해 더 많이 연구할수록, 그 변화의 규모에 따라 더 많이 날아갑니다. 멘토링 비용은 시간이 지남에 따라 선형으로 증가하지만 멘토링의 영향은 기하 급수적으로 증가하며 생산성이 복잡해지면 투자 한 시간과 돈보다 더 큰 규모의 주문이 반환됩니다.

근본적으로 다른 규모 (선형 대 지수)로 인해, 멘토십에 더 많은 투자를함으로써 보상받을 금액을 뇌로 감쌀 수 없습니다. 우리의 두뇌는 선형적인 용어로 생각하기가 어려워 보이고, 지수 척도 및 복리 보상으로 생각하기가 어려워요.

선형 적 사고 문제는 전체 소프트웨어 산업이 근본적으로 훈련에 대한 투자 부족과 같은 큰 실수를하게 할 수 있습니다. 결과가 좋지 않습니다.

종종 관리자는 직원이 코드 작성에 바쁘지 않으면 효과적으로 활용되지 않는다는 잘못된 생각에 빠지게됩니다. 사실은 그 믿음이 단순히 뒷받침되지 않는다는 것이 밝혀졌습니다.

  • 56,000 명 이상의 코더에 대한 2016 Stack Overflow 설문 조사에 따르면 멘토링 프로그램은 대학 학위보다 높은 임금과 관련이 있습니다. 이는 멘토링이 기술을 배우는 데 매우 효과적인 방법이라는 사실을 반영합니다.
  • 2017 Stack Overflow 설문 조사에 따르면, 회사가 후원하는 학습 기회는 직원들이 구직 기회에서 가장 많이 찾는 이점 중 일관되게 순위를 매 깁니다.
  • 직원의 88 %가 더 많은 교육을 통해 혜택을 얻을 수 있다고 생각합니다.

멘티를위한 멘토십 혜택

  • 학습 및 성장 가속화
  • 자신감 증가
  • 긍정적 인 예에보다 효과적으로 접근 (전문가가하는 방식으로 일하는 방법)
  • 공헌 / 협업 / 아이디어 공유에 대한 두려움 감소
  • 의사 소통 능력 향상
  • 멘티는 더 많은 투자와 가치를 느낍니다
  • 상향 이동성 향상-Sun Microsystems의 연구에 따르면 멘티가 승진 될 가능성이 5 배 더 높습니다
  • 멘티는 멘토가되어 이러한 모든 혜택을

고용주를위한 멘토십 혜택

  • 신병 모집
  • 개발자 생산성 및 보존력 향상 ¹ ²
  • 지식 사일로 감소
  • 버스 팩터 개선 — 승계 위험 감소
  • 보다 긍정적이고 도움이되고 협력적인 팀 문화를 만듭니다.
  • 충성도 증가
  • 직원 참여 및 동기 부여 증가, 재무 성과 향상 ³
  • 리더 식별 및 홍보 파이프 라인 개선 – 멘토가 승진 될 가능성이 6 배 더 높습니다 (Sun Microsystems)

업계에서는 기술 격차가 커지고 있다는 사실을 인식하고 온라인 학습, 무료 서적 등을 무료로 구독하여 문제를 해결하려고 시도했지만 다음과 같은 이유로 직원들이 이러한 리소스를 충분히 활용하지 못합니다.

  • 직원들은 일반적으로 무엇에 집중해야하는지 배우는 방법을 알지 못하며 무료 학습 구독을 통한 분류는 자신의 직무와 직접 관련된 자료를 찾기가 어려울 때 엄청난 시간 낭비처럼 느껴집니다
  • 직원들은 경력 개발이 회사의 일상 업무 흐름을 방해 할만큼 중요하지 않다고 두려워합니다.

멘토는 직원과 1 : 1 관계를 맺습니다. 좋은 멘토는 무작위 학습 자료를 검색하는 데 시간을 낭비하지 않고 약점을 빠르고 쉽게 식별하고 지식 격차를 메울 수 있어야합니다.

멘토링을 정규 직원 업무에 통합하면 인식 된 일일 워크 플로우 "중단"을 제거하고 직원들이 서로 배우고 교류 할 시간을 공식적으로 할당 할 수 있습니다.

생산성 향상 10 배

연구의 우세는 개발자들 사이에 성능 차이가 있다는 것을 시사합니다. Steve McConnell (저자,“Code Complete”)을 인용하려면 :

“프로그래머들 사이에 크기 차가있다”는 일반적인 발견은 다른 많은 전문 프로그래머 연구에 의해 확인되었다 (Curtis 1981, Mills 1983, DeMarco and Lister 1985, Curtis et al. 1986, Card 1987, Card 1987, Boehm and Papaccio 1988, Valett and McGarry 1989, Boehm et al 2000).

그렇다고해서 우수한 성능의 개발자가 10 배 많은 코드를 작성하거나 10 배 많은 기능을 제공한다는 의미는 아닙니다. 그 의미는 10 배의 조직 가치를 제공한다는 것입니다. (“10x 시작”참조).

반대로, 많은 개발자들은 조직적인 가치를 제공하는 소프트웨어를 생산할 수 있지만 막대한 양의 기술 부채가 발생하는 동안 그렇게합니다. 유지하기 어렵거나 불가능한 코드 작성, 버그로 인한 피해. 보통 둘 다

이러한 개발자는 단기적으로 가치를 창출 할 수 있지만 시간이 지남에 따라 순 마이너스 가치를 조직에 제공합니다.

문제는 선임 개발자를 고용하기가 어렵다는 것입니다.

미국의 주니어와 시니어 개발자 급여의 평균 차이는 연간 $ 4 만입니다 (출처 : Indeed.com). 일부 회사는 더 많은 주니어 개발자와 더 적은 시니어 개발자를 고용하여 비용을 절감하려고합니다.

이 전략은 적절한 지침이 없으면 후배 개발자가 일반적으로 제품 품질과 생산성 저하의 급여 차이보다 훨씬 많은 비용을 들이기 때문에 역효과를 낳습니다.

돈을 절약하려면 저렴한 개발자를 고용하지 마십시오. 더 나은 개발자를 양성하십시오.

선임 개발자는 찾아서 모집하기가 어렵습니다. 기술 일자리 성장이 수년간 시장에서 새로운 개발자의 유입을 지속적으로 능가했기 때문에 고위 개발자를 고용하는 경쟁은 치열하며 급여는 가장 잘 자금을 조달 한 회사를 제외한 모든 예산을 쉽게 초과 할 수 있습니다. 이 글을 쓰는 시점에서, 최고 기업은 최고급 수석 개발자를 위해 1 억 5 천만 달러에서 2 억 5 천만 달러 (골든 핸드 커프 유지 전략을 채택한 회사에서 최대 4 억 달러)를 소비합니다.

어쨌든 선임 개발자 란 무엇입니까? 아마도 당신은 10,000 시간의 규칙에 대해 들어봤을 것입니다. 공예를 마스터하려면 약 10,000 시간의 고의적 인 연습이 필요합니다. 약 6-10 년입니다. 그러나 1 ~ 5 년의 경력을 가진 개발자는 종종 "선임 개발자"직책을 채우기 위해 고용됩니다. 당연히 10k 시간 수준의 숙달은 오늘날 업계에서 "고급 개발자"를 정의하는 데 사용되는 것이 아닙니다.

나는 20 년의 경험을 가진 개발자가 할 일 앱을 만드는 것을 믿지 않을 것이며, 1 년 미만인 다른 사람들은 미션 크리티컬 한 제품의 아키텍처를 믿었습니다. 경험을 대신 할 수있는 것은 없지만 첫해가 지나면 경험은 기술에 대한 열정과 그 기술을 능가하는 동기보다 훨씬 중요합니다.

1 ~ 3 년 후에는 우수성과 고의적 인 연습에 전념하는 개발자와 J-O-B를 위해 노력하는 개발자의 차이를 실제로 보게됩니다. "고급"개발자는 현재이 기술의 마스터가 될 필요는 없지만 최소한 그 길에 있어야합니다.

즉, 실제 경험에 대한 대체물은 실제로 없습니다. 당신은 전에 가던 곳에서 필요한 기술을 깊이 익힐 수있는 충분한 연습 시간을 가진 누군가로부터 실제로 혜택을받을 수 있습니다. 훈련이 아무리 훌륭하더라도 팀을 도울 수있는 전문가 멘토가 한 명 이상있는 것이 좋습니다.

이상적인 전문가 멘토 속성 (이들 중 대부분을 가져야 함)

  • 감정 이입
  • 인내
  • 훌륭한 의사 소통 및 기술 작가
  • 6 년 이상 풀 타임으로 앱을 제작 한 경험 (예,이 경우 경험이 중요합니다. 우리는 숙달을 찾고 있습니다. 10k 시간 규칙을 참조하십시오.)
  • 여러 패러다임 (OOP, FP 등)의 소프트웨어 개발 원칙에 대한 깊은 이해
  • 다른 언어 제품군 (C 제품군, Lisp 제품군, ML 제품군 등)의 여러 프로그래밍 언어 경험
  • 개발자가 20 명 이상이고 사용자가 천만 명 이상인 앱을 확장 한 경험
  • 특정 기술 스택에 대한 1-2 년의 경험

가장 큰 문제는이 설명과 일치하는 직원을 찾기가 매우 어렵고 소규모 회사가 감당하기 어렵다는 것입니다. (방금 설명한 경우 문의 해주세요).

현재“Senior JavaScript Developer”라는 제목의 직업 목록에는이 수준의 전문 지식이 필요하지 않습니다. 1 년에서 3 년 간의 경험, 필수 기술 스택에서 1 년, 고품질 JavaScript 교육은 충분합니다. 훌륭한 전문가 멘토와 짝을 이루어 팀의 최고 수석 개발자 수준에 기여할 것입니다. 일부는 눈에 띄고 최선의 기대를 초과합니다.

10x 개발자를 어떻게 고용합니까?

훌륭한 팀을 만들려는 기술 리더와 더 많이 협력할수록 어떤 개발자가 다른 개발자보다 10 배 더 나은 자질을, 어떤 팀은 다른 팀보다 10 배 더 좋은 자질을 생각합니다.

일반적으로 10x 팀은 10x 개발자를 고용합니다. 나는 그 규칙에 대한 예외를 본 적이 없다. 그러나 10x 개발자가있는 모든 팀이 10x 팀이되는 것은 아닙니다.

차이점이 뭐야?

멘토링 문화

첫 번째 단계는 팀의 멘토링 문화를 육성하는 것입니다. 이를 수행하는 가장 좋은 방법 중 하나는 코드 리포지토리를 보호하여 코드 검토없이 기본 트렁크에 병합 할 수 없도록하는 것입니다.

대부분의 사람들은 이것이 버그 예방에 관한 것이라고 생각하지만, 개발자가 버그를 학습 및 지식 공유의 메커니즘으로 볼 때 가장 효과적입니다. 단순화 할 수있는 코드가 표시되면 지적하십시오. 안티 패턴이 보이면 대안을 지적하십시오. 코드를 병합하기 전에 항상 한 명 이상의 다른 팀원이 모든 코드 줄을 검토하도록해야합니다.

이 작업을 수행하면 버그가 줄어드는 부작용이 있습니다. 코드 검토에 소요되는 1 시간마다 33 시간의 유지 보수가 절약됩니다. (“TDD 및 코드 검토 건너 뛰기의 엄청난 비용”참조)

그러나 그것은 단지 1 단계입니다. 대부분의 실무 개발자 (심지어 개발자)조차도 소프트웨어 개발의 핵심 요소 인 기본 구성이 부족합니다. 모든 소프트웨어 개발은 ​​문제를 더 작은 조각으로 분해하고 솔루션을 함께 구성하여 응용 프로그램을 형성하는 작업입니다. 의도적으로 의도적으로 또는 덕트 테이프와 미친 접착제로 실수로 할 수 있습니다.

최상의 결과를 얻으려면 함수와 데이터 구조를 잘 작성하고, 어디로 가는지 이해하고, 모든 부분을 맞추는 방법에 대한 견고한 토대를 가진 팀원이 필요합니다.

나쁜 소식이 있습니다.

팀원 중 누구도 자격이 없을 확률은 100 %에 가깝습니다.

내가 어떻게 알아? 2010 년부터 정기적으로 JavaScript 채용 후보를 면담하고 있으며 보충 교육없이 면접 시간에 자격을 갖춘 후보가 거의 0 명에 달했습니다.

구체적으로 무엇을 의미합니까? 응시자는 다음 질문에 올바르게 대답하고 코드의 원칙을 보여줄 수 있어야합니다.

  • “함수 구성이란 무엇입니까?”
  • “객체 구성이란 무엇입니까?”

이것들은 기능 프로그래밍과 유연한 객체 재사용의 초석을 형성합니다.

자바 스크립트에서는 '자바 스크립트의 두 기둥'이라고하는 두 가지 중요한 기능이 지원됩니다.

  • 프로토 타입 상속
  • 함수형 프로그래밍 (특히 JavaScript에서 클로저가있는 일급 함수로 가능)

내가 신입 사원을 멘토링 할 때, 사업의 첫 번째 순서는 기능 프로그래밍과 유연한 OOP의 기본을 이해하도록 돕는 것입니다.

“클래스 상속에 비해 선호하는 객체 구성.”~ 4 명의 갱,“디자인 패턴 : 재사용 가능한 객체 지향 소프트웨어의 요소”

이 간단한 기둥은 다음과 같은 모든 기능을 통해 앱을 구축 할 수있는 견고한 토대를 제공합니다.

  • 적은 코드
  • 버그 감소
  • 향상된 코드 선명도
  • 유지 보수 비용 절감

멘토링 문화는 조직 전체에 유용한 아이디어를 더 쉽게 전파 할 수있게합니다. 다음과 같은 중요한 비즈니스 성과 지표에 영향을 미칠 수있는 잠재력이 큰 아이디어 :

  • TDD 및 개선 된 테스트 프로세스로 상당한 시간과 비용 절약
  • 지속적인 제공 (CI / CD 도구 및 워크 플로우로 자동화) : 기화기 및 예산 불확실성 추정 위험을 줄입니다.
  • 더 나은 코드 구성으로 소프트웨어 유지 관리 비용 절감

멘토링에 얼마나 투자해야합니까?

이점은 매우 명확하고 영향을 미칩니다. 개발자 조직에서 멘토링을 구현하는 것에 대한 질문은 그렇게하지 않을 경우가 아니라 투자해야하는 금액입니다.

저의 일반적인 원칙은 모든 개발자가보다 숙련 된 멘토, 즉 개발자가 가고 싶어하는 사람과 짝을 이루어야한다는 것입니다.

이 규칙은 단순히 주니어 직원이나 신입 직원을위한 것이 아니라 가장 고위 직원을위한 것입니다.

개발자에게 적절한 멘토링을 제공하기 위해 개발자의 연봉 외에 약 30 % 더 많은 비용을 지출해야합니다. 이 비용은 주로 개발자에게 경험이 풍부한 멘토 (멘토에게 급여 지불)를 제공하는 비용입니다. 30 %의 저렴한 비용으로 1000 %의 생산성 향상을 얻을 수 있습니다. 그 거래를하려면 미치거나 정보가 없어야합니다.

멘토링은 특정 기술 훈련과 실제 프로젝트의 문제에 대한 페어링으로 구성되어야합니다.

페어링에는 두 사람이 함께 일하면서 대부분의 운전을하는 한 쌍의 주니어와의 문제를 해결하기 위해 협력합니다. 멘토는 네비게이터 역할을하는 직접 접근 방식을 취해야합니다. 멘토십 혜택을 제공하기 위해 개발자를 풀 타임으로 페어링 할 필요는 없지만 멘토와 멘티가 일대일로 공동 작업 할 수 있도록 적어도 일주일에 한 시간을 따로 설정해야합니다. 주니어 개발자는 훨씬 더 페어링 시간이 필요합니다.

“멘토를 멘토하는 사람은 누구입니까?”

"멘토를 멘토하는 사람은 누구입니까?"

멘토링 문화를 가진 팀에 대한 나의 경험에서, 팀의 최고급 개발자조차도 팀에서 가장 숙련 된 사람들의 기술 수준에 빠르게 도달하지만, 도달하면 개선이 벽돌 벽에 부딪 치고 추가 진행이 매우 느립니다. .

인공적인 상한선을 없애려면 반드시 팀의 일원이 아닌 상위 멘토에게 접근해야합니다.

나는 자격을 갖춘 멘토를 찾기 위해 멘토십 플랫폼을 찾아 나섰고 찾을 수 없었기 때문에 DevAnywhere.io를 공동 설립했습니다. 우리는 고급 JavaScript 커리큘럼을 개발하고 개발자를 일대일로 멘토링하기 시작했으며이 프로그램은 놀라운 결과를 낳았습니다.

팀장 및 신입 사원을위한 멘토가 필요한 경우 도와 드리겠습니다.

라이브 1 : 1 멘토링으로 기술 수준을 높이십시오

DevAnywhere는 고급 JavaScript 기술 수준을 향상시키는 가장 빠른 방법입니다.

  • 라이브 레슨
  • 유연한 시간
  • 1 : 1 멘토링
  • 실제 프로덕션 앱 구축
https://devanywhere.io/

Eric Elliott는“JavaScript 응용 프로그램 프로그래밍”(O'Reilly)의 저자이며 DevAnywhere.io의 공동 설립자입니다. 그는 Adobe Systems, Zumba Fitness, The Wall Street Journal, ESPN, BBC 및 Usher, Frank Ocean, Metallica 등을 포함한 최고의 레코딩 아티스트를위한 소프트웨어 경험에 기여했습니다.

그는 세계에서 가장 아름다운 여성과 함께 원하는 곳 어디에서나 일합니다.

  1. 썬 마이크로 시스템즈에 따르면, 비 참여 직원에 비해 멘티는 72 %, 멘토는 69 % 더 높다.
  2. Spherion Emerging Workforce Study에 따르면, 정기적 인 멘토링을받지 않은 직원의 35 %가 12 개월 이내에 다른 일자리를 찾습니다
  3. 참여도가 높은 회사는 12 개월 동안 영업 이익이 19.2 % 증가한 반면, 영업 이익이없는 회사는 같은 기간 동안 32.7 % 감소했습니다. “성공을위한 열망”