brunch

You can make anything
by writing

C.S.Lewis

by 여름의 자두 Sep 22. 2023

병아리 PM의 종료보고

아쉬움도 추억 속으로

사진 출처 : unsplash


6개월 동안 진행되었던 프로젝트가 종료되었다. 이전에 업로드했던 ‘3개월 차 병아리 PM의 중간보고’에서 짧게 후기를 남기기도 했었다. 그 이후 3개월이 더 지났고 프로젝트는 마무리되었다. 그동안의 에피소드들을 통해 느낀 점과 개선해야 할 점들을 적어보려고 한다.


중간보고 이후 프로젝트 종료까지 정말 정신없이 흘러갔다. 초반과는 달리 잦은 야근과 답이 없던 클라이언트들을 상대했던 기억뿐이다. 프로젝트 시작 전부터 클라이언트는 늘 강조했다. ‘기존 시스템과 동일하게 만들고 프로젝트 수행계획서에 적힌 개선사항만 지켜주면 된다.’ 이게 요구 사항이었다.


남들 다하는 프로젝트 초반에 미친 듯이 진행하는 요구사항 정의도 대충 넘어가 버리고 정책을 명확히 해줘야 하는 부분에서는 ‘을’이 알아서 하라는 식이었다. 가장 큰 문제는 고객은 이 프로젝트 아니 이 서비스에 관심이 전혀 없었다. 테스트계 서버에 시스템을 올렸음에도 불구하고 오픈 직전까지 테스트를 하지 않았다. 정말 너무하다 싶을 정도로 무관심했다. 이럴 거면 왜 이 프로젝트를 진행한다고 제안서를 올린 것인지… 


나를 가장 힘들게 했었던 것은 기획자가 중간에 잘리는 사태가 벌어졌다는 것. 클라이언트가 내 핑계를 대며 기획자를 자른 것이나 다름이 없는데 이 사람이 잘리면서 PM 업무와 기획 업무를 같이 하게 되었다. 멀티가 안 되는 나에게는 최악의 상황. 프로젝트가 끝나는 날까지 고통받았던 부분이 기획자의 빈자리였다.


진짜 문제는 정식 오픈 하루 전날 터져버렸다. 그때까지 통합테스트를 끝내지 않았던 클라이언트, 우리는 당장 다음날 오픈 때문에 조마조마한 상황이었다. 테스트를 끝내야 하는 마당에 아직도 소식이 없는 클라이언트를 보고 있자니 속이 터졌다. 설마 오픈일자도 모르는 건 아니겠지? 하는 생각이 불현듯 스쳐 지나가게 되고, 설마가 사람 잡는다고 진짜 오픈일자도 모르고 있었다. 당장 다음날이 오픈이라고 하니 그제야 발등에 불이 떨어진 걸 안 클라이언트는 돌연 시스템 오픈일자를 잠정 연기 해버렸다. 그것도 하루전날에… 어처구니없는 상황에 연기 사유를 들어보니


‘자사 보안팀에서 해당 사항을 시스템에 필수 반영해야 한다고 요청했다. 그러므로 오픈일자를 연기한다.’


공식적인 사유는 이러하였으나, 진짜 사유는 이 프로젝트 담당자 이면서도 관심조차 없던 클라이언트는 뒤늦게나마 숟가락을 얹기 위해 보안팀과 협의하여 사유를 만들어 낸 것이다. 힘이 빠졌지만 그래도 클라이언트가 필수로 반영해야 하는 요구사항을 위해 우리는 시스템 오픈을 한 주 미루게 되었다. 


오픈을 연기하면서 생긴 또 다른 문제는 고객이 요청한 오픈일자가 계약서에 명시된 프로젝트 종료일이었다. 한마디로 오픈하는 날 오픈 시키고 바로 프로젝트 철수를 해야 하는 상황. 뒷수습은 시스템 운영팀이 해야 하는 것이다. 뒷감당을 어떻게 하려고 오픈을 미룬 건지… 급하게 결정된 사항은


‘회사와 협의 완료되었다. 오픈 후 바로 철수가 아닌 한 주 더 무상 지원하는 것.’


어쩔 수 없이 따라야 하는 상황. 그동안 우리는 보완해야 할 부분들은 한 번 더 체크할 수 있었고 시스템 오픈 준비를 완료하였다.


D-day. 오전부터 바쁘게 오픈 준비를 했다. 오후 5시 오픈을 진행하였고 순조로웠다. 그런데 예상치 못한 곳에서 문제가 발생했다. 카카오 로그인에 문제가 생긴 것이다. 아무리 해도 로그인이 안되어서 원인 파악에 들어갔다. 원인은… 고객사 내부에서 카카오 관리 소홀에 의한 문제였다. 정말 큰 이슈였기에 고객사 임원에게 보고가 올라갔었다. 대처 방법이 나올 때까지 오픈 후 카카오 로그인 버튼은 숨김 처리 되었다.


