현실 타협은 후퇴다! 안 되는 일을 되게 만드는 PM이란?

Aug.24.2023 이송인

PM

들어가며,

안녕하세요. 셀러시스템팀에서 팀원 분들의 사랑을 듬뿍 받아 무럭무럭 자라고 있는 막내 PM(Product Manager) 이송인이라고 해요! >.O

셀러시스템팀은 입점 심사를 위해 필요한 사업자 정보부터 가게 운영에 필요한 다양한 정보를 관리하고, 빠르게 변화하는 시장의 요구에 맞춰 정보를 효율적으로 관리하는 역할을 하고 있어요.

프로젝트를 진행하면서 예상치 못한 문제상황이 생겼을 때, 지혜롭게 이슈를 해결해 나간 경험과 배운 점을 공유드리고자 이 글을 작성하게 되었어요.

PM으로 업무하면서, 시시각각 변화하는 상황 속에서 유연하게 대처하는 방법에 대한 어려움이 있는 분들께 저의 경험이 도움이 되었으면 좋겠습니다.

 

배달의민족의 프로덕트 체계와 특징

배달의민족은 많은 사용자가 서비스를 이용하다 보니, 안정적인 프로덕트를 제공하는 역할이 중요한데요.

프로덕트의 규모가 커지면서 문제 발생에 대한 영향도를 낮추고 도메인 별로 독립적으로 관리하기 위해, 배달의민족 프로덕트는 4년 전 프로덕트 체계를 MSA(Microservices Architecture)로 완전히 전환했어요.

MSA구조로 관리되고 있는 배달의민족 서비스

그때부터 배달의민족의 플랫폼을 담당하는 프로덕트 조직에서는 마이크로서비스 단위의 세부 도메인을 담당하는 목적 조직으로 구성되어 업무를 하고 있어요.

각 시스템과 정책을 도메인 별로 독립적으로 관리하고 있어, 기능이나 정책이 일부 변경 되더라도 관련있는 여러 부서에서 함께 작업을 해야 합니다. 이로 인해 대부분의 프로젝트의 경우, 해당 프로젝트로 인해 변경되는 도메인과 연관된 여러 부서가 함께 일정을 맞춰서 진행하고 있어요.

이러한 MSA구조에서는 각 마이크로서비스를 담당하는 조직이 세분화되어 있기 때문에, 과제 진행 시에 유독 영향범위를 파악하는 일에 시간을 정말 많이 쓰는 편이에요.

각 팀에서 담당하는 도메인은 온전히 해당 팀에서 독자적으로 관리하고 있는데요. 그렇다보니 동일한 API를 사용하고 있어도 부서마다 해당 API를 사용하는 목적이 달라, 특정 데이터를 사용하는 영향 범위를 파악하기 위해서는 여러 부서에 일일이 검토 요청을 드려야 합니다. 그리고 본 작업을 위해 함께 대응이 필요한 부서를 취합받은 뒤에 일정을 맞추어 프로젝트를 수행하고 있어요. 

이렇게 하나의 프로젝트를 진행하기 위해 PM(Product Manager)은 과제 진행을 위해 영향 받는 부서를 파악해요.  프로젝트 매니저가 프로젝트에 투입되기도 하지만 과제의 규모, 내부 리소스 등 상황에 따라 프로덕트 매니저가 프로젝트 기간 동안 프로젝트 리더 또는 프로젝트 매니저 역할을 하기도 해요.

역할 의미
프로덕트 매니저 특정 프로덕트 담당하며 지속적으로 담당 프로덕트의 전략과 방향을 제시하고, 구체적인 실행방안을 수립하고, 자원을 활용해 실행함으로써 고객 가치를 창출하는 역할
프로젝트 매니저 프로젝트 시작 이전 단계부터 종료 후 회고까지 전체 프로세스를 수립하고 세부사항을 결정하는 역할
프로젝트 리더 프로젝트 수행 시 특정 도메인 및 분야의 업무와 절차 등의 관리업무를 담당하는 역할

하나의 사소한 기능 변경 요구사항이 생기더라도, 많은 유관부서와 함께 일정을 맞춰 작업을 진행해야 하는 경우가 많아요. 이때 유관부서마다 각자의 상황과 입장이 달라 과제의 스펙을 조율하거나 일정을 조율하는 데에 있어서도 늘 예상치 못한 이슈나 변경사항이 생기기 마련인데요. 

