주니어 개발자의 온보딩을 도운 경험

joosing·2023년 3월 3일
48

생각/회고/계획

목록 보기
5/5

2년차 주니어 개발자의 사수가 되어 보았다. 새로운 회사에 오셔서 완전히 다른 프로그래밍 언어와 프레임워크를 사용해야 했기에 처음에 쉽지 않아 하셨던 것 같다. 동료가 회사에 업무적으로 적응하도록 도운 과정을 회고하며 느끼고 배운 점들을 기록해 본다. 동료는 참고로 (슈퍼)외향형이었는데, 단 몇 주 만에 나보다 회사에 친한 사람이 많아진 것 같았다. 업무 외에는 딱히 적응에 도움을 줄게 없다고 느껴졌다.

1. 작은 문제로 시작하기

먼저 현업에서 앞으로 마주하게 될 작은 문제(반 나절 정도면 해결할 수 있을 만한)를 주고 해결해 보도록 했다. 그리고 이 문제가 앞으로의 일과 어떻게 연관되는지 설명해 주었다. 이 문제로 어떻게 문제를 이해하고 해결하는지 관찰하고 대화하며 동료의 일하는 스타일, 기술 수준 등을 파악할 수 있었다. 대화 하다보니 ‘왜’ 하는지 이해하는 걸 중요하게 생각하는 사람임을 느낄 수 있었다. 작은 문제에서 시작해서 기능이나 업무의 범위를 점점 확장해 나갈 수 있는 문제를 미리 준비했다. 예를 들면 처음에는 간단한 통신 메시지 하나를 처리하는 핸들러를 만들게 하고, 이어서 다른 타입 메시지를 추가해 보고, 여러 핸들러를 연결해 보게도 했다. 그리고 서버와 연결은 없이 핸들러의 단위 테스트를 작성해 보게 했고 성공하면 이번에는 로컬에서 서비스를 띄우고 상용 서버 툴(PacketSender)로 수동으로 통신을 하며 눈으로 데이터를 보게 했다. 그런 후에 서버 시뮬레이터까지 만들어 완전히 자동화된 테스트를 만들어 보게 했고, 마지막으로는 실제 운영 시스템과 통신해 보도록 했다. 이렇게 단계적으로 문제를 준비하는데 많은 생각을 해야 했고, 나도 꽤 시간이 많이 들었던 것 같은데 동료가 점진적으로 문제에 접근하고 하나씩 해결해 나가는 느낌을 받는데 도움이 되었던 것 같다.

2. 문제를 해결하지 못할 때

동료에게 문제 자체가 이해되지 않으면 언제든지 계속해서 질문하라고 했다. 반면 문제는 이해가 되는데 해결책을 모르겠으면 조금 고민해 보고 질문하라고 했다. 고민 후에도 문제를 어떻게 해결할지 모르겠다고 하면 문제 해결에 필요한 키워드를 주고 찾아서 해보도록 했다. 그런데 완전히 감을 못잡는 느낌이 계속 들어서 페어 프로그래밍을 하며 예제 코드를 눈 앞에서 작성해 주고, 거기서 기능을 확장해 보도록 했다. 예를 들면 메시지 A 타입을 처리하는 코드를 보여주고, 조금 다른 B 타입을 처리하는 코드는 직접 작성해 보게 했다. 처음에는 거의 혼자 해결을 못해서 이런식으로 예제 코드를 많이 작성해 주었다. 혹시 내가 코드를 직접 작성해줘서 학습에 방해가 되냐고 물어봤는데 코드 예제를 보고 기능을 확장해 나가는게 지금의 자신에게 도움이 된다고 했다. 처음에는 거의 이런 식으로 문제를 풀었는데 몇 주 지나니 이 친구가 혼자 해결하겠다는 느낌이 드는 순간이 찾아 왔다. 그래서 그때는 더 말하지 않고 혼자 고민해 보도록 했는데 정말 잘 해결해서 성장하고 있다는 느낌을 받았다. 목소리나 눈빛 이런 것들을 보면 지금 키워드를 줄 때인지, 예제 코드를 같이 작성할 때인지, 혼자 고민하게 할 때인지 감을 잡는데 도움이 되었던 것 같다.

