주니어 개발자와 시니어 개발자의 차이
개발자 커리어에서 중요한 시점중에 하나가 주니어 개발자에서 시니어 개발자로 변경되는 시점이 아닐까 합니다.
정확하게 어떤 시점에서 시니어 개발자로 발전했는지 스스로는 자각 못하지만 시니어 개발자로 대우 받는것은 연봉이라든지 여러가지가 현실적으로 개발자 스스로에게 중요합니다.
리더의 입장에서도 시니어와 주니어 개발자를 구분해서 관리 해야 합니다.
주니어는 아직은 방향성을 많이 알려줘야 하고 시니어는 알아서 잘? 하는 현실적인 특징이 있기 때문에 주니어와 시니어 개발자를 구분하여 관리 하는 것은 실제로 경험상 중요합니다.
그렇다면 시니어 개발자란 무엇이고 기준이 어떻게 될까요?
아마도 기준은 절대적이지 않고 경우에 따라 다르지 않을까 생각이 듭니다. 따라서 여기서 이야기 하는 기준도 절대적인건 아니고 경우에 따라 다른 기준을 사용할수 있습니다. 어쨋든 제가 생각하고 있는 기준을 작성해 봅니다.
우선 주니어 개발자부터 이야기를 해볼까요?
주니어 개발자는 기본 소양을 갖추고 처음 시작하는 개발자부터 아직은 자발적으로 아키텍처를 설계하고 의사결정을 하기 힘든 개발자라고 할수 있습니다. 반면에 시니어 개발자는 어느정도 경험이 되고 자발적으로 아키텍처를 설계하고 의사결정을 할수 있는 개발자 레벨을 기준으로 분류 합니다. 즉 자발적으로 A~Z 까지 어려움을 이겨내면서 스스로 의사결정을 진행하고 업무를 진행 할수 있느냐 없느냐가 큰 기준이 됩니다. 물론 결과물도 기본적으로 좋아야 합니다. (코딩 스타일, 기타 업무 성과물)
가끔은 코딩을 잘하고 기술을 잘 아는 개발자가 시니어 개발자라는 생각을 가질수 있는데 경험해 보면 시니어 개발자는 꼭 기술을 많이 아는 개발자가 시니어 개발자는 아닌것 같습니다. 조금더 리스크 관리를 잘하고 자신의 도메인에 대해서 잘 이해를 하고 커뮤니케이션도 거칠지 않게 잘 할수 있는 개발자이지 않을까 생각이 듭니다.
시니어 개발자는 자신이 해야 하는 업무에 대해서 다른 사람들과 협업을 잘하는 능력도 필요 합니다.
작은 task 그룹에서 다른 사람들과 함께 의사결정을 주도적으로 하며 자신의 영역을 이끌어 가야 합니다.
그렇기 때문에 단순한 코딩 능력도 중요하지만 다른 구성원들과 같이 협업하는 것도 잘 이해해야 합니다.
여러분은 어떤 개발자 인가요? :)
agune