그래서 PM은 프로젝트매니저 역할을 하며, 늘 프로젝트 진행사항을 매의 눈으로 확인해가며 변경사항이 생겼을 때에 빠르게 영향받는 것들을 함께 조율하고 챙겨야 해요.

프로젝트 진행 시, PM의 역할

 

사장님의 가게 운영시간 설정 경험을 개선하기 위한 과제 진행

‘가게 운영시간 관리 개선 과제’는 사장님께서 배달의민족을 이용하시면서 겪는 불편함을 개선하기 위한 목적으로 진행하게 되었어요. 기존에는 사장님께서 가게의 운영시간을 설정하기 위해서는 그동안 아래 두 가지 방식 중 한 가지로 설정해야 했어요. 

  • 첫째, 월~일 모든 요일의 운영시간이 동일한 방식

  • 둘째, 월~금 평일의 운영시간이 동일한 방식

관련해서 사장님들이 불편함을 느끼는 문의 내용이 많았고, 현재 기능이 사장님의 가게 운영 방식을 반영하기에는 한계적이라는 점을 확인했어요. 

가게 운영시간에 대한 사장님 문의

위와 같이 현재 기능으로는, 가게 운영을 요일별로 다르게 운영하는 사장님의 운영 시간과 배달의민족에서 제공하는 설정 방식이 달라 상당히 불편한 경험을 겪어야 했어요.

가게 운영시간 설정에 대한 불편함을 공통적으로 해결하기 위한 목적으로 본 과제를 진행하게 되었어요.

사장님의 운영 방식에 맞게 배달의민족에서의 가게 운영시간을 설정하실 수 있게끔 요일별 운영시간 설정 방식을 도입하게 되었어요.

여기서 제가 속한 셀러시스템팀의 역할은, 사장님이 설정한 가게 운영 시간을 저장하고, 유관부서에서 조회하거나 수정할 수 있게끔 API를 제공하는 것이에요. 

그렇기 때문에 이 과제를 진행하기 위해, 셀러시스템팀에서 제공하는 API 중에 가게 운영시간이 포함된 API를 사용하는 모든 부서에 영향받는지 확인을 요청을 드리면서 함께 작업해야 할 부서를 찾았어요.

제공하는 API의 종류가 상당히 많고 사용처도 정말 많아서, 한 여름의 초파리처럼 찾아도 찾아도 또 나오곤 했답니다.(ㅠㅠ)

배민셀프서비스의 변경된 가게 운영시간 설정지면

사실 영향범위를 찾아낸 다음부터가 저에겐 가장 어려운 시간이었는데요.  바로, 각 팀에서는 동시다발적으로 여러 프로젝트를 진행하고 있다 보니 ‘작업 일정 맞추는 것’ 이었어요.

대체로 과제의 일정을 정하는 순서는, 각 팀에서 진행 가능할 일정을 취합 받아 대략 적인 일정을 논의한 뒤, 가장 적합한 요일과 시간으로 오픈 일정을 정하고 있어요. 

저 또한 함께 작업하는 모든 유관부서 담당자분들과 일정을 조율하여 오픈 일정을 정하며 열심히 오픈 준비를 하고 있었어요. 

그런데 어느 날, 함께 작업하는 세일즈서비스팀에서 우선순위가 높은 다른 과제로 인해 최초에 논의했던 일정을 맞추기 어렵다는 의견을 주셨어요.

세일즈서비스팀 담당 PM분께서 주신 메시지

 

문제 해결을 위한 끈질긴 시도

사실 이 이야기를 들었을 때, 제 머릿속은 새하얘진 기분이었어요.

세일즈서비스팀에서 중요한 과제를 진행하고 있어 일정이나 리소스가 부족하다는 점에 대해서는 십분 이해하고 있었지만, 이 프로젝트를 검토한 저의 입장에서는 하루라도 빨리 사장님의 경험을 개선해 드리고 싶었던 마음이 크다 보니, 이 상황에서 어떻게 해야 할지 막막했어요.

혹시 구체적으로 어떤 문제가 있었는지를 알면 함께 해결할 수 있는 방안을 모색해 볼 수 있지 않을까 싶은 마음에 저는 집념을 가지고 다음과 같이 시도해 보았어요.