주의해야 할 모습들
그리고 여러 사람이 이 분을 가르쳐 주었다. 어떤 분은 문제를 해결하는 방법(How)만 가르쳐 주곤 했는데 혼란스러워 하는게 느껴졌다. 역시 왜(Why) 그렇게 되는지 원리도 적절히 설명해 주는 걸 좋아하는 것 같았다. 또한 나는 페어 프로그래밍이라고 적었지만 나만 옆에서 코드를 작성하고 동료가 코드를 작성할 때는 자리를 비켜주었는데 지켜보고 있으면 부담스러워 할 것 같은 느낌을 받았다. 또 다른 분이 이 친구를 가이드할 때는 어떤 문제를 내고 뒤에 서서 어떻게 푸는지 지켜보고 있는 모습을 봤는데 무척 부담스러워 하는 것 같았다. 상황에 따라 주의해야 겠다고 생각했다.

3. 학습 가이드

처음에 왔을 때 책으로 학습하는 걸 좋아하는지 물어보았다. 선호하지 않는다고 해서 인프런 동영상 강의를 추천해 주었다. C언어 스타일의 코드만 작성해 본 경험이 있어서 객체지향 언어를 무척 낯설어 했다. 자바 수업을 하나 정해 끝까지 들을 수 있도록 가이드 했다. 그리고 다른 기술들 보다 테스트 방법과 도구(JUnit 같은 도구 사용)에 대해 먼저 알려주고 문제 해결에 필요한 라이브러리들에 대한 학습 테스트를 계속 작성하게 했다.

4. 피드백 받기

설명할 때 잘 따라오고 있는지, 어떤 건 혹시 이해가 안되는지 중간 중간 확인 받으며 설명을 이어 갔다. 오늘 받아들일 만한 한계에 오지 않았는지도 중간중간 확인했다. 내가 설명하다가 새로운 주제로 한 걸음 더 나아가려고 하면 동료가 농담반 진담반으로 “살려주세요”란 신호를 주었는데 그러면 설명을 그만두었다. 이런 가벼운 피드백이 설명하는 나에게 도움이 되었다.

5. 온라인에서 피드백

온보딩 과정 마지막 쯤에 GitHub에 올린 PR을 리뷰해준 적이 있다. 그전까지는 옆에서 계속 대화를 하면서 피드백을 주었는데 의도적으로 온라인 댓글로만 피드백을 남겨 보았다. 그날이 이 친구와 함께 할 수 있는 거의 마지막 날이었는데 나도 모르게 너무 많은 피드백을 댓글로 쏟아 놓게 되었다. PR 리뷰를 할 때 상대가 한 두 단계만 성장할 수준의 피드백을 주는게 좋다는 걸 명심하려 했는데 마지막이란 생각에 너무 많은 내용을 쏟아 놓게 되었다. 옆에서 팔꿈치를 마주하고 있었다면 아마 이 친구가 “살려주세요”라고 했을 것 같은데 온라인으로 대화를 하니 이 친구의 표정이나 말투도 느낄 수 없었고 내가 말한 것을 잘 받아들이고 있는지 즉시 캐치할 수 없어서 아쉽다는 느낌을 받았다. 개인적으로 누군가의 학습을 돕는다면 오프라인으로 하는게 더 좋겠다는 생각을 했다.

6. 피드백 주기

피드백을 받으려 노력했고 나도 피드백을 주기 위해 노력했다. 긍정적인 피드백도 주었지만 부족하다고 느껴지는 점도 솔직하게 말해줬다. 대신 무례하지 않게 정중히 말하려고 노력했다. 기대했던 것 보다 프로그래밍 실력이 많이 부족해서 앞으로 이 회사에서 살아남으려면 많은 공부가 필요할 것 같다는 쓴 피드백을 주기도 했다. 그리고 동료가 팀에서 자신에게 어떤 것을 기대하는지 궁금해 했다. 그래서 팀에서 동료에게 기대하는 바를 명확히 말해줬다. 어느 기간 정도 안에 이런 이런 걸 할 수 있는 수준이 되면 좋겠다고 말해 주었는데 천천히 하면 되고, 사업적으로 긴급한 일이 없어서 여유를 가져도 된다고 계속 말해주었다.

