퍼블리 엔지니어들은 어떻게 일하는가

안녕하세요! 자기소개 부탁드립니다.

신영: 안녕하세요, 퍼블리의 엔지니어 조직을 총괄하는 프린시펄 소프트웨어 엔지니어(Principal Software Engineer) 역할을 맡고 있는 박신영입니다. [박신영 님의 커리어리 프로필 보기]

 

앞서 승국님이 효율적인 커뮤니케이션의 중요성을 얘기해주셨는데요. 퍼블리 엔지니어분들은 커뮤니케이션의 비효율을 어떻게 줄이셨나요?

신영: 일단 기본적으로 퍼블리 제품조직은 '비동기 커뮤니케이션(asynchronous communication)'으로 협업해요. 아예 태스크 매니지먼트 툴 자체가 그렇게 세팅되어 있어요. 실시간으로 대화하려면(동기 커뮤니케이션) 서로 작업에 집중하기가 어려우니까요.

 

예를 들어 지라(Jira) 같은 툴을 쓴다고 했을 때, 엔지니어들이 작업할 때 참고할 수 있도록 PM이 배포할 때 필요한 것들이랑 작업 시 주의사항들을 미리 리스트업 해두는 식이죠.

 

'문서'를 중시하는 것도 그래서예요. 작업하기 전에 어떻게 할 것인지 문서에 적어두면, 테크 리드(tech lead)가 문서 보고 우려되는 점을 댓글로 달죠. 작업에 대한 피드백도 문서로 주고받고요.

 

승국: 엔지니어 세상에선 '표준화'가 되게 중요합니다. '스탠다드(standard)'에 맞춰서 일하는 것. 그래야 비효율을 줄일 수 있거든요. 저는 개인적으로 엔지니어분들이 퍼블리에서 커뮤니케이션 툴을 가장 효율적으로 사용하는 분들 아닐까 싶어요.

 

신영: 근데 이 표준화 작업을 언제 하느냐도 중요해요. 새로운 업무를 시작할 때마다 '스탠다드가 없으니 정하고 나서 진행합시다' 하면 거기서부터 늦어지는 거거든요. 그래서 저희는 작업할 땐 우선 작업에 집중하고, 추후에 논의 시간을 따로 정해둬요. 엔지니어링 챕터 회의에서 표준화를 한다든지, 부채처리 기간을 정해놓고 그때 몰아서 쌓여 있던 기술부채를 처리한다든지.

 

'부채 처리 기간'을 따로 갖는다는 게 어떤 의미인가요?

승국: 엔지니어 조직은 크게 세 종류로 나눠진다고 생각해요.

  • 첫째, 기술 부채가 생기는지도 모르고 당장의 결과물을 만드는 데 급급한 조직. 이러면 나중에 들어온 사람들만 고생해요. 그렇다고 알아주는 사람도 없죠. 부채란 게 있는지도 모르니.
  • 둘째, 기술 부채가 생기는 걸 인지하지만, 나중에 처리하자고 미뤄두기만 하고 제대로 관리하지 않는 조직. 마찬가지로 나중에 들어온 사람들이 고생해요. 점점 더 생산성이 떨어지지만 딱히 별다른 방법이 없죠.
  • 셋째, 기술 부채를 만들지만, 꾸준히 이를 개선해나가는 조직. 부채를 그때그때 처리하기 때문에 제품이 복잡해져도 생산성이 일정 수준 이하로 떨어지지 않아요.

우리가 추구하는 건 세 번째예요. 아키텍처에 투자하는 것과 비슷한 맥락이라고 보시면 돼요. 부채 처리 기간을 가지면 높은 생산성을 유지할 수 있습니다. 제품 안정성도 높아지고요.

 