첫 번째 시도, 세일즈서비스팀에서 처한 어려움이 구체적으로 어떤 점인지에 대해 질문을 드렸어요. 

이때 돌아온 답은, 이 프로젝트에 쓸 수 있는 시간과 인원은 제한적인 데에 비해 작업해야 하는 범위가 넓어 일정을 맞추기 어렵다는 의견이었어요.

해당 팀에서는 사장님의 입점을 위한 계약서, 내부 운영자의 가게 조회 지면 등 서로 얽혀 있는 여러 서비스를 담당하고 있어 이 과제를 위해 여러 지면을 동시에 처리해야 했고, 그렇기 때문에 작업에 투입되는 일정에 대한 부담을 느끼고 있는 점을 확인했어요. 

세일즈서비스팀의 작업 영역

두 번째 시도, 작업의 범위를 함께 조율해 볼 수 있는 방법은 없을지, 단계별로 나누어 제안을 드렸어요.

사장님이 직접 가게 운영시간을 요일별로 다르게 설정하시면 해당 정보를 조회할 수 있는 영역이 최우선으로 작업이 필요하다고 생각했어요.  또한, 가게 운영 정보는 고객 문의보다는, 사장님이 직접 설정하시는 경우가 더 많기 때문에 단계 별 작업 방안과 이번 일정의 작업 범위로 1단계를 진행해 보면 어떨지 제안 드렸어요. 

  • 1단계 : 요일별로 다르게 운영시간이 저장되는 정보를 조회하는 영역을 가장 먼저 대응한다. 
  • 2단계 : 사장님이 배달의민족 입점을 위해 신청하실 때 가게 운영시간을 입력하시기 때문에, 직접 요일별로 다르게 설정하실 수 있도록 한다. 
  • 3단계 : 내부 운영자가 고객 문의 등으로 인해 사장님의 가게 운영시간 정보를 수정할 때, 요일별로 다르게 설정할 수 있도록 한다. 

유관부서에 제안한 단계별 작업 범위

이때 돌아온 답은, 먼저 작업을 해야만 하는 주요 범위 자체가 가용할 수 있는 일정 대비 방대해서 조율이 어려울 것 같다는 의견이었어요. 또한 제가 해당 도메인의 구조를 잘 모르다 보니, 제가 생각한 것과 실제 작업에 필요한 범위가 다르다는 점을 알게 되었어요. 해당 팀에서 설명해 주셨던 상황을 스스로 고민해 보아도 어려움에 있어 납득이 되는 부분이었어요.

하지만, 일정이 더 늦어지게 되면 사장님의 불편함이 그만큼 길어질 수 있겠다는 마음에 조금만 더 방안을 찾아보기로 했어요.

세 번째 시도, 관련 담당자분들과 함께 미팅을 잡아 논의하는 시간을 가졌어요. 

세일즈서비스팀에서 주요 과제로 고생이 많으신 점 너무 잘 알고 있고, 애써주셔서 감사합니다.
이 와중에 이렇게 제안 드리는 점 너무 마음이 좋지 않지만, "사장님이 직접 가게 운영시간을 요일별로 수정하실 수 있도록 하는 점"에 최상위 목표를 두고, 이 목표를 함께 달성할 수 있는 방법은 없을지 논의해 보고 싶었습니다.

미팅을 시작할 때에 유관부서 담당자분들께 위와 같이 솔직하게 저의 의견을 말씀드렸어요.

계속해서, 다른 방법을 제안하는 것에 대해 혹시나 유관부서에서, 저희 팀이 공감을 못하거나 납득을 못하고 지속해서 요구하는 것으로 오해하지 않기를 바랐고, 우리가 모인 이유는 “함께 문제를 해결하기 위함”이라는 점을 공유하고 문제에 공감하고 동의한 상태에서 문제를 해결하고 싶어서 솔직하게 저의 입장과 마음을 전달드렸어요.

해당 팀에서 어려워하시는 점에 대해 구체적으로 의견을 여쭤보았고, 어려워하시는 포인트를 명확히 확인할 수 있었어요. 

