주니어 개발자였던 내 멘티가 2년 만에 시니어 개발자?

당신이 어떤 단계에 있든 승진하는데 도움을 주는 실질적인 플랜을 알려드릴게요

2024.05.14 | 조회 1.01K |
0
|

데브필 DevPill

Top 1% 개발자로 거듭나는 성공 처방전

Introduction

한국에서 "시니어 개발자"라는 타이틀이 갖고 있는 무게는 가벼우면서도 무겁습니다. 주로 연차가 길면(특히 10년차 이상) 일반적으로 시니어로 우대하지만, 한편으로는 모든 능력이 다 뛰어나지 않으면 "저 사람 시니어 맞아..?"라며 고개를 갸우뚱하기도 하죠. 우아한 형제들 기술 블로그에서는 "시니어는 사실상 없다"는 이야기를 하기도 했는데요(물론 글의 의도는 팀에서 시니어에 거는 기대가 너무 크다는 것을 비판한 것입니다).

반면 해외에서는 시니어 타이틀을 보다 중립적으로 생각합니다. 개발자가 거쳐야 할 여러 단계 중 하나이며 시니어 다음에도 스태프 엔지니어, VP 등 더 다양한 직책이 주어지기도 하죠. 그렇다고 시니어라는 타이틀이 한국처럼 단순히 연차가 찼다고만 주어지는 것은 오히려 절대 아닙니다. 아래 본문에서 후술하겠지만 시총 1,000억 달러 규모의 핀테크 기업 스퀘어(Square)를 비롯해 해외 기업에서는 저마다 시니어 엔지니어가 갖는 일의 영역과 팀에 끼치는 영향력에 대해 정의해놓았습니다. 즉, 단순히 시간만 지나는 게 아니라 여러 방면에서 성장해야 가질 수 있는 직책이죠.

이 시니어 타이틀을, 주니어가 2년도 안 되는 기간 동안에 승진한 이야기를 들려드리려 합니다. 해외 시니어 개발자인 Jordan Cutler가 쓴 My Mentee Went From Junior -> Senior Engineer in less than 2 years. Here's how. 를 번역한 글입니다. 여러분도 아래 글을 읽으면서 현재 속한 직책에 상관없이 다음 커리어로 향하기 위해 어떤 것들이 필요할지, 실행 가능한 계획을 세워보는 시간이 되었으면 좋겠습니다.


이번 주에 제 멘티에게서 이런 문자를 받았습니다.

당신이 아니었다면 제가 지금 이 자리까지 올 수 있었을지 상상도 못 했을 거예요. 1세대 이민자로, 가족 중 대학을 처음 졸업하고, 2년도 안 되는 기간(1년 9개월) 만에 시니어가 되다니요.

제 멘티는 개발자로 커리어를 시작한지 1년 9개월 만에 벌써 시니어 엔지니어가 되었습니다. 이 문자가 제게 큰 의미로 다가온 이유는 저 역시 멘티의 이야기에 공감할 만한 이력을 갖고 있기 때문이예요.

저는 1세대 이민자는 아니지만, 가족 중 대학을 처음 졸업한 사람입니다. 18살까지는 비디오 게임에 중독되어 있었어요. 매우 다른 문화에 둘러싸여 있었던 저에게 첫 직장에서 IT 분야가 어떻게 돌아가는지 파악하는 게 쉽지 않았습니다.

멘티로부터 이 메시지를 받고 난 후, 저는 강력한 공식을 깨달았습니다.

열심히 일하기 + 좋은 멘토링 = 10배 성장

열심히 일하면 2배로 성장할 수 있습니다. 좋은 멘토링으로도 2배 빠르게 성장할 수 있어요. 그런데 이 둘을 합치면 10배의 성장이 됩니다. 여러분은 좋은 멘토링의 가치에 대해 많이 들어보셨을 거예요. 여기에는 논란의 여지가 없죠. 또한 열심히(또는 똑똑하게) 일하는 것 역시 여러분을 멀리 데려다 줍니다. 하지만 이 둘을 함께 한다면? 그것이 바로 최적의 지점입니다.

