본문 바로가기

생각

오늘도 기획자한테 안 된다고 말했다.

 

 
 
웹 구독 시스템, 주문, 배송, 상품까지 단기간에 많은 프로젝트를 달려왔습니다. 9개월 남짓한 시간동안 다음 문장이 현실되었습니다.

 
| 상품에 대한 주문이 발생하면 구독이 이루어지고 실물 상품에 대한 배송이 예약될 수 있다.

이 문장에 관여하는 많은 데이터들이 있습니다. 당장 상품을 주문하고 결제한 유저들이 그 데이터에 관심있겠지만, 개발자도 해당 데이터를 주시합니다. 그리고 또 관심가질 사람들있는데 운영 실무자들이 그 대상입니다. 개발자를 포함한 운영 실무자들이 상품관리, 회원관리, 주문.. 배송 등등을 관리할 수 있도록 서비스 플랫폼 어드민을 만드는 것이 기나긴 프로젝트의 마지막 테스크였습니다. 특히 어드민은 지금 생각해도 아쉬움이 많습니다. 그 과정을 정리해보려고 합니다. 
 

 
 
대략적인 어드민 사이드 메뉴입니다. 이 그림에서 사실과 다르게 구현된 탭이 있습니다. 바로 ‘통합 주문 관리‘ 입니다. 결과적으로 우리 팀은 통합을 실현하지 못했습니다. 요구사항은 하나의 주문에 엮인 유저, 상품, 배송 정보를 한눈에 파악하고 조건별 검색이 가능한 페이지를 만드는 것이었습니다. 해당 요구사항을 기술적으로만 압축하면 materialized view 를 구현하라 입니다. materialized view 는 쿼리 결과를 실제로 DB 내에 따로 저장하는 객체를 말하는데 이 방식을 차용하여 직접 materialized view 를 구현해야했습니다. 

예를 들어 고객과 제품 데이터를 위한 두 개의 기본 테이블이 있는 리테일 테이블이 있다고하면, 고객 테이블에는 고객 이름 및 연락처 세부 정보와 같은 정보가 포함되고 제품 테이블에는 제품 세부 정보 및 비용에 대한 정보가 포함됩니다. 고객 테이블에는 개별 고객이 구매하는 품목의 제품 ID만 저장됩니다. 특정 고객이 구매한 품목의 제품 세부 정보를 얻으려면 두 테이블을 상호 참조해야 합니다. 이렇게 만드는 대신에 고객 이름 및 관련 제품 세부 정보를 단일 테이블에 저장하는 구체화된 뷰를 생성할 수 있습니다. 

materialized view를 만들 수 있는 리소스가 준비되어야합니다. View 용 테이블이 존재해야하며, 모든 데이터가 한 곳에 통합될 수 있도록 리소싱(re-sourcing)되는 플로우가 존재해야합니다. ‘고객이 상품을 주문했다.’ 에서의 고객, 상품,주문 데이터가 각자 적재되는 공간과 통합 데이터가 적재되는 물리적인 공간은 분리되어있습니다. 당연하겠지만 분리된 공간에 따로 적재시키기위한 구현도 선행되어야합니다. 이 모든 과정엔 절대적으로 시간이 필요합니다. 핑계 아닌 말로, 우리는 시간이 부족했습니다. 

주어진 개발 기간은 2주였습니다. 리소스는 백엔드 개발자 3명이었습니다. 그중에 한 명은 프론트 개발에 집중해야했습니다. 목표 시간 내에 배포할 수 있으려면 Feature Minimization 과정이 필요했습니다. 그래서 저희는 오늘도 기획자한테 안 된다고 말했다.....
 

오늘도 개발자가 안 된다고 말했다 | 김중철 - 교보문고

오늘도 개발자가 안 된다고 말했다 | 개발하기 싫어서 안 된다고 말하는 게 아니다 개발 언어를 잘 몰라도 협업을 잘할 수 있다많은 IT 종사자들이 안 된다고 말하는 개발자로 인해 협업에 어려

product.kyobobook.co.kr

 
 

[기획자한테 안 된다고 한 것들]
1. 통합 주문 관리 페이지에서 paging 되어 노출되는 데이터는 주문만 가능합니다.. 구독 또는 배송 데이터를 파악하려면 상세로 들어가면 보실 수 있긴합니다..
2. 통합 주문 관리 페이지에서 주문을 통해 구입한 구독권 상태역시.. 상세로 들어가면 보실 수 있습니다..아니면 엑셀 다운로드를 통해 한눈에 확인해보세요..
3. 엑셀 다운로드는 한번에 많은 양이 불가능합니다.. 다운이 안되신다면 조회 데이터량을 줄여보세요
4. 주문의 상태와 구독권의 상태는 다릅니다.. 각자 만의 상태가 있습니다. 통합 주문 관리 페이지에서 주문의 상태에 구독만료를 노출하는 건 도메인적으로 맞지 않습니다..글쎄요 지금 통합이 안된다니까요...😭
5. 배송 교환/반품 기능은 시간 안에 불가능합니다.. 택배사와 API 협의되는 데에 2주를 다 써야할 수도 있습니다..
7. 메모 알림기능이요..? 일단 배포하고 운영 개선으로 어떻게 안될까요..
 

 
 
 
이 과정을 통해 완성된 통합 주문 관리 페이지입니다. 통합이라고 하기엔 뭔가 단촐해보이긴합니다. 원래 기획대로 완성본이 나왔으려면, 뭐가 필요했을까 생각해보았습니다. 시간, 리소스, 개발 실력 등등 이 있었겠지만 이건 우리가 컨트롤 할 수 없는 영역이었습니다. 내가 어찌할 수 있는 영역에서 난 그 이상 뭘 더 할 수 있었을까. 고민하는 시간이 이후에도 꽤 길었습니다. 