알고보니 해당 팀에서 어려워하시는 점은 두 번째 시도에 제가 제안드린 방안 자체가 아니라, 개발적으로 API의 포맷이 달라진 점에 대한 대응 범위가 넓다는 점을 확인할 수 있었어요. 

드디어 본질적인 어려움을 파악했고, 함께 하는 부서에서 어려워한다면 우리가 해결해볼 수 있는 방안은 없을지 방법을 찾아낼 수 있었어요.

저희팀에서 API를 제공하다보니, 기존 포맷과 변경된 포맷을 모두 제공하는 방향으로 대응하기로 했고, 이렇게 어려워 하시는 점에 대한 부담을 낮춰드릴 수 있었어요. 

비로소 우리는 긴장이 풀려 다 같이 웃으며 회의를 마무리했어요. 

사실 여러 번 제안 드리면서도 방법이 없을까 걱정이 있었는데요.

포기하지 않고, 세 번의 끈질긴 시도를 통해 유관부서에서 가진 문제의 본질을 찾아낼 수 있었고 우리팀에서 해당 문제를 해결하는 데에 도움을 드릴 수 있었어요.

저희가 정말 끈질겨서 질려하시지 않을까 싶었는데… 세일즈서비스팀 담당자분들께서 불편해하지 않고, 우리의 의도를 이해하고 방안을 같이 고민해주셔서 정말 감사했고 감동이었답니다.

꼭 담당자분들께서 이 글을 보셨으면 좋겠네요 

이외에도 함께 작업을 진행한 각 부서 담당자분들께서 이 과제의 중요도와 시급성에 대해 공감해주시고, 함께 일정을 맞춰 진행하기 위해 빠르고 꼼꼼하게 작업에 대해 검토해주신 덕분에 크고 작은 이슈가 생길 때마다 함께 마음맞춰 무사히 오픈할 수 있었어요~!

 

이 일을 통해 배운 점

사실 프로젝트를 진행하다 보면 우선순위가 더 높은 과제가 생기게 되면서, 자연스레 기존에 진행 중이던 프로젝트가 중단되거나, 또는 제한된 리소스 내에 과제를 해결해야 하는 일이 빈번한데요. 

제한된 환경에서도 안정적으로 문제를 헤쳐나가기 위한 고민과 시도가 중요하다는 것을 몸소 깨달을 수 있었어요. 

이렇게 세 번의 시도를 하면서 ‘나의 범위가 아닌 타 부서의 역할을 함부로 침해하는 건 아닐지’ 망설여지는 순간들이 있었는데요.

저의 우려와 달리, 제가 가진 생각을 솔직하게 유관부서 담당자분들께 공유드리면서 함께 원활하게 논의할 수 있었어요.

무엇보다도 유관부서에서도 논의 과정이 즐거웠다고 해주셔서 저도 너무 행복한 시간이었어요.

계획된 프로젝트 진행 일정에 변수가 생겼을 때에, 주눅 든 마음에 아무 시도도 안 해보고 수긍 했다면 정말 후회할 뻔했지 뭐예요.

이렇게 시도해 본다면, 만일 방법이 없을지라도 최선을 다해 방안을 검토해보았기 때문에 후회없이 받아들일 수 있을거 같아요!

저는 앞으로도 “계획된 일정 안에 협업하기 힘든 경우가 발생하게 된다면” 이번에 배운 것을 기반으로 다음 내용을 실천해보려고 해요.

  • 유관부서에서 어려움을 겪는 점에 대해 구체적인 질문을 통해 상황을 파악한다.
  • 담당 작업자(개발자/디자이너) 분에게 문제 상황을 빠르게 공유한다.
  • 담당 작업자 분들과 우리팀에서 같이 해결해 볼 수 있는 일은 없을지도 모색 해본다.
  • 필요 시, 각팀 담당자 분들과 미팅을 잡아 함께 문제를 해결해 볼 수 있는 방안에 대해 논의한다.

여러분도 저처럼 안 된다는 말에 주눅 들어본 순간이 온다면, 함께 문제를 해결해 보는 용기를 가지시길 바랍니다!

닥쳐있는 다양한 난관을 그대로 받아들이지 말고 용기 내어 해결할 수 있는 방법을 고민하신다면, 보다 지혜롭게 문제를 해결하는 PM이 될 수 있을 거예요!