요즘IT
위시켓
최근 검색어
전체 삭제
최근 검색어가 없습니다.

본문은 요즘IT와 번역가 윌리(Willy)가 함께 만든 해외 번역 콘텐츠입니다. 필자인 Michael Lin는 전 넷플릭스 엔지니어링 책임자로 현재는 회사를 그만두고, 엔지니어링과 직업 조언, 그리고 스타트업에 대한 글을 쓰고 있습니다.

회원가입을 하면 원하는 문장을
저장할 수 있어요!

다음

회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!

확인

개발

10배 이상 뛰어난 개발자가 되는 법

년차,
어떤 스킬
,
어떤 직무
독자들이 봤을까요?
어떤 독자들이 봤는지 궁금하다면?
로그인

본문은 요즘IT와 번역가 윌리(Willy)가 함께 만든 해외 번역 콘텐츠입니다. 필자인 Michael Lin는 전 넷플릭스 엔지니어링 책임자로 현재는 회사를 그만두고, 엔지니어링과 직업 조언, 그리고 스타트업에 대한 글을 쓰고 있습니다.

 

이 글은 평범한 개발자보다 10배 이상 뛰어난(10x) 최고의 개발자란 누구인지, 그리고 최고의 개발자가 되기 위해서는 무엇을 해야 하는지 알려주고 있습니다. 이 글을 통해 최고의 개발자를 목표로 하려면 어떻게 해야 하는지 알 수 있기를 바랍니다.

 

초급 개발자가 흔히 저지르는 3가지 실수에 대해 알아볼 것입니다. 여러분은 어떤 개발자인가요?

 

10x 개발자
네스호의 괴물과 설인은 전설이지만, 10x 개발자는 현실에 존재합니다.

 

최고의 개발자는 평범한 개발자보다 실제로 10배 이상 뛰어납니다. 초급 개발자로 구성된 팀 하나보다 10x 개발자[1]가 더 빠른 결과물과 더 많은 가치를 제공합니다.

 

어떻게 이것이 가능할까요? 사람이 많을수록 더 좋은 것 아닌가요?

 

제가 넷플릭스와 아마존에서 엔지니어링 책임자로 있었을 당시 두 명의 신입 대학원 인턴에서부터 수석 엔지니어(아마존의 L7 이상)까지 같이 일해볼 기회가 있었습니다. 이때 저는 10x 개발자의 존재를 목격했습니다. 일단 다음과 같은 사람이 10x 개발자는 아닙니다.

 

  • 남들보다 10배 빠른 타이핑 속도
  • 남들보다 10배 더 많이 일하기
  • 남들보다 10배 많은 코드 짜기

 

실제로 10x 개발자는 남들 보다 절반만 일하며, 절반의 속도로 타이핑하고, 코드를 작성하는 것보다 삭제하는 데 더 많은 시간을 할애한다는 것을 깨달았습니다.

 

leetcode 테스트
10x 개발자가 LeetCode[2] 테스트에서 더 좋은 점수를 받는 경향이 있지만 이것이 차별 요소는 아닙니다.

 

최고의 엔지니어가 초급 개발자와 다른 점은 그들의 마음가짐과 개발 접근 방식에서 명확히 드러납니다. 그들은 올바른 도구를 사용하고 올바른 질문을 하고 우선순위를 정하는 방법을 알고 있습니다. 사실 이는 엄청난 코딩 스킬이 필요하기보다 누구나 갈고닦을 수 있는 분야입니다.

 

이렇듯 최고의 엔지니어와 평범한 엔지니어를 구분 짓는 것은 (놀랍게도) 비기술적 부분입니다.

 

지금부터 초급 개발자가 흔하게 저지르는 실수를 알아보고, 경험 많은 엔지니어가 동일한 문제를 어떻게 다루는지 비교하여 설명하도록 하겠습니다.

 

 

1. 사용하는 도구에 대한 연구가 없음

에이브러햄 링컨은 “나에게 나무를 베는 데 8시간이 주어진다면 도끼를 가는 데 7시간을 쓸 것이다.”라고 말했습니다. 초급 개발자는 무딘 도끼로 8시간 나무를 벨 것입니다. 반면, 수석 엔지니어는 작업 시작 전 한 시간 동안 최고의 전기톱을 고를 것입니다. 그리고 5분 만에 모든 나무를 자르겠죠.

 

에이브러햄 링컨
요즘 시대였다면 링컨은 훌륭한 개발자가 되었을 것입니다.

 

초급 개발자가 저지르는 흔한 실수는 무작정 코딩부터 시작하는 것입니다. 그들은 자신이 알고 있는 도구만을 고집하고, 이를 모든 곳에 적용하려고 애씁니다.

 

