번역: 개발자가 성장하는 10가지 방법 (Translation: Ten Principles for Growth as an Engineer)

Young Min Kim
5 min readAug 13, 2017

@daniel.heller I translated your article for Korean readers because I thought it was worth sharing with broader audience. I apologize I didn’t ask for your permission but I hope you don’t mind.

Daniel Heller가 쓴 Ten Principles for Growth as an Engineer을 번역했습니다. 읽으시는 분들에게 작은 영감이라도 줄 수 있길 빕니다.

2월에 내 팀에 1년 정도 있었던 엔지니어가 새로운 팀으로 옮겨가게 되었다. 마지막 1:1 미팅 시간들 중 그에게 최근 들어 프로젝트 관리를 잘 해내고 있다고 말했다. 그는 스스로 주도적으로 일하는 방식을 새롭게 깨달았다고 했다. 그는 프로젝트들을 성공시키기 위해 프로젝트들과 관련된 모든 것을 책임지기로 했다. 그의 행동이 인상깊었지만 내 자신이 실망스럽기도 했다. 나는 어린 개발자들에게 주인정신이 가장 중요하다고 생각해왔는데 어쩌다 보니 이 개발자가 스스로 깨달을 때까지 내버려두었기 때문이다.

나는 그때부터 새로운 개발자들이 아마추어에서 프로가 될 수 있는 방법들에 관해 쓰기로 했다. 이 방법들은 버그만 고치는 ‘개발자 1’에서 중요한 프로젝트를 이끄는 ‘시니어 개발자’까지 갈 수 있는 길이다.

이 기술들은 전수받을 수 있다고 생각하지만 나 자신은지난 10년 간 실리콘 밸리에서 몸으로 부딪히며 배워왔다. 그 시간 동안 나는 Cupertino에 있는 잘 알려진 과일 회사(역자 주: 애플)에서 커널 관련 작업도 했고, 분산시스템에 관심을 갖게되어 처음부터 다시 시작도 해보고, 유니콘이 되고 인수된 AppDynamics에서 1년 간 일도 해보았고, Uber에서 20명 넘는 팀을 관리도 해보았고 결국엔 다시 프로그래머가 되었다. 이 리스트가 완벽하진 않아도 다른 사람들은 이걸 읽고 내가 했던 실수를 반복하지 않았으면 한다. 22살의 나에게 이런 리스트가 있었으면 얼마나 좋았을까 하고 상상해본다.

  1. 사업 가치에 대해서 생각하기: CEO처럼 생각해라. 당신의 일이 회사에 주는 가치를 이해하고 퀄리티, 기능, 속도에 대해서 책임을 지고 판단해라. 코드만 쓰는 것은 부족하다. 좋은 결정을 내리고 회사가 성공하도록 해야하며 그렇게 하기 위해서 중요한 것이 무엇인지 이해해야 한다.
  2. 막힌 것(Block)은 스스로 해결하라: 절대로 막힌 상태로 있지 마라. 설득과 창의성을 발휘해서 방법을 찾아내라. 다시 한번 말하지만, 코드만 쓰고 다른 것들이 알아서 정리되길 기다리는 건 부족하다. 당신이 힘을 쓰는 만큼 회사에 도움이 되는 방법을 찾아내야 한다.
  3. 주도적으로 일하라: 소프트웨어에 가장 만연한 오해 중 하나가 모든 것을 알고 있고 책임지는 사람들(grown-ups)이 있다는 것이다. 당신의 팀과 회사의 목적을 자기 것처럼 생각해라. 누가 일을 시키기 전에 무엇이 필요한지 생각하고 실행하거나 설득해라. 팀장들 스스로 모든 것을 알아낼 수 없기 때문에 팀의 창의적이고 똑똑한 개발자들이 도와줘야 한다.
  4. 글쓰기 실력을 향상시켜라: 깔끔하게 쓰여진 글은 협업을 쉽게 하고 설득하고 가르치는데 큰 도움이 된다. 누가 읽을지 그들이 뭘 알고 있는지 생각하고, 명료하고 간단하게 글을 써라. 그리고 대부분의 경우 `요약문`이 있으면 좋다.
  5. 당신의 프로젝트는 직접 관리하라: 의존성을 이해하고 중요한 부분은 담당자를 정해라. 계획과 현재 상황을 잘 정리하고 이해관계자들에게 계획과 진행상황을 미리미리 공유하라. 미팅을 운영하는 방법을 배우는 것도 중요하다. 나중에는 훨씬 중요한 프로젝트를 운영할 수 있게 되고 리더십을 가지는데도 훌륭한 도움이 된다.
  6. 스스로 공부해라: 당신이 하는 분야에 대해선 전문가가 되라. 커리어 내내 꾸준히 성장해야 하지만 다른 사람 어느 누구도 당신의 커리어에 대해서 신경쓰진 않는다. 매일 조금씩, 5분이라도 공부하는 습관을 길러라. 메일링 리스트나, 논문, 책, 기술 메뉴얼들을 찾아서 읽어라. 꾸준히 하는 것이 중요하고 커리어 동안 당신을 지속적으로 성장시켜줄 습관을 길러라.
  7. 툴들을 마스터해라: 에디터, 디버거, 컴파일러, IDE, 데이터베이스, 네트워크 도구, Unix 명령어들을 잘 익히면 개발 속도를 크게 늘릴 수 있다. 새로운 기술이나 명령어를 보게 되었을 때 필요한 것보다 더 깊이 이해한다면 추후 크게 도움이 되는 트릭들을 배울 수 있다.
  8. 주도적으로 소통해라: 주기적이고 잘 정리된 의사소통을 통해 동료들의 신뢰를 쌓을 수 있다. 지식을 공유하면서 성장과 동료애도 같이 얻을 수 있다. 주기적으로 프로젝트의 목표, 진행상황, 문제요소들을 공유하라. 사내 발표도 하고 미팅 중에도 잘 생각해서 말해라.
  9. 협업할 수 있는 기회를 찾아라: 협업을 잘 해내면 조직 안에서 당신의 영향력을 늘리고 이름을 쌓을 수 있다. 개발자로서 성장하려면 코드 밖에서도 영향력을 가져야한다. 비슷하게, 커리어를 성장시키려면 회사 내에서 이름을 알리는 것도 어느정도 필요하다. 그렇기 때문에 다른 팀과 함께하는 프로젝트를 하며 프로페셔널하고 존중하는 협업자세를 갖추어야 한다.
  10. 프로처럼 일하며 믿음을 줘라: 스스로 프로라고 생각하고 그렇게 행동하라. 미리 준비하고 미팅 시간을 맞춰서 오고 미팅 중에는 집중해라. 하겠다고 한 일은 하고 어려운 일이 발생했을 때 먼저 얘기해라. 침착하게 얘기하고 반대 의견은 예를 지켜가며 전달해라. 동료들을 존중하고 감사해라. 불평은 줄이고 같이 일하는 동료들이 힘낼 수 있게 하라. 모두가 프로와 일하는 것을 좋아하기도 하고 이렇게 일하는 것이 바른 행동이다.

--

--