이 글에서는 제 멘티의 이야기와 2년도 안 되는 기간 동안에 주니어에서 시니어로 승진하게 한 방법을 더 자세히 공유하겠습니다.

⭐️ 이 글의 핵심 요점이예요

  • 승진을 위한 실행 가능한 공식
  • 관리자가 관심 있어 하는 형식으로 여러분의 성과를 추적하는 방법
  • 더 나은 멘토와 멘티가 되는 방법

✅ 주간 1:1(1 on 1)

먼저, 우리는 주간 1:1을 설정했습니다. 멘토로서 저는 C2-G2-R2라고 부르는 제가 만든 프레임워크를 사용했습니다.

  • Condition(상태): 기분이 어때요?
    • 녹색 ✅, 노란색 ⚠️, 주황색 🔶, 빨간색 🚨?
  • Challenges(도전): 최근에 어려웠던 점은 무엇인가요?
  • Growth(성장): 어떤 영역에서 더 성장하고 싶나요? 제가 어떻게 도울 수 있을까요?
  • Goals(목표): 저와 세운 목표 또는 매니저와 세운 목표는 어떻게 진행되고 있나요?
  • Reflections(성찰): 최근에 더 잘 했으면 하는 것이 있나요?
  • Relationships(관계): 매니저 및 함께 일하는 다른 사람들과의 관계는 어떤가요?

저는 항상 "Condition"으로 시작해서 멘티가 거기서부터 아젠다를 스스로 이끌어가게 했습니다. 다만 중얼거리거나 불평하지 않도록 결과물을 위주로 회의를 진행합니다. 멘티의 1:1이지만 그 회의가 가치 있게 만드는 건 제 역할이죠.

특히 처음 몇 번의 1:1에서는 향후 성공에 도움이 되는 구체적인 내용을 다루려고 합니다. 관리자의 기대치를 이해하고, 자랑할 만한 문서를 작성하고, 장기적인 목표를 적는 것 같은 것들 말이죠.

🚀 성장 계획(Growth Plan)

장기 목표를 이해하고 이를 달성하기 위해 성장 계획을 세웠습니다. 3가지 질문으로 구성된 문서를 만들었는데요.

  1. 1-2년 후 당신의 이상적인 미래는 어떤 모습인가요? 너무 압도하지 않되 야망을 가지고 그려보세요.
  2. 그 이상적인 미래와 현재 당신의 기술 수준을 고려할 때, 개선됐으면 하는 주요 중점 영역은 무엇인가요?
  3. 그 중점 영역을 기반으로, 그 영역에서 개선을 시작하기 위해 지금 또는 곧 취할 수 있는 조치는 무엇인가요?

 

멘티의 결과는 다음과 같았습니다.

  • 1-2년 후 당신의 이상적인 미래:
    • 승진하기. 궁극적으로는 시니어 소프트웨어 엔지니어가 되는 것. 
  • 개선되기를 바라는 주요 중점 영역:
    • 리더십/소프트 스킬 - 의사결정을 추진력 있게 끌고 갈 수 있는지, 도메인 지식과 올바른 의사결정과 관련해 팀에 영향을 끼칠 수 있는 전문성이 있는지
    • 코드 구현 역량 - 감독 없이 모호한 요구사항으로부터 결과물을 도출해내는지, 이를 빠른 속도로 실행할 수 있는지
    • 시스템 설계 및 설계 문서 - 팀원들이 이해하기 쉬운 훌륭한 설계 문서를 작성할 수 있는지
    • 영향력 - 프로젝트를 이끌 수 있는 책임을 더 짊어질 수 있는지, 내 매니저와 팀원들로부터 신뢰를 얻을 수 있는지, 믿음직한 리더가 되기 위해 자신을 어떤 위치에 던져넣을 것인지.
    • 관계 구축 - 타인에게 믿음직한 / 사랑받는 사람인지, 다른 사람들이 도움을 필요로 할 때 나한테 기댈 수 있을지
  • 개선을 시작하기 위해 지금 또는 곧 취할 수 있는 조치
    • 더 파고들어 이해해야 할 코드 영역
    • 테크 리드와 대화하며 영향력을 키우는 방법 이해하기
    • 의견이 충돌할 때 협력적인 사고방식을 가지고, "내가 맞고 너는 틀렸어"라는 접근 방식보다는 상호 윈윈할 수 있는 방법 찾기

