ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 주니어, 시니어 개발자를 나누는 기준은 무엇일까?
    IT 이야기 2023. 8. 4. 19:00

    프로그래머스에서 시니어 개발자분들과 인터뷰한 내용의 일부를 재편집한 글입니다.
    각 분야의 전문가가 생각하는 '개발자의 성장 단계를 나누는 기준'은 무엇일까요?
    개발자를 준비하고 있거나, 내용이 궁금하신 분들은 인터뷰를 끝까지 살펴보세요.


     

    개발자의 성장단계는 어떤 기준으로, 어떻게 나눌 수 있을까요?

     

    💬 박○○ 님 (Front-end Engineer) / 실리콘밸리

    미국은 레벨링이 잘 되어 있습니다. 막연하게 몇 년 차 이렇게 말하지 않아요. 그런 건 의미 없다고 생각합니다.
    여기에서는 레벨 3부터 3, 4, 5 레벨이 핵심입니다. 레벨 3이 주니어, 4가 중간, 5가 시니어입니다.

    시니어가 되면 손을 대지 않습니다. 구분하는 기준은 3 레벨은 정해진 스펙으로 구현할 수 있는 능력을 가진 것이고, 더 넓게 보지 않습니다. 거기에서 더 나아가 점차 사이드 이펙트가 뭐가 있는지 등을 파악하고 제시하기 시작하면 4 레벨입니다. 3레벨은 주는 내용대로만 하면 되고, 4 레벨은 예상되는 문제점을 찾아 역제안할 수 있는 사람을 말하는 것이죠.
    5레벨은 처음부터 끝까지 알아서 만들 수 있는 레벨입니다. 6 레벨은 리더십이 들어가구요. 5 레벨들을 모아서 새로운 것을 만들 때 융합할 수 있는 방법을 제시하고 리딩할 수 있는 능력이요. 7 레벨은 6 레벨들을 모아서 회사에 필요한 것을 만들어낼 수 있는 사람. 5 레벨까지가 기술적으로는 최대치라고 볼 수 있습니다. 이러한 레벨에 대해 인정받는 방법은 각 기준에 해당되는 능력을 보였던 것(자신이 했던 프로젝트)을 가져가서 증명해 내는 것이죠.

    승진에는 정치적인 요인도 들어갈 수 있습니다. 그래서 넷플릭스 같은 회사는 아예 시니어만 뽑아서 성과만 내면 되도록 하고 평가를 하지 않기도 합니다. 그러다가 성과를 내지 못하면 바로 나가야 합니다. 그래서 인터뷰 과정을 정말 철저하게 하고, 애매하면 안 뽑습니다.

    📌Summary
    · 미국은 연차대신 레벨링으로 표현
    · lv.3 주니어는 정해진 스펙으로 구현할 수 있는 능력을 가진 사람
    · lv.4 중간은 문제점을 찾아 역제안할 수 있는 사람
    · lv.5 시니어는 처음부터 끝까지 알아서 만들 수 있는 사람

     

    💬 우○○ 님 (Back-end Engineer)

    처음에는 눈앞에 보이는 문제 상황 해결, 그리고 그걸 위한 전문 기술, 예를 들어 스프링이나 각 언어에 대한 학습, 그게 첫 단계(신입/주니어)인 것 같습니다.

    그걸 어느 정도 원활히 하게 되면, 그다음부터는 대체로 커뮤니케이션 역량이 훨씬 향상돼서 특정 파트의 대표성을 띄는 사람이나 팀장이 됩니다. 팀장이 되기 전에도 어느 정도 특정 기술 분야나, 지금 개발하고 있는 도메인이나 기능 분야가 있으면 그 부분을 자기가 대표할 수 있습니다. 그 사람의 발언이 어느 정도 대표성을 띄는 순간 시니어가 되는 것이라고 생각합니다.

    어떤 분들은 커뮤니케이션 역량 없이 본인의 개발 능력으로만 누르고 가는 경우도 있는 것 같고, 어떤 분들은 커뮤니케이션 역량, 오래 쌓아온 도메인 지식, 회사 내에서 오래된 사람이 가지는 정보의 격차, 이런 것들을 통해 어느 정도 대표성을 띄면서 커뮤니케이션을 조율하는 방향으로 가기도 합니다.

    가장 좋은 것은 일단 기술적으로 누구에게나 존중받을 수 있는 단계로 가는 것입니다. 서로 코드 리뷰를 할 때나 기술 선택을 할 때 발언권의 차이가 자연스럽게 많이 나게 됩니다. 그런 부분에서 다른 개발자들을 설득할 수 있을만한 기술적 역량을 갖고 있고, 그러면서 도메인 지식이 있어서 마케팅이나 디자인, 기획, 사업부와 이야기할 때도 커뮤니케이션이 되는 사람이 있는데, 결국 이런 분들이 존중받는 시니어로 가게 되는 것 같습니다.

    📌Summary
    · 신입과 주니어는 눈앞에 보이는 문제 상황을 해결하고, 그걸 위한 전문 기술을 학습하는 단계
    · 시니어는 특정 파트의 대표성을 띄고, 다른 개발자를 설득할 수 있을만한 기술적, 커뮤적 역량을 갖추는 단계

     

    💬 정○ 님 (Full Stack Engineer)

    간단히 말하면 시니어는 알아서 잘하는 사람, 주니어는 '이것이 문제다'라는 것을 인지하고, 시키는 것을 잘하는 사람입니다. 
    시니어가 되면 문제점을 찾고, 대안을 제시하고, 문제를 스스로 해결할 수 있어요.
    그래서 일을 줬을 때 주니어는 굉장히 디테일하게 태스크를 나눠서 줘야 하는데, 시니어는 그냥 '문제가 있다' 하면 알아서 이 문제를 해결하기 위해 어떤 것이 필요한 지 같이 플랜 할 수 있습니다. 이런 부분으로 시니어와 주니어를 나누고 있습니다.
    어느 조직을 가나 불만은 많은 것 같습니다. 인프라가 안 좋고, 이건 느리고 등등. 넥스트 레벨로 갈 사람들은 문제점은 다 알고, 이 문제점을 해결하려면 어떻게 해야 할까 고민합니다. 단순히 코딩만 하는 게 아니라 다른 부서들과 협업도 잘해야 하고, 협업을 잘하려면 어떻게 프로세스를 만들어야 하고, 어떤 걸 고쳐야 하는지 이런 것들에 대해 생각을 많이 해야 합니다. 주니어까지만 해도 내가 앉아서 코딩만 열심히 해서 그걸 딜리버리 하면 좋은 평가를 받을 수 있지만, 시니어로 가면기대가 훨씬 높아지는 것이죠. 문제점을 인지하고, 대안점을 찾고, 해결까지 하는 것을 많이 요구합니다.

    📌Summary
    · 주니어는 문제를 인지하고, 시키는 것을 잘하는 사람
    · 시니어는 문제점을 찾고, 대안을 제시하고, 문제를 해결하는 사람

     


    이 글이 도움 되었다면, 프론트엔드 개발자를 위한 다양한 주제도 함께 살펴보세요!

    👉 프론트엔드 개발자가 갖춰야 할 핵심 역량은?
    👉 뛰어난 업무 성과를 내는 프론드엔드 개발자의 특징

     

    댓글

Programmers