주니어 개발자가 미들급 개발자가 되기 전에 키워야 하는 능력
# 주니어 개발자
주니어 개발자라고 하면 1년 차에서 3년 차 개발자를 지칭한다. 하지만 필자는 3년 차 정도가 되어야지 주니어 개발자에 해당된다고 생각한다. 신입 개발자를 주니어 개발자라고도 통틀어 지칭하지만 1년 차와 2년 차는 신입 개발자에 해당되고 3년 차가 진정한 주니어 개발자라고 본다. 3년 차 정도가 되면 어느 정도 회사 내에서 맡은 업무에 대한 부담감이 적어지고 본인이 하는 일을 자신 있게 할 수 있는 레벨이 된다. 실무에서 자신이 맡은 일을 아무렇지 않게 해낼 수 있는 레벨이 바로 주니어 개발자이라고 생각한다.
3년 차 개발자인 주니어 개발자가 되면 다른 곳으로 이직을 고려하거나 승진 이후의 개발자로서 방향성에 대해서 고민하게 된다. 전혀 다른 개발 분야로 이직을 하지 않는 이상 이직을 한다는 건 더 좋은 대우를 받고 가는 것이기에 결과적으로 주니어 개발자 이상의 대우를 받게 된다. 대우가 높아진다는 건 그만큼 기업에서 해당 개발자에게 주니어 개발자 이상을 기대할 것이며 그에 상응하는 업무 능력과 책임감을 요구할 것이다.
문제는 3년 차 개발자인 주니어급 개발자가 되고 나서 다음 단계로 가려고 하니 본인의 능력을 어떤 식으로 발전시켜 나가야 할지 막막해진다는 것이다. 필자와 이야기를 나누는 많은 주니어급 개발자 브로들이 가지는 공통적인 큰 걱정이 바로 성장 방향성이다. 3년 차 이상이 되고 프로그래밍을 하는 프로그래머로 남아 있을 수도 있지만 이직이나 승진을 통해서 이제는 더 이상 프로그래머가 아닌 개발자로서의 업무가 주어질 수 있다. 4,5년 차 개발자 또는 미들급 개발자 업무는 프로그래밍 능력으로만은 부족하다. 따라서 3년 차 주니어급 개발자라면 다음 레벨에 들어가기 전에 미리 준비해둬야 하는 것들이 몇 가지가 존재한다.
# 소통의 능력을 키워라
4,5년 차 개발자인 미들급 개발자로서 인정을 받게 되면 팀을 이끄는 PM이 되거나 중간급 PM의 역할이 주어질 가능성이 높다. 물론 시니어 개발자가 총 PM급으로 있지만 중간에 주니어 개발자나 신입 개발자를 이끌 수 있는 개발자가 필요하다. 그렇기에 미들급 개발자들이 실무 PM으로 역할을 담당하게 된다. 심지어 작은 프로젝트나 대기업이 아닌 경우에는 미들급 개발자부터 PM을 담당하기도 한다. 따라서 주니어 개발자를 벗어날 시기가 다가온다는 것은 미들급 개발자 능력을 사전에 준비하고 있어야 한다는 것이다.
PM이 된다는 건 프로젝트의 전반적인 방향성과 기획을 담당한다는 것이다. 시니어 개발자가 총 PM급으로 존재한다고 하더라도 실무에서 중간급 미들 개발자 PM이 담당한다. 프로젝트의 전반적인 방향성과 기획을 한다는 것은 프로젝트에 대한 구조나 기획뿐만 아니라 주니어 및 신입 개발자들과의 커뮤니케이션, 즉 소통 능력이 정말 중요하다. 프로그래밍이란 혼자서 할 수가 없기 때문에 여러 개발자들과 작업을 같이 진행해야 한다. 팀 내의 개발자는 공통된 목표를 가질 수 있지만 개발하는 과정 자체가 각기 다를 수 있다. 이때 서로의 의견을 공유하고 최선의 방법으로 프로젝트를 마무리시키는 역할이 PM이고 특히 중간급 PM에 해당한다.
여기서 말하는 소통의 능력은 그저 말하는 능력이 아니라 개발자로서의 소통 능력을 의미한다. 각 개발자는 자신의 특화되어 있는 개발 능력이 조금씩 다르고 같은 주니어급 개발자라도 실질적인 능력이 각기 다르다. 이러한 능력을 파악하고 프로젝트 내에서 업무 분담과 프로그래밍 업무에 대한 정확한 지시를 내려줘야 하는 것이 개발자의 소통 능력이다. 또한 각 개발자 팀원마다 어려운 부분이나 문제가 되는 부분을 듣고 정리해서 시니어 개발자에게 문제점을 보고하고 해결 방안을 논의하는 것 역시 미들급 개발자가 해야 될 일에 해당한다.
결국 전반적인 업무가 프로그래밍 뿐만 아니라 프로젝트가 잘 마무리될 수 있게 개발자들 간의 소통을 책임지는 역할을 수행하게 된다. 물론 프로그래밍을 전혀 하지 않는 것도 아니며, 프로그래밍을 할 줄 아는 능력도 부족하다면 이 부분을 마저 보완하는 것이 중요하다. 하지만 3년 차 주니어급 개발자라면 대부분 실무 프로그래밍 능력을 충분히 키운 상태이기에 미들급 개발자가 되기 전에 소통 능력을 미리 준비해두는 것이 좋다.
# 개발자 소통 능력은 어떻게 키우나요?
개발자 소통 능력은 단숨에 키워질 수 없는 스킬이다. 개발자의 소통 능력을 키우기 위해서는 우선적으로 프로그래밍과 프로젝트 기획력에 대한 능력을 충분히 가지고 있어야 한다. 그래야 지만 미들급 개발자가 되었을 때 주니어급 또는 신입 개발자에게 프로젝트를 어떻게 진행해야 될지에 대해서 알려주고 원활하게 지시를 내릴 수 있기 때문이다.
앞선 준비가 모두 끝났다면, 주니어급 개발자는 PM의 업무 방식을 관찰하면서 사전에 미리 배워두어야 한다. 간접 경험보다 직접 경험이 학습하는데 상대적으로 도움이 더 되듯이 주니어 개발자일때부터 PM 개발자들이 하는 역할이나 일을 배워두는 것이 좋다. 미팅에서 어떤 식으로 개발자들과 소통하는지, 프로젝트 실무 기획에 있어서 어떤 점을 중시하는지 등을 관찰하면서 파악해두는 것이 좋다.
또한 다른 개발자들과 이야기를 많이 나눠보는 것도 좋다. 신입 및 주니어 개발자들의 경우에는 개발과 관련된 이야기를 다른 개발자가 굳이 만들어서 나누지는 않는다. 사실상 미들이나 시니어 개발자의 지시대로 프로그래밍을 하다보니 굳이 다른 개발자들과 프로젝트에 대해서 업무적 외 적으로 추가로 이야기를 나눌 필요가 없기 때문이다. 그럼에도 프로젝트에 대해서 여러모로 다른 개발자들과 이야기를 나누다 보면 개발자의 소통 능력을 키울 수가 있다.
여기서 말하는 개발자란 본인의 상사 뿐만 아니라 주니어급이나 신입 개발자도 포함된다. 개발자들과 이야기를 나눠서 프로젝트의 개선안이나 아이디어가 추가로 나올 수도 있지만 본질적인 목적은 다른 개발자들의 생각을 공유할 수 있다는 점이다. 중간 PM이나 프로젝트 하나의 PM이 되었을 때, 다른 개발자들의 어려움이나 생각 또는 니즈를 사전에 파악할 수 있다면 각각의 개발자 팀원들의 특징을 파악하고 소통하는데 큰 도움이 된다. 결과적으로 개발자들 간의 소통이 잘 되고 특성을 잘 파악한다는 것은 프로젝트가 원활하게 흘러갈 수 있다는 걸 의미한다.
결과적으로 리더로써의 역할까지를 요구하는 것은 아니다. 이제 막 주니어 개발자에서 미들급 개발자로 인정을 받는 위치에서는 프로젝트를 잘 이해하고 팀원 개발자들이 맡은 일을 잘해나갈 수 있도록 도와줄 뿐이다. 이러한 역할은 CS 전공자라면 대학교에서도 팀 프로젝트 때 간접적으로 미리 경험해볼 수 있는 일이다. 특히 미국 CS 전공자라면 대부분의 수업에 팀 프로젝트가 존재하고 모두가 동등하게 프로젝트를 수행하는 미국 문화에서 팀원 간의 소통하는 방법을 경험하고 배울 수 있다. 하지만 이러한 경험이 부족하다고 느껴진다면 미들급 개발자가 되기 전에 앞서서 소통의 경험을 통해 준비를 해야 한다고 본다.
'미국 개발자 > 미국 유학생' 카테고리의 다른 글
[미국 유학생] 학부 연구생 지원하는 방법과 좋은 이유 (0) | 2022.08.07 |
---|---|
[미국 유학생] 논문 잘 쓰는 방법: 논문 읽기 (0) | 2022.08.03 |
[미국 개발자] 해고가 많아지고 있는 미국 개발자 일자리 (2) | 2022.07.29 |
[미국 개발자] 미국 개발자의 해고 문화와 정리 해고 (0) | 2022.07.28 |
[미국 개발자] 코딩을 멈춰서는 안된다 (0) | 2022.07.21 |
댓글