초급 개발자가 망치만 사용할 줄 안다면, 땅을 파는 데에도 망치를 쓸 것입니다.

 

그들은 다른 대안을 찾는 데 시간을 투자하지 않습니다. 조금만 더 고민하면 코드 한 줄 없이 문제를 해결할 수 있는데도 말이죠!

 

10x 개발자는 초급 개발자가 몇 주 동안 땀을 흘려 완성할 일을 올바른 도구를 사용하여 단 10분 만에 완료할 수 있습니다. 여기에서 10배의 생산성 차이가 벌어집니다.

 

 

예시: 웹사이트 개발

최근에 저는 이제 갓 졸업한 후배 엔지니어와 누가 자신의 홈페이지를 더 빨리 만들 수 있는지를 두고 내기를 했습니다. 제 후배는 2주 동안 천 줄 이상의 코드를 작성했습니다. 그리고 2주가 지나도 여전히 코드를 짜고 있었죠. 저는 단 한 줄의 코딩 없이 하루 만에 홈페이지를 만들었습니다. 여기에서 제가 만든 홈페이지를 보실 수 있습니다.

 

노션 super.so
페이지 제작을 위한 Notion + 배포를 위한 super.so = michaellin.io

 

후배에게 어떻게 작업했는지 물어보니 왜 그렇게 오랜 시간이 걸렸는지 명확해졌습니다.

 

“학교에서 배운 리액트(React)[3] 앱을 제작 방식에 따라 맨땅에서 코딩을 시작했죠. 하지만 이미지와 CSS 작업이 너무 어려웠어요. 그리고 제가 만든 앱을 어떻게 배포하는지 몰랐어요. 그래서 AWS에서 배포 스크립트를 작성하려 노력했지만 콘솔 사용법이 쉽지 않았습니다. 그런데 마이크로 인스턴스와 라지 인스턴스는 어떤 차이점이 있나요?"

 

이 엔지니어의 설명 곳곳에서 중요한 핵심을 놓치고 있다는 사실을 발견할 수 있습니다. 우선 제 후배는 다음과 같은 부분을 놓쳤습니다.

 

  • 요구사항 - SEO, 코드 주석, 미리 만들어진 템플릿을 사용해도 되는지 등
  • 대체 도구 - 아는 것이 리액트와 AWS가 전부였고 다른 대안을 알아보지 않았습니다.

 

백지에서부터 모든 기능에 대한 주석을 작성해야 한다고 상상해 보세요. SEO가 제대로 작동하는지 확인하는 것 또한 보통 일이 아닙니다. 이러한 기능은 올바르게 구현하려면 개발팀이 투입되어야 합니다. 2주가 지나도 완성하지 못한 것은 당연한 일입니다.

 

 

2. 도움을 요청하지 않음

이는 정말 간단하게 고칠 수 있는 부분이지만, 너무 많은 개발자가 놓치고 있는 부분이라 반드시 언급하고 싶습니다.

 

초급 개발자는 고급 개발자가 마치 고독한 천재와 같다는 착각을 합니다. 물론 여러분이 문제를 계속 붙잡고 있다 보면 해답을 얻을지도 모르죠.

 

개발자 고독한 천재
10x 개발자는 "고독한 천재"가 아닙니다. 그들도 필요할 때 다른 사람의 도움을 받습니다.

 

하지만 이 둘 사이에는 큰 차이점이 있습니다. 가장 큰 차이는, 초급 개발자는 스스로 상황을 판단하고 정보를 해석할 능력이 부족하다는 것입니다.따라서 도움을 요청하는 대신 자신이 작성한 코드를 한 줄씩 살펴보며 고민에 빠집니다. 동료에게 질문하면 5분 만에 해결될 간단한 문제임에도 말이죠.

 

경험이 부족한 엔지니어라도 도움을 적절히 구한다면 홀로 일하는 경력 많은 엔지니어를 이길 수 있습니다.

 

때로는 계속하기 위해 추가 컨텍스트가 필요하다는 것이 분명합니다. 예를 들어, 다음과 같은 경험이 없다면 이해하기 힘든 부분입니다.

 

  • 코드베이스[4]가 지금의 모습을 갖추게 된 이유
  • 다른 팀에서 호출하는 API
  • 배포 동작 방식

 

위와 같은 부분은 아무리 혼자서 고민해도 알기 힘든 부분이며 다른 누군가에게 도움을 청하는 것이 훨씬 효율적입니다. 도움을 구하는 것을 두려워하지 마세요!

 

 

3. 비즈니스 가치를 제공하지 않음