신영: 분기에 한 번 정도는 2~3주씩 부채 처리 기간을 꼭 가져요. 부채 처리 기간을 따로 뒀을 때 좋은 점은, 스프린트할 때 작업에 집중할 수 있다는 거예요. 아무리 우리가 아키텍처를 중요하게 생각한다고 해도 항상 100% 완벽한 아키텍처를 만드는 건 불가능하거든요. 애초에 우리가 아키텍처에 투자하는 이유도 '아키텍처의 완벽함' 자체가 중요해서가 아니라, 미래의 생산성을 위해서고요.

 

부채 처리 기간을 두면, 자잘한 기술 부채가 생겨도 '이건 나중에 처리하면 된다'라는 마인드를 갖고 제품 개선에 집중할 수 있어요. 제품 변화로 인한 기술 부채를 두려워하지 않는 거죠. 그래야 변화를 줘서 내놓고, 소비자 반응 보고 다시 고치고, 이 이터레이션을 빨리 가져갈 수 있어요.

 

일하는 방식이 고도화되어 있는 만큼, 경력이 많지 않은 엔지니어는 적응하는 데 어려움도 있을 것 같아요.

승국: 사람마다 다른 것 같아요. 내가 해야 하는 것만 딱 정확하게 구현하는 것에 만족하는, 그런 분도 있어요. 그럼 기능조직을 선호하시겠죠. 목적조직에서는 신경써야 할 게 많지만 그만큼 시야가 넓어진다는 장점이 있을 테고요.

 

신영: 이전 조직에서 일할 때보다 커버해야 하는 게 많다 보니 초반엔 어려워하기도 해요. 다른 엔지니어 동료들처럼 모든 걸 신경쓰려다 보니 정신이 없는 거죠. 그럴 땐 매니저가 범위를 좁혀줘야 해요. 지금 꼭 안 봐도 되는 것, 다른 엔지니어에게 맡겨도 되는 것이 뭔지 짚어주는 거죠. 업무 볼륨을 좀 줄여줄 수도 있고요.

 

사실 신입 땐 자기가 뭘 잘하는지도 모르는 경우가 많아요. 나는 백엔드가 맞다고 생각했는데 막상 해보면 프론트가 더 맞을 수도 있고. 그래서 이것저것 경험해보는 것 자체가 본인 커리어에 도움이 돼요. 어떤 게 나한테 맞는지 알 수 있으니까.

 

승국: 경험상, 경력이 있어도 오히려 더 헤맬 수 있어요. 자기가 오랫동안 한 프로덕트를 맡아왔던 분들은 '내가 이 제품 전체를 다 알아야 한다'라고 생각하는 경향이 있는데, 페이스북의 전체 코드를 완전히 알고 있는 사람이 있을까요? 없어요. 

 

'나는 이 제품에 대해 잘 모른다'라는 전제하에 제품을 바라봐야 덜 헤매요. 당장 필요한 것부터, 더 중요한 것부터 이해하면서 조금씩 깊이 들어가야죠. 방금 신영이 말한 것처럼, 그 가이드를 주는 건 매니저의 몫이에요.

신입 엔지니어들이 업무에 집중할 수 있도록

온보딩을 통과한 엔지니어분들은 신영님의 조언이 큰 도움이 됐다는 얘기를 많이 하시던데요.

신영: 경력이 짧은 분일수록 자신감이 부족해요. 일이 주어졌을 때 어떻게 해야 할지 잘 모르니까요. 그럴 땐 '여기서는 팀원들이 다 서포트해줄 수 있다, 걱정 말고 해봐라'는 얘기를 주로 해요. 불안해하면 다독여주고.

 

그리고 주니어들은 자신에게 뭐가 부족한지, 뭘 공부해야 할지 모르는 경우가 많아서, 학습 방향에 대한 가이드를 드리면 도움이 됐다고 하세요. 일을 하다 보면 요령은 생기는데, 기본기를 탄탄히 하려면 학습과 병행하는 게 중요하거든요. 그래서 기본기 공부하는 시간을 보장해드리려고 해요.

 

