10X 개발자와 주니어 개발자의 3가지 차이점 (번역)

eddy_song·2022년 2월 17일
85
post-thumbnail

10X 개발자와 주니어 개발자의 차이점은 코딩이 아니라 마인드셋이다.

이 글은 How to Be a 10x Software Engineer 를 읽다가 느낀점이 많아서 개인 블로그에 번역/정리해본 글입니다. 저의 의역이 많이 들어가 있으므로 가급적 본문을 보시길 권합니다🙏

10X 개발자

최고의 개발자는 보통 개발자보다 10배 뛰어나다.

마치 1인 부대처럼, 10X개발자는 주니어 개발자들이 여러명 모인 팀보다 더 많은 가치를 빠르게 만들어낸다.

어떻게 그럴 수 있을까?

나(Michael Lin)는 넷플릭스, 아마존에서 엔지니어링 리드로 일해왔다. 인턴부터 시작해서 수석 엔지니어까지 올라간 경험으로 미뤄볼 때, 10X 개발자는 분명 존재한다.

그들은 남들보다 타이핑이 10배 빠르거나,
남들보다 10배 더 오래 일하거나,
남들보다 10배 더 많은 코드를 쓰지 않는다.

10X 개발자와 주니어 개발자의 차이점은 코딩이 아니라 마인드셋과 관련돼있다.

10X 개발자는 도구를 잘 쓰고, 질문을 잘하며, 우선순위화를 잘한다.

사실 코딩하고 별 관련없는 스킬이다.

이 글에서는 주니어 개발자들이 하는 실수,
그리고 10X 개발자가 하지 않는 실수를 3가지로 정리한다.

1. 도구에 충분히 투자하지 않는다.

주니어 개발자는 가지고 있는 무딘 도끼를 가지고 8시간 동안 나무를 쪼갠다.
시니어 개발자는 체인톱을 찾는데 1시간을 쓴다. 나무를 자르는데는 5분만 쓴다.

주니어 개발자들이 자주하는 실수가, 코딩을 일단 시작하고보는 것이다.

자기가 알고 있는 툴로 모든 상황에 적용하려 한다. 다른 대안을 찾는데 시간을 쓰지 않는다. 심지어 코드를 전혀 안 쓰고 해결할 수 있는지도 고려해보지 않는다.

최근에 한 주니어 개발자와 나는 내기를 했다. 개인 웹사이트를 누가 더 빨리 만드는지 내기였다.

주니어 엔지니어는 2주를 투자했다. 1000줄 이상의 코드를 썼다. 하지만 그 2주 동안 다 끝내지도 못했다.

나는? 하루를 썼다. 코드는 한줄도 쓰지 않았다.

주니어 개발자에게 어떻게 했는지 물어봤다.

"학교에서 리액트를 배웠어요. 그래서 리액트로 처음부터 웹사이트를 만들었고요. 하지만 이미지랑 CSS가 너무 어렵더라구요.
게다가 어떻게 배포를 하는지 몰랐어요. 제가 직접 배포 스크립트를 AWS에 써야되겠다고 생각했어요. 그런데 콘솔 때문에 되게 헷갈리더라고요. 아까 micro instance와 large instance의 차이가 뭐라고 했죠?"

여기서 그녀의 실수.

첫째, 요구사항을 의논하지 않았다. SEO, 댓글 기능, 템플릿이 필요한지 등등.

둘째, 대체할 수 있는 도구를 의논하지 않았다. 리액트 + AWS만 알고 있었고, 그래서 그걸 썼다.

모든 걸 처음부터 만들려고 하면 당연히 어려울 수밖에 없다.

2. 도움을 요청하지 않는다.

이건 정말 간단한 건데도 불구하고, 많은 시간을 낭비하게 만든다.

주니어 개발자들이 오해하는 게 있다. 시니어 개발자가 혼자 모든 걸 다해내는 천재라고 생각한다. 문제를 받으면 어떻게든 해결책을 만들어내는 사람이라고.

하지만 그렇지 않다. 대부분의 경우에 둘의 차이는 '컨텍스트'를 아느냐 모르느냐다. 시니어는 주니어가 '스스로 알아낼 수 없는 맥락 정보'들을 알고 있다.

예를 들면 이런 것들이다.
이 코드 베이스가 왜 이렇게 구조화되어있는지.
다른 팀이 만든 API 중 어떤 걸 사용해야 하는지.
배포가 어떻게 작동하는지.

