우리는 나이와 연차가 쌓이면서 자연스럽게 주니어에서 시니어로 넘어가는 것 같다.
그럼 과연 시간이 주는 차이 말고, 시니어 개발자가 주니어 개발자가 잘해야 하는 것은 무엇일까?
답답한 마음에 같이 공부하는 분들에게 이야기하였고, 함께 나눈 이야기를 정리해 본다.
J
SI 시장에 오래 있었어요. (10+ 이상)
빨리 만드는 사람이 높은 평가, 일정이 짧고 작은 투입 인력으로 일정 안에 완수하는 게 곧 수익으로 이어진다.
나만의 라이브러리를 만든다. (노하우) -> framework처럼
초, 중, 고급을 나누는 기준은 연차였다.
초급은 (2~3년 차) 할 수 있는 게 많지 않다 할 수 있는 것과 없는 것이 많고, 프로젝트 내에서 해결할 수 있는 피쳐들을 한다. (책임은 없고 일만 있다.)
중급: 특정 모듈을 만들어 줄 수 있을 때 책임감을 줄 수 있다. (작은 책임)
고급: 전체에 대한 설계를 할 수 있어야 한다. 병목이 생기는 모듈을 해결해 줄 수 있어야 한다. - 전체에 대한 책임이 따른다.
시니어는 일정을 예측할 수 있어야 한다.
또, 본인의 의견보다 다른 사람들의 의견을 듣고 잘 정리할 수 있어야 한다.
K
연차는 실력과 비례하지는 않는다.
시니어는 팀을 이끌고 주변 사람들에게 인정을 받아야 한다.
프로젝트를 이끌어가는 모습을 지속적으로 보여줄 때 신뢰감이 생기고 그가 속한 조직의 팀워크가 올라가는걸 경험했다.
블라인드에서 검색을 해본 적이 있는데 이런 내용이 있었다.
주니어는 내가 코딩한 게 돌아갈까 의심이 간다. 실력 이슈
시니어는 코딩한 건 의심한다. 제시하는 의견을 다른 사람들이 귀를 기울이고, 확장이 된다. (경험적 인정)
시니어는 주니어를 키우는 방법, 팀을 발전시키는 방법을 알아야 한다.
시니어는 커뮤니케이션 능력이 좋아야 한다. 물론, 주니어도 커뮤니케이션 능력을 잘 키워야 한다.
L
저도 요즘에 고민이 많다.
새로운 팀에 왔는데 나이도 어리고 경력도 적당한 후배들이 너무너무 잘한다. (엄친아 느낌)
시니어는 프로젝트를 끝맺을 수 있어야 한다. (개발력, 리딩, 필요한 툴을 잘 써야 한다.)
시니어는 새로운 사람이 왔을 때 2달 안에 적응할 수 있는 환경을 만들어 줘야 한다. (과장 정도라면…)
시니어는 프로젝트 병목을 찾을 수 있어야 하고, 개선법도 찾아야 한다.
S
시니어 프로그래머는 직업이 프로그래머이고, 팀 내에서 팀 리딩하고 관리를 하는 사람
초급은 스스로 무엇을 할 수 있는지 알 수 있는 수준
중급은 스스로 할 수 없는 것을 판단 할 수 있는 수준
고급은 남이 뭘 못하는지를 파악하는 시점
N
보통 10년을 하면 시니어라고 하지만 연차는 의미가 없다. (10년 안에 어떤 경험을 했느냐가 차이를 만든다.)
현재 갖고 있는 시스템을 구조적으로 발전시킬 수 있는 능력을 가져야 한다.
스스로 학습하고 발전할 수 있어야 하고, 주변의 동료를 성장시킬 수 있어야 한다.
다른 사람의 수준을 나눌 수 있어야 한다. (각 요소에 대한 레벨링) 분석, 설계, 구현, 운영, 커뮤니케이션
단순히 개발 능력이 뛰어난 것이 시니어는 아니다.
품질을 보장할 수 있어야 한다. (예방할 수 있는 품질), 확장성, 테스트 가능
개인의 성과가 아님 팀의 성과를 볼 수 있어야 한다.
겸손해야 한다.
효율을 안다.
협업을 잘해야 한다.
커뮤니케이션 효율이 좋아야 한다.
(기획, 디자이너가 왜 공감능력이 떨어진다고 하는지 다시 한번 생각해보자)
다 맞는 말 같다. 애초에 결론이 날 수 없는 이야기이다.
대부분의 면에서 주니어보다 시니어가 잘해한다. 더 높은 기대치를 요구받기에 당연한 이야기라고 할 수 있다.
그리고 취업과 동시에 프로라는 걸 감안한다면 능력치의 대한 평가는 당연한 것이기도 하다.
다시 한번 시니어 아니 더 나은 개발자가 되기 위해 해야 할 노력에 대해서 생각해본다.
단순히 시간이 주니어를 시니어로 성장시켜 주지는 않는다.
나의 능력치뿐 아니라 다른 사람의 능력치를 파악하는 능력이 있어야 한다. 개인보다는 팀을 봐야 한다.
현재의 프로젝트 or 시스템을 개선시킬 수 있어야 한다.
나의 성장을 위한 노력뿐 아니라 조직(팀)의 성장을 위해서도 노력해야 한다.
다른 사람과의 좋은 관계를 유지해야 한다. (정말 정말 좋은 사람이 꼭 되어야 한다.)
더 읽어 보면 좋은 이야기들.
우리가 부르는 시니어 개발자는 누구인가?
기술적 리딩
업무적 리딩
생산성 우위
난제의 해결
뛰어난 SW 개발자를 채용하는 방법
더 나은 동료가 되기 위한 10가지 방법