제 멘티는 이미 이 중 많은 부분을 스스로 훌륭하게 해냈습니다. 이 형식을 사용한다면 여러분 역시 스스로 성장 계획을 세울 수 있을 거예요.

📝 승진을 향해 노력하기

앞의 성장 계획을 통해 부족한 부분, 실수가 발생할 수 있는 일반적인 상황, 그리고 이에 대한 조치를 파악해봤습니다. 여기서는 다음 레벨로 나아가기 위한 성공 사례를 문서화해봅시다.

회사가 시니어 레벨에게 원하는 기대치를 아래에 가져왔습니다.

각 항목에 대해 멘티에게 "이 기대치를 달성하기 위해 어떤 노력을 기울였나요?"라고 물었습니다. 아래는 핀테크 기업 Square에서 공개한 Level 5(시니어)에 대한 기준치인데요.

엔지니어링 레벨 5 (뛰어난 기여자)

  • 경험: 엔지니어와 관리자는 이 레벨의 기대치를 충족하기 위해 필요한 기술, 지식, 경험을 일반적으로 관련 학사 학위와 관련 산업 또는 학위 경험 5년으로 습득합니다.

시니어 소프트웨어 엔지니어 기준

  • 범위 및 영향
    • 엔지니어링 설계, 개발 및 배포를 포함한 프로젝트 또는 기능의 전체 라이프사이클에 대해 독립적으로 책임집니다.
  • 기술적 역량
    • 테스트 용이성(testability)와 유지보수성(maintainability)을 위해 코드 구조와 아키텍처를 개선할 수 있습니다.
    • 설계 문서를 작성, 공동 작성하고 및 검토합니다.
    • 하나 이상의 기술 분야에서 매우 숙련되어 있습니다.
  • 오너십
    • 팀이 더 빠르게 움직일 수 있도록 하는 알려지지 않았거나 바람직하지 않은 작업에 우선순위를 부여하고 가치를 부여합니다.
  • 협업
    • 팀 및 인접 팀과 협력하여 문제를 해결합니다. 더 광범위한 범위의 문제를 해결합니다.
    • 개별적으로 다른 엔지니어를 지원하고 가르칩니다.
  • 팀 구축 및 채용
    • 채용 프로세스에 참여합니다(추천인 제출, 후보자 면접, 채용 행사 참석, 외부 발표 또는 Corner 작성).
    • 엔지니어링 인터뷰를 수행합니다.

위와 같은 각 기준(ex - "설계 문서를 작성, 공동 작성 및 검토한다")에 대해, 이를 위해 달성한성과를 기록했습니다. 우리는 성과를 적을 때 해당 결과가 어떤 파급력을 지녔는지 그 임팩트와 그것을 어떻게 달성했는지 방법에 초점을 맞췄는데요. 위의 문서에 나온 기준의 경우 아래와 같이 적을 수 있습니다.

  • 기준: 설계 문서를 작성, 공동 작성 및 검토한다
    • 결과물: Payment 도메인 모델에 대한 문서화
      • 임팩트(영향): 새로운 엔지니어들이 코드베이스를 파악하는 시간을 단축시켰다.
      • 어떻게(스토리): 팀에 2명의 새로운 엔지니어를 온보딩하면서, 그들이 우리의 Payment 도메인 모델이 어떻게 작동하는지에 대해 많은 질문을 하는 것을 알아챘다. 나는 그들에게 설명해 주었지만, 한 달 후 Bill을 온보딩할 때 이것이 다시 문제가 될 것임을 알았다. 내가 만든 문서는 Bill의 적응 과정을 더 쉽게 만들고 팀에게 우리의 Payment 모델이 어떻게 작동하는지에 대한 쉬운 접근을 제공할 것이다.