주니어는 도움을 요청하기 전에 코드베이스를 다 뜯어보고, 같은 코드를 보고 또 본다.
5분짜리 질문이 이슈를 완전히 해결할 수 있는데도 말이다.

A less experienced engineer who knows how to ask for help will always beat a more talented engineer who never asks for help.
경험이 부족하지만 도움 요청을 할줄 아는 개발자가, 천재지만 도움을 요청하지 않는 개발자를 언제나 이긴다"

맥락에 대해 물어보는 걸 두려워하지 말자.

3. 비즈니스 가치를 생각하지 않는다.

10X 개발자는 사실 투자자다.

자신이 하는 일이 '투자'라는 걸 알고 있다.
자신이 시간의 비용보다 업무의 결과가 훨씬 더 커야 한다는 뜻이다.

10X 개발자는 일에 기회 비용이 있다는 걸 알고 있다. 어떤 기능을 개발하는데 쓴 시간은 다른 기능을 개발하지 않는다는 걸 의미한다.

개발자는 기회 비용을 생각할 수 있어야 한다.
만들 수 있는 모든 기능 중에, 이게 최선의 선택인가?

시니어 개발자는 코드가 목적이 아니라는 걸 안다.
진짜 목적은 비즈니스, 고객 가치다.

만약 고객 가치를 노 코드로도 달성할 수 있다면 그게 더 좋은 거다.
쓸 코드도 없고 유지보수할 코드도 없다. 윈윈이다.

많은 개발자가 비즈니스 목표에 대해선 시야를 넓히지 않는다.

예를 들어보자.
"이 기술은 채신기술이고 쿨해요. 5일 정도 들여서 웹사이트에 이걸 적용해보죠."
(제품과 일치성을 생각하지 않는다)

"코드가 구조화된 방식이 마음에 들지 않아요. 다음 주기에 리팩토링을 해보죠"
(기회 비용: 리팩토링이 나쁜 건 아니지만, 같은 시간에 매출을 만들어내는 기능을 만들 수도 있었다)

"이 플랫폼은 너무 올드한 레거시에요. 새로운 플랫폼으로 옮기죠"
(마이그레이션이 정말로 유의미한 가치를 주는가?)

이런 계산을 잘하는 게 10X 개발자의 특징이다.

주니어 개발자가 복잡하지만 매출을 만들어내지 않는 기능에 2시간을 썼다.
시니어 개발자가 1시간 동안 단순 복붙으로 만들어낸 기능이 매출을 5배 늘렸다.

그러면 둘의 생산성은 10배 차이가 난 것이다.

마지막으로 하고 싶은 말

마지막으로 하고 싶은 말. Soft Skill은 진짜 뛰어난 개발자와 아닌 개발자를 가른다.
위에 나온 실수를 다 하지 않더라도, 만약 다른 사람들이 당신과 일하기를 불편해한다면 10X 스킬도 다 무용지물이다.

당신은 개발자가 되려고 열심히 노력했을 것이다. 재수없는 사람이 되지 않는 것이 개발보다는 훨씬 쉽다. 내 자존심이 내 노력을 헛되이 하게 두지 말자.

profile
개발 지식을 쉽고 재미있게 설명해보자.

10개의 댓글

comment-user-thumbnail
2022년 2월 23일

좋은 글이네요... 감사합니다!

1개의 답글
comment-user-thumbnail
2022년 2월 24일

자신이 시간의 비용보다 업무의 결과가 훨씬 더 커야 한다는 뜻이다.

최고로 공감하는 한줄이었습니다! 아주 아주 중요하다고 생각해요!
좋은 글 감사합니다 :)

1개의 답글
comment-user-thumbnail
2022년 2월 25일

오... 사실 이런 것에 대해서, 생각해본적은 있었는데 자세하게 그것도 경험담으로 쓴 글이라 매우 흥미롭네요. 목적을 명확히 하자는 말이 생각납니다. ㅎㅎ 글 감사합니다 도움이 많이 되었어요.

1개의 답글
comment-user-thumbnail
2022년 2월 26일

잘 읽었습니다.

1개의 답글
comment-user-thumbnail
2022년 3월 23일

잘 읽었습니다..많이 반성하게 되는 글이네요

답글 달기
comment-user-thumbnail
2022년 4월 14일

글 너무 좋아요!
제가 지향하는 개발자의 모습이에요!

답글 달기