오픈 후 무상지원 했던 그 한 주는 정말 지옥이나 다름없었다. 테스트계에서 보이지 않았던 오류들이 터져 나왔다. 원인을 확인을 해보니 엉망이나 다름없었던 이전 시스템에 쌓여있던 데이터 문제다. 당시 개발자들이 무슨 생각으로 테이블을 설계한 건지 이런 데이터를 가지고 시스템이 정상적으로 운영이 되었다는 게 의문이었다. 클라이언트는 프로젝트 진행 때와는 달리 하루에 몇 번씩이나 프로젝트 룸에 찾아왔고 전화와 메신저를 통해 왜 오류가 난 거냐며 따져 묻기 시작했다. 결국 우리는 필수로 반영해야 하는 요건들을 적용하지 못하고 오류 수정을 하느라 한 주를 다 보내게 되었다. 물론 매일 야근을 했고 결국 중반쯤에는 수액을 맞아야 버티는 상황까지 오게 되었다.


모든 것을 정리하고 나가야 하는 마지막 날. 아직 처리되지 않은 몇몇 결함들은 어쩔 수 없이 운영팀에 넘겨줘 야한 상황이 되었다. 우리는 운영팀에 현재까지 진행 상황을 공유하였고 수정된 내용을 운영에 반영 후 철수를 하려고 했는데, 클라이언트가 우리를 막아섰다. 결함이 계속 나오는데 이걸 운영팀에 넘기고 간다는 건 말이 안 된다는 것. 그리고는 회사 사업관리자에게 연락을 하였고 결국엔 백엔드 담당자만 남고 철수하는 것으로 결정이 났다. 철수하는 날에도 우리는 늦게까지 야근을 해야만 했다. 


이전부터 요구사항을 명확 정의하고 기존 시스템에 대한 분석이 필요하다고 말했을 때 기존 운영 시스템과 동일하게만 개발하면 된다며 요구사항 정의의 필요성조차 못 느끼던 클라이언트. 오픈하고 나서 내가 언제 그랬냐며 발 빼던 클라이언트… 정말 다시는 겪고 싶지 않은 사람들이었다. 얼마나 프로젝트에 관심이 없었는지 이전에 이슈가 있어서 다른 방안으로 대체되었던 기능도 프로젝트 철수 후 휴가를 보내고 있는 나에게 연락하여 물어보던 사람들. 다시는 같이 일하고 싶지 않은 클라이언트들이었다. 


이번 프로젝트를 진행하고 나서의 후유증은 컸다. 몇 주째 돌아오지 않는 식욕과 스트레스로 인해 생긴 불면증. 휴가를 보냈음에도 돌아오지 않고 있다.


이번 프로젝트가 최악이라고 할 순 없다. 이전에 더 최악인 프로젝트도 있었기 때문이다. PM을 하는 동안 느낀 점을 적어보았다.


1. 기획자는 생각보다 더 꼼꼼해야 한다.

기획자의 생명은 꼼꼼함이라고 생각하는 나에게 이 부분은 정말 많은 깨달음을 주었다. 실수를 최소화하기 위해 수시로 문서를 확인해도 꼭 하나씩은 튀어나온다… 그리고 기능마다 발생되는 수많은 케이스에 대해서 초반부터 다 캐치하여 화면설계서에 반영하면 참 좋겠지만 대부분은 개발 중 케이스가 튀어나온다. 이런 문제를 최소화하려면 꼼꼼하게 일해야 한다.


2. 할 말을 해야 할 땐 꼭 하자

초보 PM인 나를 쥐락펴락 했던 클라이언트. 나는 을이니까 최대한 맞춰야 하는 게 맞지만, 상황에 따라 아닌 건 아니라고 확실하게 말해줘야 팀원들도 덜 힘들고 나도 덜 힘들다. 불합리하다고 생각된다면 주저 없이 말하자.


3. 체력은 국력이다

이제는 살기 위해서 운동해야 한다. 프로젝트 철수 3주 전부터 바닥나버린 체력으로 버티고 나서 느낀 건 운동의 중요성이다.


4. 팀원들과 최대한 쿵작이 잘 맞는 PM이 되자

현실과는 먼 이야기지만 팀원들과의 호흡이 정말 중요하다. 조금만 틀어지면 돌이킬 수 없다는 것을 알기에 프로젝트 진행 내내 최대한 팀원들에게 맞춰주려 노력했었다. 문제는 너무 맞혀져서 난감했던 상황도 많았다. 적당히 잘 맞춰 주는 것이 필요하다.


5. 세상에 좋은 클라이언트는 없다

말 그대로다. 친절한 클라이언트는 있어도 좋은 클라이언트는 찾기 매우 힘들다. 아니 없다.


쓰다 보니 내용이 길어졌다. 얼떨결에 맡게 된 PM은 처음엔 걱정 두 번째도 걱정 마지막은 아쉬움이었다. 처음이라고 할지라도 더 좋은 모습을 보일 수 있었을 텐데… 아쉬움이 많이 남지만 언젠가 맡게 될 PM은 지금보다 더 업그레이드된 내가 잘하고 있을 것이라고 믿는다.

작가의 이전글 여름휴가? 그게 뭔가요?

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari