자주 듣는 질문 중에 주니어와 시니어는 어떻게 다르냐는 질문이 있다.
내가 일하면서 주니어와 시니어를 나누고 그들에게 기대하는 바를 정리해 보겠다.
주어진 일을 잘해야(기능 범위, 일정 + 품질)
매번 물어라
주어진 일 잘하기
요구되는 기능을 주어진 일정 내에 완수하는 것이 기본이다. 품질이 부족하더라도 품질을 높이겠다고 기능 범위, 일정을 위반하면 안 된다. 주어진 시간에 만든 품질이 나의 실력이다. 시험 시간이 1시간인데, 1시간 내에는 70점 밖에 못 맞을 것 같다고, 100점을 맞기 위해 혼자서 2시간을 사용하는 것은 규칙 위반이다. 주어진 일정 내에서 기능 범위를 완수하는데 자신의 역량에 따라 품질이 달라지는 것이다.
매번 물어라
지인 중에 동네소아과 의사분이 계시다. 그분 말씀 중에 동네 소아과에서 제일 중요한 것은 상급 의료기관으로 이송할 것인지, 자신이 진료를 할 것인지를 결정하는 것이라고 한다. 이것만 잘해도 좋은 동네소아과가 된다고 한다.
공감 가는 말이다. 주니어 개발자들이 업무를 수행하다가
"이 정도는 내가 혼자 결정해도 되겠지"
라고 결정하고, 공유 없이 업무를 진행하여 문제가 있었던 기억이 꽤 있다.
주니어도 동네 소아과 의사처럼 "내가 결정할지? 시니어에게 문의할지? “를 잘 결정해야 한다. 확신이 들지 않는다면 "매번 물어보라”. 물어보지 말라고 할 때까지 물어보라. 어느 순간 그런 건 알아서 하라고 그럴 것이다.
시니어에게는 다음과 같은 것들을 기대한다
업무의 완결성, 품질
주위 동료들이 잘하도록 도와야
구성원의 전문성 향상
업무의 완결성, 품질
시니어가 업무를 처리하면 다른 사람이 더 볼 것이 없어야 한다. 완결적으로 처리되어 배포되었을 때 아무런 문제가 없어야 한다. 다양한 경험, 역량 등을 통해 완결성 있는 업무 처리가 되어야 한다.
또한, 품질도 높아서 주니어들이 시니어가 한 업무를 보고 "나도 저분처럼 되고 싶다"라는 생각이 들어야 한다. 그래서 개인과 조직의 성장에 기여할 수 있다.
주위 동료들이 잘하도록 도와야
시니어는 자기만 잘하는 것을 넘어서 우리 조직의 다른 구성원들이 업무에 몰입할 수 있도록 도와야 한다.
코드 작성과 같은 구체적인 부분은 담당자가 하더라도, 초기에 어떻게 문제를 해결할 지에 대해서 논의하고 방향을 잡아줘야 한다. 초기에는 상위 단계에서 잦은 피드백을 제공하고 담당자가 업무에 몰입하게 되면 그땐 시니어도 자신의 업무를 수행하면서 담당자들이 도움을 요청할 때 도와주고, 리뷰에만 참여하여 문제가 있는 확인 해야 한다.
초기의 짧고 잦은 피드백이 중요하다. 이때 많은 문제를 꽤 방지할 수 있다. 또 이때의 변경 비용이 가장 저렴하다. 배포 후가 가장 비싸다.
구성원의 전문성 향상
조금 답답하더라도 구성원들이 직접 업무를 수행하면서 전문성을 습득하도록 도와야 한다.
처음 아들에게 운전을 알려줄 때
주차장에서 차를 빼고, 방향을 잡아주고, 자리 바꾸고, 답답해도 참았다
주니어의 역량 향상에 기여할 때도 마찬가지다.
목표, 방향 등만 논의해서 정하고(what, when), 실행은 구성원이(how) 하도록 해야 한다.
너무 많이 도와주면 빠르게 완수할 수는 있을지 몰라도, 구성원들이 성장하지 못한다.
어느 팀장님이 지저분하고 하기 싫은 운영 업무는 본인이 도 맡아서 하고, 구성원들은 개발에만 전념할 수 있도록 했었다. 굉장히 좋은 팀장님이라고 볼 수도 있다. 사실 구성원들에게 굉장히 평이 좋았다. 하지만 이렇게 게 운영하면 구성원들은 운영 역량이 늘지 않는다. 그리고 역량이 가장 뛰어난 팀장님이 큰 가치로 기여할 수 있는 기회가 줄어든다. 중요한 사람은 중요하고 성과, 영향이 큰 업무를 수행해야 한다. 구성원들을 과잉보호하면 그들의 성장에 방해가 될 수 있다.
그리고 …
주니어, 시니어를 넘어서 회사의 개발 조직 전체를 리딩하는 리더가 있다.
이런 리더는
회사의 비전, 미션과 방향성을 맞춰 개발 조직을 만들고, 개발 문화를 만들어 나갈 수 있어야
개발조직을 대변해서 경영진, 비 개발직군과 협업에 기여하고, 회사의 입장을 개발조직에 소통할 수 있어야
한다. 이러한 리더도 코딩 수준에서 개발자들과 소통할 수 있어야 한다. 마치 옛날 장수들이 말 타고 지휘만 하다가 중요한 순간에 적장과 맞짱을 떠서 기여를 하듯. 더 중요한 일을 하느냐 코딩을 많이 하지는 않지만 할 때는 구성원들이 보고 배울 수 있는 수준이어야 한다고 생각한다.