첫 어드민 기획 리뷰 때로 돌아가보았습니다. 그 당시에는 구현을 담당하기로 했던 분이 계셨고, 주어질 기간이 확정되지 않은 상태였습니다. 기획 리뷰 미팅에 저도 참석하였지만, 제가 개발할 게 아니라는 생각에 꼼꼼히 체크하지못했고 좀 이상하다 싶은 부분도 제대로 된 질문이나 피드백을 드리지 못했습니다. 

그리고 시간이 지나, 어쩌다보니 어드민 개발을 제가 담당하게 되었습니다. 개발을 하면서 그제서야 이거 안된다, 저거 안된다 시전을 하면서 느꼈던 건 기획 리뷰의 중요성이었습니다. 그때 가능한 부분과 불가능한 부분 또는 개발적으로 핏이 안나오는 부분과 이유에 대해서 더 명확히 짚고 넘어가야했습니다. 한편으로는 00님이 하시면 당연히 할 수 있겠지 같은 생각을 하기도했던 것 같습니다. 

우리 팀은 PO 와 개발자가 함께 속한 목적 조직입니다. PO와 개발자간의 의사소통이 더 자주 일어날 수 있어서 서로 간의 합을 맞추는 게 중요하다는 생각이 들었습니다. 헐겁게 구색을 갖춰입은 어드민 배포가 끝난 뒤, PO 인터뷰를 진행하게 된 이유입니다. 
 

인터뷰이의 인권보호(?) 를 위해 모든 내용을 공개할 수 없지만, 두 분의 PO 모두 한 가지 질문에 동일하게 답해주셨습니다. 

[Q.15 이런 개발자랑 일하고 싶다]
* 설계적으로 유연함은 떨어지지만 아웃풋이 잦은 개발자
* 꼼꼼하게 엣지  & 배드 케이스를 대신 파악해주는 개발자
* 된다 안된다 확실히 말해주는 개발자
* 공유 잘하는 개발자 
* 일정약속 잘 지키는 개발자 ✅ ✅
* 개발 잘하는 슈퍼개발자 


"딜리버리를 잘해야지. 제시간에 아웃풋이 제일 중요해". 피쳐 아웃을 하더라도 정해진 일정에 맞춰야한다는 목표는 PO 파트던, 개발 파트던 동일했던 것 같습니다. 반대로 개발파트 분들은 어떤 PO랑 일하고 싶을까요? 어떤 팀장님과 일하고 싶을까요? 저희 팀 모두에게도 물어보았습니다. 

[Q.15 이런 개발자랑 일하고 싶다 혹은 이런 개발자가 되고 싶다]
* 설계적으로 유연함은 떨어지지만 아웃풋이 잦은 개발자
* 꼼꼼하게 엣지  & 배드 케이스를 대신 파악해주는 개발자
* 된다 안된다 확실히 말해주는 개발자 ✅
* 공유 잘하는 개발자 
* 일정약속 잘 지키는 개발자 ✅ ✅ ✅
* 개발 잘하는 슈퍼개발자 ✅ ✅

[Q.17 이런 PO 와 일하고 싶다 혹은 이런 PO가 되고 싶다]
* 다양한 도메인 경험이 있는 동료 
* 오너십 가득한 동료 ✅ ✅ ✅ ✅
* 내가 챙기지 못한 부분을 미리 캐치해서 준비해주는 동료
* 커뮤니케이션 능력이 떨어지지만 데이터를 잘 다루는 동료
* 데이터를 잘 다루지 못하지만 커뮤니케이션이 능력이 남다른 동료 ✅ ✅

[Q.16 이런 팀장이랑 일하고 싶다 혹은 이런 팀장이 되고 싶다]
* 야근 안시키는 팀장
* 야근 안하는 팀장
* 명확한 업무와 피드백 그리고 그 이유를 설명해주는 팀장 ✅ ✅ ✅ ✅ ✅
* 현재 리소스에서 할 수 있는 만큼의 업무만 커트해주는 팀장
* 칭찬 많이 해주는 팀장
* 시간 약속 잘 지키는 팀장



팀 전체 인터뷰는 다함께 진행했기 때문에 질문 하나씩 자세한 이야기를 다 들을 수는 없었습니다. 다만 이 동료는 이런 점을 내게 바랄 수 있겠구나.. 하며 혼자 생각할 수 있는 시간을 가질 수 있었습니다. 원래의 계획보다 헐거운 채로 배포된 어드민이지만, 제게 남는 것들을 정리하고 싶었습니다. 그 목록은 다음과 같았습니다. 
 
 

 
 
유독 개발자에게 '성장'이라는 키워드가 뒤따라오는 것 같습니다. 제가 성장했다라고 느낄 땐, 이전에는 두렵거나 커보이기만 했던 대상들이 더 이상 두렵지않을 때인 것 같습니다. 어릴 때 다니던 초등학교를 지금 다시 가보면 작아보이는 것 처럼요. 그런 의미에서 저는 무서운 것들이 적어졌으면 좋겠습니다. 그리고 이건 전적으로 제게 달려있는 일인 것 같습니다. 요즘 모든 게 마음 먹기에 달려있는 것 같다는 생각을 자주 합니다. 내가 성장할 수 있는 환경이냐 아니냐보다 내가 성장하려하는지 그렇지 않은지에 더 집중해보려고 합니다. 어려운 시장 속에서 잡념없이 일하고 싶은 마음에 더욱 그런 것 같습 니다. 
 
 
질문의 목록을 공개하는 것으로 이만 마치겠습니다. 긴 글 읽어주셔서 감사합니다.