7. 완벽보다, 성장과 완성

앞서 잠시 언급했지만 코드에 대한 피드백을 줄 때는 내가 보기에 완벽해 보이는 것을 추구하기 보다 동료의 수준에서 한 두 단계 성장할 수 있는 피드백을 주려 노력했다. (물론 버그는 완벽히 제거해야 했다. 이 기준은 코드의 품질에 대한 내용을 다룰 때만 적용했다.) 그래서 내 기준의 완벽함 보다 동료의 기준에서 성장과 완성을 경험하는데 도움이 되는데 초점을 맞추었다. 또 다른 측면에서는 완벽을 추구하다보면 나도 동료도 금방 지칠 것 같았고, 적당한 양을 이어가는게 더 중요하다고 느껴졌다. 약간 아쉬운 코드들이 계속 보였지만 지금 이 시점에 크게 중요한 것이 아니란 생각이 들었다.

8. 심리적 안정감

동료에게 일의 데드라인을 정해서 알려달라고 압박하지 않았다. 처음 해보는 일의 일정을 산출하라는 건 엄청난 압박이 된다. (다른 사람이 이렇게 할 때 고통 받는 걸 옆에서 지켜봤다) 그리고 동료가 다행히 어려운게 있으면 그때 그때 상담을 요청해 왔다. 고민을 들어주고 작은 조언을 주고 받을 수 있어서 좋았고 나에게도 무척 색다른 경험이 되었다.

9. 자신감 심어주기

두 달 쯤 일하며 처음의 작은 문제에서 시작해서 확장하기 전략을 통해 어떤 기능을 처음부터 끝까지 만들고 테스트하고 배포까지 한 루프를 돌 수 있게 되었다. 이 루프를 한 번 돌고 굉장히 자신감을 가지는 것 같았다. 그래서 좋은 방법이라고 느껴졌다.

마치며

지금까지 그냥 선배 개발자로 일해본적은 있지만 이렇게 밀접하게 붙어서 누군가를 전담해서 도와준 적은 처음인 것 같다. 굉장히 의미있는 일이라고 느껴졌다. 앞으로 이런 일들을 종종 하고, 잘하고 싶다는 생각을 했다. 열심히 공부해서 가르쳐 줄 좋은 것이 많은 사람이 되고 싶다는 생각을 했다. 마지막으로 회고하다 보니 그 동안 잠시 잠시 모르는 걸 가르쳐 주었던 몇몇 동료들 생각이 났다. 지금 처럼 깊이 고민하고 도와주지 않아서 성급하게 대하고, 불필요하게 혼내기도 한 좋지 않은 기억들이 스쳐지나간다. ‘그 친구들이 그때 얼마나 속상했을까?’ 이런 생각도 들고 미안한 마음이 든다.

profile
Software Engineer + Product Manager

10개의 댓글

comment-user-thumbnail
2023년 3월 7일

좋은 글 감사합니다

1개의 답글
comment-user-thumbnail
2023년 3월 9일

너무너무 좋은 사수분이시네요 한 두단계만 성장할 수 있게 라는 말이 굉장한 절제라고 느껴져요 고생하셨습니다!

1개의 답글
comment-user-thumbnail
2023년 3월 11일

좋은 마인드를 가지고 계신 것 같습니다! 글 잘 읽었습니다!

1개의 답글
comment-user-thumbnail
2023년 3월 13일

머쩌요

1개의 답글
comment-user-thumbnail
2023년 3월 15일

멋지네요 제가 일 할때도 이런 사수가 있었다면 지금 처럼 계속 헤메진 않았을텐데

답글 달기
comment-user-thumbnail
6일 전

천사이십니까?

답글 달기