또는 큰 영향을 미치는 프로젝트의 경우 다음과 같이 작성할 수 있는데요.

  • 기준: 엔지니어링 설계, 개발 및 배포를 포함한 프로젝트 또는 기능의 전체 라이프사이클에 대해 독립적으로 책임진다.
    • 무엇을: H1 Heroku → AWS 마이그레이션 프로젝트 주도
      • 임팩트: 매년 인프라 비용 2천만 달러 절감
      • 어떻게(스토리): 나는 마이그레이션 작업을 분담하면서 팀이 사용할 마이그레이션 템플릿을 설정했다. 이를 통해 팀은 마이그레이션하는 스택의 부분에 따라 템플릿을 따를 수 있었고 원활한 프로세스를 보장했다. 각 부분이 마이그레이션된 후, 나는 문제가 발생하면 되돌릴 수 있는 기능이 내장된 배포 스크립트를 만들었다. 또한 사고 발생 시 우리에게 알림이 가도록 로깅을 내장했다. 로깅은 회귀를 감지했고 우리는 스크립트에 내장된 되돌리기 기능 덕분에 단 10분 만에 이를 되돌릴 수 있었다.

 

"무엇(What)"은 성취한 결과에 대한 한 줄 요약입니다. 동료가 무슨 프로젝트를 하고 있는지 물어볼 때 말해줄 내용이죠.

"영향(Impact)"은 메트릭, OKR, 수익 창출, 시간 절약 등입니다. CEO에게 깊은 인상을 남기려 한다면 이 지표를 설명해야 합니다.

"어떻게(스토리)"는 여러분의 참여를 특별하게 만든 작업의 핵심입니다. 여러분이 한 협업, 보여준 선견지명, 다룬 복잡성, 관리한 모호성입니다. 면접에서 말할 이야기죠.

시간이 지남에 따라 여러분은 각 승진 기준에 대해 다음 레벨에 대한 준비성을 보여주는 여러 개의 스토리를 쌓아가게 될 겁니다.

💡 셀프 회고

성장을 위한 가장 큰 요건 중 하나는 스스로 회고하는 것입니다. 이것은 제 멘티의 가장 강한 특징이었습니다. 그는 소리 내어 받아쓰기를 하며 일기를 썼습니다. 이것은 이후 그의 "주간 브레인덤프" 문서로 바뀌었는데요. 그의 브레인덤프는 3가지 이점을 제공했습니다.

  • 성찰: 잘된 점과 바꿔야 할 점을 성찰하는 데 도움이 되었습니다.
  • 멘토링: 무슨 일이 일어나고 있는지 이해함으로써 제가 더 나은 멘토가 되는 데 도움이 되었습니다.
  • 문서화: 자랑 문서로 옮기기 위해 성과를 문서화하는 데 사용했습니다.

문서화의 3번째 포인트에 주목하면, 이것이 전체 프로세스였는데요.

매니저와 경영진에 가까워질수록 정보를 정제하세요.
매니저와 경영진에 가까워질수록 정보를 정제하세요.

주간 브레인덤프는 자랑 문서로 정제되었고, 이는 다시 승진 패킷으로 정제되었습니다. "주간 브레인덤프"의 일부는 "무엇을", "영향", "어떻게"를 사용하여 각 승진 기준 아래의 글머리 기호로 자랑 문서에 들어갔습니다.

그 중 더 작은 일부는 일반적으로 관리자가 다른 고위 리더에게 제시하는 회사별 문서인 승진 패킷에 포함됩니다.

🤝 매니저와의 소통

마지막은 이것을 매니저와의 대화로 연결하는 것입니다.

제 멘티는 매니저에게 자신의 영향력을 확대하고 시간이 지나면서 승진을 향해 노력하고 싶다는 점을 분명히 했습니다.

무엇보다 그는 거기에 도달하는 데 매니저의 도움을 요청했습니다. 이를 통해 협업 프로세스를 만들었습니다.