10x 개발자는 현명한 투자자입니다.

 

그들은 자신의 일이 투자라는 것을 이해하고 있으며, 투입한 시간보다 투자에 대한 보상이 훨씬 커야 한다고 생각합니다. 또한, 그들은 기회비용을 잘 이해하고 있습니다. 한 기능을 구축하는 데 들어간 시간만큼 다른 기능의 개발을 중단됩니다.

 

엔지니어는 항상 기회비용을 저울질해야 합니다. "모든 요구사항 중 지금 개발하고 있는 기능이 가장 가치 있는 것인가요?"

 

그들은 코드가 비즈니스 목표를 달성하기 위한 수단이라는 것을 이해합니다. 코드 없이 목표를 달성할 수 있다면 더욱 좋은 것입니다. 직접 작성하는 코드가 적으면 유지 보수해야 할 코드도 적어지는 일석이조 효과를 거둘 수 있습니다.

 

10x 개발자 투자자
10x 개발자는 투자자입니다. 워렌 버핏처럼 말이죠.

 

많은 초급 개발자들이 이러한 비즈니스 목표를 간과하는 것을 자주 보았습니다. 예를 들어:

 

  • “정말 멋진 신기술이 나왔습니다. 5일을 투자해 우리 웹사이트에 도입해 봅시다.”(제품 전략과 일치하지 않음)
  • “음.. 코드가 구조가 마음에 들지 않는군. 다음 스프린트에 코드를 리팩토링합시다." (기회비용 - 수익 창출을 위한 다른 기능을 개발하는 데 시간을 보낼 수 있음)
  • "이 플랫폼은 너무 구식입니다. 새 플랫폼으로 마이그레이션 합시다." (이로 인해 확실히 좋아지는 것이 있나요?)

 

10x 개발자의 높은 생산성은 다음과 같이 계산할 수 있습니다. 초급 개발자가 수익을 창출과 무관한 기능 구현에 2시간을 낭비하고, 고급 개발자는 5배의 수익을 내는 간단한 코드 변경에 1시간을 투자한다면 10배의 생산성 차이가 발생합니다.

 

5배의 수익을 창출하는 작업을 1/2시간 만에 해냈으니 10배의 가치를 제공하게 된 셈이죠.

 

 

정리하며

가장 유능한 개발자와 그렇지 않은 개발자를 구분 짓는 차이는 소프트 스킬입니다. 앞서 소개한 모든 지침을 충실히 따르는 개발자라도 같이 일하기 힘들다면 소용이 없습니다.

 

넷플릭스 기업 문화
넷플릭스 CEO의 기업 문화 소개 영상 중.

 

여러분은 좋은 개발자가 되기 위해 열심히 일했습니다. 하지만 엔지니어링은 팀플레이입니다. 당신의 노력이 당신의 자존심 때문에 물거품이 되지 않도록 하세요. 그리고 항상 기억하세요.

 

개발자는 무엇보다도 가치 전달을 우선해야 합니다.


[1] 10x 프로그래머 또는 10x 엔지니어라고도 부르며, 다른 개발자에 비해 10배의 생산성을 보여주는 독보적인 실력의 개발자를 말함.
[2] 코딩 테스트 및 알고리즘 풀이 사이트.
[3] 사용자 인터페이스 개발을 위해 페이스북에서 만들고 공개한 오픈소스 자바스크립트 라이브러리.
[4] 특정 소프트웨어 시스템, 응용 소프트웨어, 소프트웨어 구성 요소를 빌드하기 위해 사용되는 소스 코드의 전체 집합.

 

<원문 링크>

How to Be a 10x Software Engineer

 

위 번역글의 저작권은 Michael Lin에게 있으며, 요즘IT는 해당 글로 수익을 창출하지 않습니다.

좋아요

댓글

공유

공유

댓글 2
mandarin
            머이래 훌륭한 글이 있지?? ㅎㅎ
          
2022.03.17. 오후 14:16
dbsdbs17
            감사합니다 좋은 내용입니다.
          
2024.04.04. 오후 17:47
작가
476
명 알림 받는 중

작가 홈

작가
476
명 알림 받는 중
요즘 해외 개발자들은 어떻게 일할까요? 기획자나 디자이너는요? 그래서 준비했습니다. 읽어볼만한 해외 소식들을 번역해 전합니다. "We are the world."

좋아요

댓글

스크랩

공유

공유

요즘IT가 PICK한 뉴스레터를 매주 목요일에 만나보세요

요즘IT가 PICK한 뉴스레터를
매주 목요일에 만나보세요

뉴스레터를 구독하려면 동의가 필요합니다.
https://auth.wishket.com/login