개발자가 생각하는 좋은 PM, 일 잘하는 PM 이야기를 써보고 싶지만 아쉽게도 나는 작은 회사에서 일하고 있어 다양한 PM을 만나보지 못했다.
그래서 내가 만난 좋은 디자이너, 좋은 프론트 개발자를 이야기해보려 한다.
디자이너와 pm은 정말 긴밀하게 일한다. 제발 디자이너와 같은 공간에 있게 해달라고 부탁할 정도로 이 일을 왜 하게 됐는지, 디자이너가 디자인을 하면서 고민했던 부분, 디자이너적인 결정과 개발자의 스코프, 그리고 CX에 관한 이야기까지 정말 많은 이야기와 시간을 같이 보내는 사이이다. 디자이너도 디자이너 별로 강점과 스타일이 다 달랐다.
내가 만나 본 디자이너 중에서 제일 일을 잘한다고 느낀 디자이너의 특징은 다음과 같다.
첫째,
영역을 넘나 든다.
디자이너는 디자인으로 커뮤니케이션해야 한다고 말하는 사람이 있지만 디자이너도 PM의 요구사항, 개발자가 개발할 수 있도록 구현하거나 개발자의 언어를 PM보다는 더 깊숙하게 알고 있는 사람이라고 생각한다.
경험을 토대로 개발자가 개발하기 편하게 디자인을 해줘서 개발자의 스코프를 알아서 줄여주거나(이것만으로도 개발자와 PM의 커뮤니케이션을 확 줄여 개발자가 개발에 더 집중하게 해 준다) PM이 이해관계자들을 더 잘 설득하기 위해 직접 프로토타입을 그려주기도 한다.(디자이너가 프로토타입을 만들어주면 개발완료 된 건 줄 아는 사람도 있었다) 어쩌면 PM이 더 해야 하는 일을 디자이너가 영역을 넘나들며 도와줘서 목표에 더 빨리 다가가며 일할 수 있게 해 줬다.
둘째,
최고의 솔루션 메이커
PM이 고객의 문제를 끝까지 해결하는 사람이라면 디자이너는 그 문제를 어떻게 해결할 수 있을지 솔루션을 내고 그걸 실제 동작 할 수 있는 제품으로 예쁘게 표현해 주는 최고의 솔루션 메이커라고 생각한다. 디자이너는 다양한 리서치와 지식으로 세상에 없는 걸 표현해주기도 하고 사용자가 익숙한 UX를 디자인으로 만들어줘 제품이 목표를 달성할 수 있게 도와줬다. 그리고 실패를 하더라도 같이 고민했던 부분과 왜 실패했는지, 어떻게 다시 시도할지를 가장 빠르게 캐치해 주었다.
디자인이 완성되고 제품을 구현할 때 거의 PM과 프론트 개발자가 대화를 나눈다. 프론트 개발자는 디자이너가 그린 디자인을 이해해야 하고, PM이 문제라고 생각하는 부분과 스프린트 안에 릴리즈를 위해 어쩔 땐 총대를 메어서 쓴소리를 해준다.(이 기능이 정말 필요한지, 기간 내에 현실적으로 어디까지 만들 수 있는지 등)그리고 개발자의 입장에서 걱정되는 부분(개발 부채), PM이 못 챙긴 이해관계자에게 확인해야 하는 부분(코드로 작성되어 있는 비즈니스 rule)을 다시 한번 정리해 줘 이슈를 서로 주고받고 확인하기도 한다.
프론트 개발자도 정말 많은 스타일이 있다. 정말 로직을 잘 짜는 개발자(흔히들 개발을 잘한다고 했다), UX에 강점이 있는 개발자, 디자인 감각이 뛰어난 개발자 많지만 내가 만난 일 잘하는 개발자는 다음과 같은 특성이 있다.
첫째,
안 보이는 UX 책임지기
디자이너와 최대한 자세하게 디자인을 하려고 노력하지만 개발자는 더 세세한 부분을 다룰 때가 많다. 예를 들면 웹 프론트 개발자면 내비게이션 처리(뒤로 가기 버튼으로 뒤로 가기, PM이 정의 해준 내비게이션 스토리), 링크를 타고 들어왔을 때 사용자의 UX, 사파리/크롬의 브라우저 동작, PC, 모바일 웹 해상도에 따른 디자인 브레이크 포인트 등 정말 많은 결정들이 있다. 사실 이걸 PM에게 말로만 전달하고 정해달라고 한다면 바쁠 땐 어떻게 동작하는지 모르고 결정을 할 수도 있다고 생각한다.
하지만 내가 본 좋은 프론트 개발자는 자신의 생각을 일단 구현하고 고칠 각오를 하고 PM이 잘 결정할 수 있도록 도와줬다. 이 부분은 정말 겪어보지 않으면 결정의 품질과 결정의 속도 차이가 다르다. 정말 프론트 개발자의 도움을 많이 받았다.
둘째,
개발자의 언어로 커뮤니케이션해주기
PM이 개발자의 언어를 해석해 이해관계자들에게 대신 커뮤니케이션 하지만, 개발자의 언어로 커뮤니케이션이 필요할 때가 있다.
예를 들면 이런 것이다. 우리 회사에는 QA가 없다. 그래서 개발자들이 개발을 끝내면 PM이 처음부터 끝까지 만든 제품을 이리저리 써보며 테스트를 진행한다. 그렇게 발견된 문제들을 프론트 개발자에게 정리해서 줬었다. 처음에는 모두 프론트 개발자 부분이 잘못된 줄 알았는데 들여다보니 백엔드 쪽이 잘못되어 있는 부분도 있고 디자인이 잘못되어 있는 부분도 있었다. 내가 적은 이슈를 보고 개발자가 알아서 백엔드 부분은 백엔드의 언어로, 디자이너와 알아서 싱크를 알아서 맞춰주기도 했다. 코드 레벨로 이야기를 해주니까 PM이 문제가 있는 부분을 스토리로 말해주는 것보다 훨씬 빠르게 고칠 수 있었다.
그리고 릴리즈 준비를 할 때, CTO님과도 개발자의 언어로 PM 대신 커뮤니케이션 해줄 때도 있다. PM이 공유할 수 있는 부분은 제품적으로 변경되는 부분과 개발자에게서 주워들은 문제가 일어날 수 있는 부분(ex 이전 버전과 호환성)을 공유하면 프론트 개발자가 한번 더 개발자의 언어로 CTO님과 컨택스트를 맞춰줄 때 정말 이보다 든든할 수가 없다.
다음 글에서는 좋은 백엔드 개발자와 나의 리더 이야기를 해보겠다.