시니어 개발자에 대한 고민

minyoung.jung·2022년 6월 26일
1
post-thumbnail

안녕하세요. 저는 의료 AI 기업에서 프론트엔드 개발자로 일하고 있어요. 작년 여름, 지금 회사에 시니어 개발자라는 타이틀로 합류하게 되었는데요. 요즘 시니어 개발자라는 역할에 대해 고민하면서 제가 정리한 내용을 공유하고자 합니다. 이제 막 시니어 개발자가 되어 고민하고 계신 분이나 시니어 개발자를 꿈꾸며 달려가고 계신 분이 이 글을 보신다면 생각을 정리하는 데 조금이나마 도움이 되시길 바랍니다.

현재 회사에 합류한 지 이제 1년이 다 되어 가고 있는 시점에서 내가 어떻게 일하고 성과를 만들어 가고 있는지 개인적인 회고를 진행하게 되었는데요. 이 과정에서 시니어 개발자에 대한 개인적인 생각과 이 회사에서 내가 시니어 개발자로서 어떤 역할을 하고 있는지에 대해 많은 고민을 하게 되었습니다.

구글에서 시니어 개발자 라는 키워드로 검색하면 꽤 많은 양의 시니어 개발자에 대한 고찰들을 확인할 수 있는데, 역시 많은 사람들이 이미 같은 고민을 했었고, 시니어 개발자에 대한 정의를 스스로 조금씩 만들어 가고 있다고 생각해요.

다만, 도메인이나 조직 분위기와 성숙도, 개인이 생각하는 주요 가치에 따라 시니어 개발자의 역할은 천차만별이고 다양한 방향성을 갖게 된기 때문에 시니어 개발자는 이런 역할을 해야 한다는 기준을 얘기하기엔 어려움이 있지 않을까 합니다.

이 글에선 제가 지금까지 개발자로 지내오면서 개인적으로 생각하는 시니어 개발자 역할에 대해 이야기 해보려고 합니다.

우리는 어떤 개발자를 시니어라고 할까?

개발 조직에서 시니어 개발자는 항상 필요하다고 말합니다. 특히, 스타트업에선 이제 막 시작하는 프로젝트도 많고 제품도 도약을 위한 준비를 하다 보니 더욱 시니어 개발자를 찾게 되는 거 같아요.

때문에, 많은 회사들이 시니어 개발자 채용공고를 올리면서 많은 기대를 하게 되는데요. 생각보다 시니어 개발자가 우리 개발 조직에서 무슨 역할을 해야 하는지, 어떤 방향으로 고민했으면 하는지에 대해서 얘기하는 회사는 찾기 쉽지 않은 거 같습니다.

제가 채용 플랫폼에서 시니어 개발자 채용 공고를 검색했을 때를 생각해 보면 자격요건이나 주요업무 내용을 보면 공통적으로 아래와 같은 조건을 얘기하는 거 같아요.

  • 7년 이상의 개발 경력
  • 담당 직무에 대한 설계, 개발, 운영 경험

많은 회사들은 개발 연차에 비례하여 주니어/시니어 개발자를 구분하곤 합니다. 또는 특정 언어나 개발 경험이나 능력만으로 구분하기도 하고요.

그런데, 개발 연차와 경험으로 시니어를 구분하는 것이 맞을까요? 저는 이것으로 시니어를 판단할 수 있는 까 하는 의문점을 가지고 있어요. 사실 담당 업무나 분야에서 영향력 있는 성과를 내기 위해선 절대적인 시간이 반드시 필요합니다. 많은 사람들이 시니어라면 그 시간 동안 다양한 과정을 통해 성장했을 것이고 경험을 바탕으로 다듬어진 프로세스를 가지고 있을 것이라 기대하게 되는데요. 아무리 오랜 연차가 쌓이더라도 그 시간만큼 성장했다고 보긴 어렵다고 생각합니다. 모두 같은 노력을 하진 않으니까요…

나는 어떤 시니어가 되려고 하는가?

사실, 이런 일들을 해야 시니어라고 할 수 있습니다 라고 말하는 것은 꽤나 단편적인 판단이라고 생각해요. 현재 다니고 있는 회사나 내가 속한 조직, 개인 성향에 따라 시니어의 기준은 모두 다를 수 있기 때문에 정답이 있을 수 없지 않을까 합니다. 저 역시 지금까지 근무했던 회사에서의 생활을 바탕으로 생각해봤을 때도 각 회사가 원하는 시니어의 기준은 모두 달랐던 거 같아요.

그래도 일을 하면서 내가 어떤 개발자로 성장할 것인지에 대해선 계속 고민했었고, 기존에 제가 일하면서 했던 잘못된 방식이나 생각을 개선하려고 노력했었는데요. 제가 정리한 내용을 공유해 보고자 합니다.

동료들에게 좋은 길잡이가 될 수 있어야 한다.

