내가 속한 환경에서는 어떻게 일해야 성장할 수 있을까?
F-Lab : 상위 1% 개발자들의 멘토링
개요
‘좋은 동료가 곧 복지다.’ 라는 말이 개발자 사이에서 많이 퍼졌던 적도 있을 만큼, 좋은 동료 훌륭한 동료는 나를 몇단계 성장할 수 있는 계기가 되기도 한다. 그만큼 환경은 정말 중요한데 어떤 환경에서 어떻게 일해야 성장할 수 있을까?
이 글에서는 각 환경별로 어떻게 접근하면 좋을지 이야기 해보도록 하겠다.
비즈니스 현황
왜 비즈니스 현황이냐하면, 비즈니스의 상태에 따라서 나의 성장 경험치가 달라질 확률이 있기 때문이다. 비즈니스 현황만으로도 어느정도의 경험을 할지 추정할 수 있기에 어떤 환경에서 어떻게 일하는 것이 좋은지도 이야기해보고자 한다.
1. 현상 유지형 유지 보수
유지 보수 단계가 어떤 식으로 팀과 회사가 이 상황을 대하는 지 여부에 대한 차이가 있긴하다. 기술적 변화를 최소화하고, 현상 유지를 지향하는 환경이라면 어떻게 해야 할까? 아마 의지가 있었던 동료들도 의지가 줄어들었을 가능성이 있긴 하지만, 그래도 동료를 독려하며 할 수 있는 최선의 경험을 쌓기 위해 다양한 시도도 병행하는 것이 좋다. 리스크가 있거나, 효용성이 낮다고 조금이라도 판단되면 저지 당할 수도 있지만, 그럼에도 다양한 시도를 해보고 그 안에서의 최선을 고민해보는 것이 필요하다.
2. 트래픽은 적지만 공격적인 기능 개발 및 추가
서비스를 활성화 시키고자 다양한 노력을 하고 있다면, 빠른 개발이 1순위 일 가능성이 높다. 이러한 환경에서는 속도를 우선시 하는 환경에 맞춰서 같이 속도전을 지향하는 것이 좋다. 이런 과정에서 많은 비효율이 발생하고 있을 텐데, 이에 대한 개선안과 짬짬이 실제 실행을 보여준다면 많은 성장의 경험과 동료의 신뢰를 얻을 수 있을 것이다.
3. 트래픽이 많은 서비스 유지 보수
이 경우가 가장 어렵다. 트래픽이 많다는 것은 장애의 리스크가 아주 크다는 의미다. 그렇기에 기능 하나 추가 할 때 안정성이 꽤 높은 우선 순위일 확률이 높다. 그렇다보니 코드 리뷰라거나, 단위 테스트, 통합 테스트 등 리스크를 줄이면서 퀄리티를 높이는 다양한 프로세스를 갖고 있을 것이다. 이에 잘 적응해나가면 충분할 수 있다. 다만 트래픽으로 인해 장애가 많이 발생했을 때, 해당 이슈의 원인이나 개선 점에 대해서 잘 보고 배우지 않는다면, 좋은 환경에 있었음에도 실질적 성장치는 낮을 수 있음에 유의하자.
4. 서비스를 만들어 가는 시기 (빌드업)
서비스를 만들어 나갈 시기에는 방향성 검증을 위해 다양한 시도가 병행되는 경우가 많았는데, 요즘 대부분의 서비스는 MVP를 먼저 개발하는 속도전으로 빌드업하는 경우가 많아졌다. 이러한 시기에 주니어가 팀에 있다면, 시니어가 리드하는 방식을 잘 따라가는 것이 좋다. 만약 리서치 업무나, 개선 업무를 배정해주고 시니어가 MVP 구현 혹은 구축 작업 등을 하면서 탱킹해주고 있다면, 마음껏 캐리롤을 맡고 날뛰어도 좋다.
5. 서비스를 출시 한 시기
서비스가 출시 했을 때에는 초기 반응이나 대응이 아주 중요하다. 이에 대한 기민한 대응을 목표로 하는 것이 좋으며, 개발 과정이 아주 긴박했다면 하지 못했을 제품을 마음껏 써보면서, 다양한 피드백과 의견을 내는 것이 좋다. 이에 덧붙여, 기술 부채 목록을 정리하고 하나씩 진행한다거나, 디테일이 더 좋아지기 위한 방안, 서비스 출시 후 이슈에 대한 패턴 분석이나 개선안 마련 등의 노력도 함께 기울이면 좋을 것이다.
리더의 역할에 따른 나의 액션
결국 CEO의 방향이던, CTO의 방향이던 리더의 결정에 따라 개발의 우선 순위가 갈릴 수 밖에 없다. 이러한 성향이나 의지는 최대한 면접 과정에서 확인 하는 것이 좋다. 그럼에도 입사후에 상황이 바뀔 여지가 있지만, 그 확률을 상대적으로 줄일 수 있다.
여기서 말하는 리더는 사수나 테크 리드, 혹은 시니어 개발자를 지칭한다.
A. 리더가 탱킹하는 경우
슬프게도 나이가 들 수록 머리가 예전만큼 돌지 않는다. 나의 경우에도 거의 20년 가까이 개발을 하며, 머리가 덜 도는 것을 매년 느낀다. 그렇다보니 경험과 연륜, 인사이트 등으로 많은 업무나, 새로운 학습도 무난하게는 하지만, 번뜩이는 센스라거나, 새로운 방향이나 방식은 잘 떠오르지 않는다. 또한 집중력이 이전보다 줄어 쉽지 않다는 것을 자주 느낀다. 그래서 나 역시 탱킹을 하며 나의 경험과 역량을 이용해 최대한 다른 개발자의 인터럽트나 불편함, 비효율을 개선해주면서 시간과 기회 비용을 벌어주는 역할을 담당한다. 이러한 노력을 잘 활용하는 것이 동료로써, 팀원으로써, 개인 관점에서도 이득이니 이러한 탱커 개발자가 옆에 있다면 자신이 어떤 일을 해야 할지 방향을 잘 잡는 것이 필요하겠다.
B. 리더가 캐리하는 경우
바로 위에 나이를 언급했지만, 나이가 들 수록 인사이트가 넓어지는 것은 사실이다. 코딩 양은 줄어들지만, 이미 해온 경험이나 역량을 바탕으로 캐리 롤을 시니어가 수행하는 일도 비일비재하다. 이러한 경우, 주니어가 탱커롤을 맡아 단순 작업이나, 비효율에 대한 개선을 맡게 되는 일도 존재하게 된다. 이런 롤을 맡았을 때의 마음 가짐은, 최대한 탱킹 역할을 잘 수행하며 자신이 최저치가 높은 개발자, 어떠한 롤도 무난하게 잘 해내려는 태도를 가진 개발자라는 것을 증명하다보면, 자연스레 그러한 모습을 인상 깊게 본 주변 환경이 자신에게 선택권을 주거나, 조금씩 더 취향에 맞는 업무를 줄 확률이 높아질 것이다.
마치며
각 환경 별로 어떠한 마인드와 태도로 접근하면 좋은지 가볍게 이야기 해봤다.
다음 글로, 동료에 대한 이야기로, 회사 생활에서의 다양한 관점을 이야기 해보도록 하겠다.
이 컨텐츠는 F-Lab의 고유 자산으로 상업적인 목적의 복사 및 배포를 금합니다.