1:1 대화에서 취할 수 있는 한 가지 접근 방식은 다음과 같습니다.

"저에게는 엔지니어로서 계속 성장하고 팀에 미치는 영향력을 확대하는 것이 중요합니다. 다음 레벨로 나아가고 싶고, 그 방향으로 올바른 발걸음을 내딛는 데 당신의 도움을 받고 싶습니다. 그것이 어떤 모습일지에 대해 같이 논의할 수 있을까요?"

이런 말을 꺼내야 한다 해서 기분이 나빠질 필요는 없습니다. 여러분이 성장하고 더 큰 영향을 미치도록 돕는 것이 매니저의 관심사입니다. 그래서 첫 마디가 중요합니다.

제 멘티의 경우, 그는 초기에 이런 대화를 나누었고 한 달에 한 번 자랑 문서 업데이트를 공유했으며, 매니저로부터 다음에 살펴봐야 할 영역에 대해 피드백을 받았습니다. 그들은 서로 간에 이해 관계가 생겨났죠. 그의 매니저는 기회를 찾아보고 실행 가능한 피드백을 줌으로써 도왔습니다.

제 멘티는 피드백을 받을 때마다 노력을 기울였고, 더 성장할 수 있는 영역에 대해 계속 자기 성찰을 했으며, 9개월 동안 매니저와 호흡을 맞추었습니다. 이는 그의 매니저가 다른 고위 리더들에게 그의 시니어 승진을 편하게 지지할 수 있을 만큼 충분한 성과를 낳았습니다.

이것이 제 멘티가 2년도 안 되는 기간 만에 시니어가 된 비결입니다.

📖 요약 - 여러분들이 직접 시도해 볼 만한 계획

  • 매니저나 멘토와 협력하여 성장 계획을 만들고, 중점 영역과 그 영역에서 성장하기 위한 실행 가능한 단계를 파악하세요.
  • 다음 레벨로의 승진 기준으로 가득 찬 문서를 만드세요.
  • 매주 그 주에 성취한 것을 돌아보는 성찰을 하세요.
  • "무엇을", "영향", "어떻게" 형식을 사용하여 자랑 문서에 그것들을 문서화하세요.
  • 다음 레벨을 향해 어떻게 진행되고 있는지 평가하기 위해 정기적으로 매니저와 만나세요. 피드백에 따라 조정하세요.
  • 반복하고 성과가 나오는 것을 보세요!

어떠셨나요? 꽤나 긴 글이었지만 시간 가는 줄 모르고 읽게 된 글이었어요. 그간 개발자라는 직업을 단순히 "job"으로만 생각하지는 않았는지, "career"로 그려갈 개발자의 모습은 어떨지 깊이 고민하게 되네요.

이 글을 읽는 분들이 주니어라면 시니어 혹은 테크 리드와 1 on 1할 때 이 양식을 적용해보자고 적극적으로 얘기해본다면 보다 생산적인 시간을 가질 수 있으리라 생각합니다 :) 

Top 1% 개발자로 거듭나는 확실한 처방전, 데브필입니다.

 

 

다가올 뉴스레터가 궁금하신가요?

지금 구독해서 새로운 레터를 받아보세요

이번 뉴스레터 어떠셨나요?

데브필 DevPill 님에게 ☕️ 커피와 ✉️ 쪽지를 보내보세요!

댓글

의견을 남겨주세요

확인
의견이 있으신가요? 제일 먼저 댓글을 달아보세요 !
© 2024 데브필 DevPill

Top 1% 개발자로 거듭나는 성공 처방전

뉴스레터 문의dev.redpill@gmail.com

자주 묻는 질문 서비스 소개서 오류 및 기능 관련 제보

서비스 이용 문의admin@team.maily.so

메일리 사업자 정보

메일리 (대표자: 이한결) | 사업자번호: 717-47-00705 | 서울 서초구 강남대로53길 8, 8층 11-7호

이용약관 | 개인정보처리방침 | 정기결제 이용약관