시니어 개발자는 팀, 나아가 조직 내 다른 개발자들에게 좋은 영향력과 자극을 줄 수 있어야 한다고 생각해요. 단순히, 개발을 어떻게 하는 것인가가 아니라 주어진 요구사항이나 문제점을 인식하고 해결하는 과정을 고민할 수 있어야 합니다.

이런 고민을 통해 프로세스를 정립하고 다른 개발들도 만족할 수 있는 가이드라인을 제시한다면 팀 또는 조직의 개발자들이 성장할 수 있는 길잡이 역할을 할 수 있지 않을까 생각합니다.

비즈니스에 대한 이해와 더 나은 방향성을 제시한다.

시니어 개발자에게 개발을 잘 하고 있다라는 의미는 현재 담당하고 있는 업무에서 비즈니스에 대한 높은 이해를 바탕으로 적절한 프로세스를 구축하고 일정과 요구사항을 만족할 수 있는 수준의 퍼포먼스를 보여주는 것이라고 생각해요.

프론트엔드 개발을 하면서 내가 만든 서비스를 가장 먼저 사용해 보는 고객은 항상 저였던 거 같아요. 기획서를 보고 내용에 맞춰 빠르게 개발하는 것도 중요하지만, 개발하면서 불편하게 생각했던 Work-flow나 UI, 기능 등이 비즈니스 관점에서 좀 더 개선될 수 있게 의견을 제시하는 것이 제가 하고 있는 프론트엔드 시니어 개발자가 해야 하는 업무 중 하나라고 생각합니다. 이 과정에서 다른 팀의 이해관계자와 소통하고 의사결정에 참여하여 최선의 방향을 도출하는 작업도 함께 고민을 합니다.

조직의 비효율적인 부분을 발견하고 개선한다.

개인적으로 가장 많이 고민하고 조심스럽게 생각하는 부분인데요.

업무를 하다 보면, 특히 많은 팀이 참여하는 서비스에 개발자로 참여했을 때 동일한 불편함이 지속적으로 발생하는 경우를 종종 볼 수 있었는데요. 이때마다 기획-디자인-개발 간의 동기화 문제나 개발 중간에 변경되는 요구사항에 대한 대처, 중복 작업, 미흡한 커뮤니케이션 등 다양한 문제와 갈등을 경험할 수 있었어요.

저는 시니어라면 이런 상황에서 효율적인 업무 프로세스 구축을 위해 우리 조직의 비효율적인 부분과 문제 요소를 발견하고 이에 대한 개선책을 제시하는 것이 필요하다고 생각합니다.

성장가능한 개발문화를 제안하고 분위기를 조성한다.

회사가 성장하고 서비스가 고도화되고 개발 조직이 커지게 되면, 조직 내 개발자들이 스스로 성장할 수 있는 개발 문화와 분위기가 만들어져야 한다고 생각해요.

시니어 개발자는 개인적인 성장 외에 팀 또는 부서 단위의 조직 성장에도 관여할 수 있어야 한다고 생각하는데요.

코드 리뷰나 페어 프로그래밍, 기술 트렌드 미팅, 프로젝트 회고 등 성장할 수 있는 방안들을 제안하고 그 안에서 좀 더 나은 방향을 고민하면서 모두가 성장할 수 있는 개발 문화와 분위기를 조성하는 데 기여해야 한다고 생각합니다.

마무리(WIP: 시니어 개발자)

시니어 개발자라는 위치는 단순히 연차가 많거나 개발에 대한 경험이 많은 사람이 할 수 있는 것은 아니라고 생각해요. 트렌드가 변하고 서비스도 변화에 맞춰 성장하기 때문에 기존에 아무리 많은 경험이 있더라도 새로운 순간을 맞이할 수 있기 때문인데요.

시니어 개발자는 이런 상황에서 담당 직무인 개발에만 집중하는 위치가 아니라 업무 범위를 확장하여 좀 더 넓고 많은 곳에서 다양한 방향으로 고민을 해야 하는 위치가 아닐까 합니다.

근데… 생각만큼 잘 되진 않는 거 같아요. 개인적으로 많이 고민하고 노력하고 있지만 아직까지 위에 작성한 내용들을 현재 회사에서 모두 수행하지 못하고 있습니다…

제가 생각하는 좋은 방향이 다른 사람에겐 아닐 수도 있고 이미 구축되어 있는 문화나 시스템에 적응한 인원이 많을 경우 부담스럽거나 불필요할 수도 있거든요.

저는 이 글을 작성하면서 개인적으로 생각하고 있던 시니어 개발자의 모습을 다시 한번 고민해 보고 있습니다.

누구나 시니어가 되고 리더가 되는 순간은 찾아옵니다.

이 글이 시니어를 고민하는, 또는 앞으로 고민을 할 많은 분들께 방향성을 잡는 데 조금이라도 도움이 되길 바랍니다.

감사합니다!

profile
안녕하세요. 프론트엔드 개발자입니다.

0개의 댓글