비사이드 참여기 6. 개발자와 협업
기획문서를 보며 개발자는 여러 질문을 한다. 이건 어떤 기능이에요? 여기서 이 버튼 누르면 어떻게 되나요? 이러이러한 상태일때 어떤 화면으로 보여져야 하나요? 서버 사정고려하면 기간 내에 힘들 것 같은데 다른 방법은 없을까요? blah blah... 개발자와 협업하며 몇 가지 느낀 점이 있다.
사람은 처음부터 완벽할 수 없다. 기획서에 누락된 내용을 개발자가 짚어준다고 해서 끝일 리 없다. 개발자가 미처 보지 못하는 부분들이 있다. 가령 디자인 폰트가 어색하거나 컴포넌트가 전반적으로 웹접근성을 위배하는 경우는 디자이너가 훨씬 잘 발견한다. 이렇게 놓치는 부분을 최소화하기 위해 모든 직군이 모인 자리에서 기획서 리뷰를 해야 한다고 생각한다. 그래야 커뮤니케이션 비용을 조금이라도 아낄 수 있으니깐. 시간이 곧 돈이다.
그러나 아무리 문서를 보완해도 QA때 누락된 부분이 발견될 수 있다. 히스토리 관리 차원에서 나는 문서 개정이력 관리를 소홀히 하지 않았지만 많은 기획자분들이 이러한 히스토리 관리에 힘들어한다고 들었다. 어차피 문서는 아무리 열심히 작성해도 완벽하지 않기 때문에 프로젝트가 끝나기 전 까지 매 순간 최선을 다해야 하지 않을까..
기획자나 PM은 팀이 나아갈 방향을 설정하고 이를 구성원에게 의미를 정확하게 전달해야 한다. 기획서가 누구나 같은 방향으로 이해되도록 명확하고 객관적으로 작성되지 않으면 기획 문서가 무한으로 수정되는 일이 일어날 수 있고, 각 팀원들이 같은 내용을 다르게 이해하므로 프로젝트 진행이 힘들어진다. 명확하게 문서를 작성하는 습관이 없었던 시절 요구사항 정의서나 스토리보드, 프로세스 같이 중요한 문서를 작성하면 무수한 수정 요청, 질의 폭탄이 날아들었다. 직군을 떠나서 독자마다 이해하는 내용이 달랐기 때문이다. 이 경험과 하루냥에서의 쌓은 역량을 양분 삼아 이후 기획서 작성 시 중학생도 의미를 파악하기 쉽도록 간결하고 절제해서 문서를 작성하려 노력한다. 특히나 개발자는 문서를 보고 개발 의도를 파해야 하는데 다음과 같은 표현이 이에 방해가 될 수 있다고 느꼈다.
미사여구
~등 처럼 확장적인 표현
간결하지 않고 길게 늘여쓴 문장
감정이 보이는 단어
좀처럼 보기 힘든 어려운 단어
핵심 내용이 잘 드러나지 않는 문장 구조
또한 "모든 개발자는 A에 대해 알고 있다" 라는 생각은 지양하며 기획서를 작성한다. 어쩌면 유혹처럼 느껴질 수 있지만 자신의 경험과 주관을 담는 실수를 하게 된다. 문서는 장황해지고 모든 개발자의 경험을 담지도 않을 뿐더러 몇몇 팀원이 나의 생각에 동화되어 대혼돈파티가 열릴 수 있기 때문에 오히려 프로젝트에 방해만 될 뿐이다.
MoSCow라는 유명한 방법이 있지만 굳이 RICE 방법을 선택한 이유는 개발자의 의견을 담을 수 있어서다. Confidence와 Effort 값은 기획자와 디자이너도 응답할 수 있지만 직접적인 구현은 전적으로 개발자가 한다. 개발자만큼 개발 공수와 기능 개발 성공 여부를 정확히 아는 팀원은 없으니 RICE 기법을 채택했고 어떤 업무부터 할 지 우선순위를 정할 수 있었다. 이렇게 하면 PM이 놓치기 쉬운 개발 속도나 기존 레거시를 개발자가 고려하여 의견을 반영할 수 있으니 일석이조인 셈이다.
프론트엔드, 백엔드에 대한 이해도가 없이 '언제까지 될 것 같아요?'라고만 한다면 개발자 입장에서 속이 터진다(저도 그랬던 것 같습니다 죄송합니다 개발자님들 ㅠㅠ). 개발중인 앱에 문제가 있으면 프론트에 말해야 할 지 서버에 말해야 할 지 판단을 못하면 무작정 물어보거나 개발 지식을 공부한 뒤 개발자에게 물어볼 수 있다. 그치만 그 과정에서 리소스 소모가 되기 마련이니 이러한 시간 비용을 줄이기 위해서라도 개발 관련 공부를 했어야 한다고 느꼈다.
무시당하지 않기 위해, 개발 관련 지식을 올리기 위해 주간 스크럼 때 개발 이슈가 나오면 '음~그렇군요~ ㅇㅋ 알겠습니다 다음으로 넘어가죠'라고 말하지 않고 '어떤 코드가 리팩토링이 필요해요?', '도커가 어떻게 설정되어 있다고요?', '현재 명언 추천 로직은 이런 문제가 발생할 수 있지 않을까요?' 와 같이 개발 관련 지식을 모르는 걸 부끄러워하지 말고 모든 것을 놓치지 말자는 마음가짐으로 질의했다. 우리 팀원 중 나 때문에 속이 터진 분도 계시겠지만 적어도 아는척 하며 방관하는 것 보다는 낫다고 생각하며 태도를 고수했다.
이러한 노력이 쌓인 결과 개발 프로세스에 대한 이해도가 높아졌다. 런칭 직전 서버에 문제가 발생한 적이 있는데 우리 팀의 서버에 어떤 문제가 있는지 서버 개발자님에게 계속 질의하며 상황을 완전히 이해했고 내가 이해한 내용을 바탕으로 개발자 친구에게 자문을 구해 솔루션을 우리 팀에 제안하기도 했다. 결론적으로 이슈는 해결되어 세상에 잘 나올 수 있었다 :)