퍼블리의 조직문화에서 중요한 것 중 하나가 1:1 미팅인데요. 엔지니어분들과 1:1 미팅은 보통 어떻게 하세요?

신영: 제가 이것저것 많이 물어요. 회사에 잘 적응하고 있는지, 요즘 힘든 건 없는지. 제가 회사나 인생에 대한 얘기를 먼저 많이 늘어놓기도 하고요. 제가 먼저 편한 얘기를 많이 해야, 상대방도 편하게 얘기를 꺼내시더라고요.

 

엔지니어로서의 고민도 많이 물어봐요. 지금 하는 일이 본인 성장에 도움이 되는 것 같으냐, 해보고 싶은 거나 배우고 싶은 거 있느냐. A에 대해 배우고 싶다고 하시면 제가 아는 책이나 자료를 추천해주고 1~2주 후에 같이 얘기해보자고 하거나, 아예 학습 플랜을 짜보라고 해요. 제가 잘 모르는 분야면 같이 찾아보고 디벨롭시켜서 다음 1:1 미팅 때 논의하기도 하고요.

 

1:1 미팅도 그렇고, 매니징 시스템이 견고하게 짜여 있다는 게 퍼블리의 특징인 것 같아요. 앞으로의 성장 방향에 대해 가이드를 받을 수 있다는 거.

 

퍼블리에 입사한 엔지니어들이 일하면서 가장 만족하는 포인트는 어떤 건가요?

신영: 제일 좋아하는 건 일에 몰입할 수 있는 환경? 아까 얘기한 비동기 커뮤니케이션 덕분에 가능한 거죠. 엔지니어는 얼마나 방해 안 받고 몰입할 수 있느냐가 중요하니까요. 겉으로 보기엔 잘 티가 안 나지만, 머릿속에서 막 생각하고 있는데 옆에서 툭 찌르면 다 날아가버려요. 엔지니어 입장에선 짜증나는 상황인데, 이런 상황이 안 생긴다는 거에 가장 만족하는 것 같아요.

 

그리고 일에 몰입할 수 있는 또 다른 이유는 '테크 리드'의 존재인 것 같아요. 처리해야 할 일들은 하루에도 몇 개씩 막 쏟아지는데, 엔지니어들이 거기에 신경쓰지 않을 수 있도록 급한 일들은 테크 리드가 다 막아줘요. 그래서 테크 리드는 집중해야 하는 일 대신 짧게 치고 갈 수 있는 일, 급하게 들어오는 일을 해요. 다른 직무 팀원들과의 대화 창구도 테크 리드가 담당하고요.

 

승국: PM이 '미니 CEO'라면, 테크 리드는 '미니 CTO'에 가까워요. 엔지니어들이 리드 없이 각자 PM과 커뮤니케이션하기에는 한계가 있거든요. 기술적인 부분에 대해서는 어떤 얘기든 테크 리드와 얘기하는 거죠. 테크 리드는 딱 보고 이게 백엔드 이슈인지, 프론트 이슈인지 판단해야 되고요. 기술 역량도 어느 수준 이상이 되어야겠지만 테크 리드에게 가장 중요한 건 커뮤니케이션 역량이에요.

 

퍼블리의 테크 리드는 미니 CTO 역할과 함께, 엔지니어들의 매니저도 맡고 있습니다. 개인적으로 '매니저 역량을 가진 엔지니어'는 앞으로 점점 더 밸류가 높아질 거라고 생각하는데요. 이 부분에 대해서는 퍼블리 입사 후 매니저 커리어를 쌓고 있는 재용님과 좀 더 얘기해보죠.

다음 아티클에서는 퍼블리에서 테크 리드(Tech Lead)로 일하고 있는 정재용 님이 등장해 '엔지니어가 왜 매니저 커리어를 고민해야 하는지'에 대해 들려드립니다.

 

🚀 퍼블리 합류하기: https://bit.ly/30Acrt3