나는 KAKAO의 PM으로 2021년 1분기에 카카오톡 '멀티 프로필' 신규 프로덕트를 출시했다. 멀티 프로필 프로덕트는 이미 충분한 논의를 통해 요구사항이 정의되었고, 2021년의 가장 큰 프로덕트 릴리즈이므로 워터폴(Waterfall) 프로세스로 개발을 진행했다. 그런데 릴리즈 이후 문제가 발생했다.
조금 뜬금없지만 이와 같은 가정하에 오늘의 글을 작성해보려고 한다. 먼저 생소한 단어 "워터폴(waterfall)프로세스"가 무엇인지 살펴보면서 2가지의 제품개발 방법론을 알아보자.
제품개발 방법론1. 워터폴(Waterfall)
요구사항 수집과 분석 ▶ 설계 ▶ 테스팅 ▶ 최종결과물 전달 ▶ 유지보수
출처 = https://www.roberthalf.com/blog/salaries-and-skills/waterfall-methodology-101-the-pros-and-cons
제품 A를 스스로 정해서 고객 테스트 없이 팀 내 혹은 기업 내 이해관계자들끼리의 결정만으로 제품 개발 후 시장에 내놓는 전략이다. 처음부터 고객 문제를 해결하는 솔루션을 정의하고, 위에서부터 아래로 내려가는 탑-다운 방식으로 프로덕트를 개발하는 것이다. 다음과 같은 과정을 선형적으로 진행한다.
1. 요구사항 수집과 분석
프로젝트에 사용될 기능, 시스템, 기술 등의 정보를 클라이언트와 주요 이해관계자로부터 수집한다.
2. 설계
UX전문가는 고객, 제품팀 및 기타 주요 이해관계자와 함께 제품의 모양새와 여러 요소들을 결정한다.
3. 테스팅
성능, 시스템 및 사용자 승인 테스팅을 수행하여 제품이 요구사항을 충족하는지 확인하고 만약 결함이나 버그가 발견되면 제품이 전달되기 전에 해결한다.
4. 프로젝트 최종 결과물 전달
프로젝트를 착수할 때 확정했던 사양을 제품이 충족하면 클라이언트에게 전달한다.
5. 유지보수
클라이언트는 제품을 전달받은 후 추가적인 스코프 변경을 요청할 수 있고 프로젝트 비용과 시간은 추가될 수 있다.
제품개발 방법론2. 애자일(Agile)
계획 ▶ 설계 ▶ 개발 ▶ 테스팅 ▶ 배포 ▶ 피드백
출처 = https://obeya-association.com/blog/is-agile-methodology/ 애자일 방식은 아주 작은 핵심 요소만으로 제품 혹은 샘플을 만들어서 소비자 반응을 확인하고 점점 살을 붙여 나가는 방식이다. 각 주기는 제품이나 서비스 개발을 지속적으로 향상시키는 데 초점이 맞춰져 있으며, 반복적이며 사람 중심적인 개발 방식을 취한다.
1. 계획
고객과 주요 이해관계자들이 함께 프로젝트 개념화, 브레인스토밍, 정의, 우선순위설정, 필요 자원, 예산 책정을 논의한다. 그다음 승인 및 실행하는 작업이 이뤄진다.
2. 설계
사용자경험 전문가가 스크럼 마스터, 클라이언트, 제품팀 그리고 기타 주요 이해관계자와 협력해 제품의 모양새와 여타 요소들을 결정한다.
3. 개발
이 단계에서 개발팀은 스프린트(*)방식으로 여러 반복 작업을 거쳐서 고객 요구사항에 맞는 제품을 개발한다.
(*) 프로젝트를 효율적으로 해결하기 위해 만들어진 팀에 구체적인 방법을 제시하는 5일짜리 프로그램
4. 테스팅
테스팅 단계에서는 제품이 고객 요구사항을 충족하는지 확인한다. 만약 결함이 발견되면 해당 제품을 개발 단계로 보내 결함을 수정하고 다시 테스트한다. 이 단계는 제품이 고객 요구사항이나 목표를 충족할 때까지 지속된다.
5. 배포
모든 단계가 완료되면 최종 제품을 클라이언트에게 전달한다.
6. 피드백
팀이 전체 개발 프로세스를 회고하며 제품이나 팀의 성과를 개선하는 방법을 검토한다.
다시 서두에 제시했던 가설로 돌아가보자.
나는 KAKAO의 PM으로 2021년 1분기에 카카오톡 '멀티 프로필' 신규 프로덕트를 출시했다. 멀티 프로필 프로덕트는 이미 충분한 논의를 통해 요구사항이 정의되었고, 2021년의 가장 큰 프로덕트 릴리즈이므로 워터폴(Waterfall) 프로세스로 개발을 진행했다. 그런데 릴리즈 이후 문제가 발생했다.
카카오톡 '멀티프로필' 서비스는 워터폴 방식으로 릴리즈 했기 때문에 서비스를 운영하면서 문제가 발견 될 수 있으므로 유저의 반응을 통해 지속적으로 업그레이드를 해야한다. 현재 카카오톡 '멀티프로필' 기능을 이용하면서 어떤 문제가 발생하고 있는지 탐색하고 다음 버전에 반영할 개선안에 대한 유저스토리와 백로그를 작성해보고자한다. 먼저 카카오톡 멀티프로필 기능이 무엇인지 알아보자.
카카오톡 신규 프로덕트 "멀티프로필" 기능 릴리즈!
출처 = https://moajungbo.com/63
스마트폰 유저라면 거의 대부분 사용하고 있는 카카오톡은 가족, 친구, 회사, 학교 등 거의 모든 커뮤니티의 주요 소통 수단으로 사용되고 있다. 사적인 관계와 더불어 공적인 관계에서도 카카오톡이 활용되면서 개인의 소중한 프라이버시를 지키기 위해 멀티프로필 기능이 새롭게 릴리즈 되었다. 멀티프로필을 설정하면 내 친구목록에 있는 친구들을 지정하여 각기 다른 프로필을 보여줄 수 있으며 최대 3개까지 만들 수 있다.
멀티프로필 기능의 문제점 발견 및 개선안
멀티프로필 릴리즈 후 기능을 테스트 하던 중, 회사용 멀티프로필로 지정한 친구 목록에 (알수없음)이 존재하는 것을 발견했다. 알고보니 지정했던 회사 동료가 카카오톡을 탈퇴했다가 재가입을 했던 것이다. 탈퇴로 인해 멀티프로필로 지정했던 것이 자동으로 풀려버렸다. 그러나 카카오톡은 아무것도 알려주지 않았고 내가 직접 회사용 멀티프로필의 친구목록을 확인하지 않으면 알 방법이 없었다. 심지어 (알수없음)이 누구인지 알 수도 없어서 나중에 새로운 친구로 뜨는 동료 이름을 보고 유추할 수 있었을 뿐이다. 회사용 멀티프로필에서 빠져나간 사람이 누군지 알아야 그 사람을 다시 등록하고 나의 프라이버시를 보호할 수 있지 않을까?
그래서 개선안을 생각해보았다.
카카오톡 멀티프로필 기능을 이용하려면 먼저 "카카오톡 지갑"에서 본인인증을 해야한다. 즉, 멀티프로필 서비스를 이용하는 유저의 정보는 모두 "카카오톡 지갑" 채널에 저장되어 있을 것이다. 따라서 해당 채널에서 멀티프로필의 변동사항이 발생하면 유저에게 알림을 보내서 유저가 예상하지 못한 변동사항에 대처할 수 있도록 개선한다.
유저스토리(User Story)
누가, 왜, 무엇을 원하는가?
프로덕트를 개발할 때 유저스토리를 작성하면 유저의 니즈가 반영된 형태의 일을 지속적으로 떠올리며 방향성을 잃지 않고 목표를 달성할 수 있다. 또한 하나의 프로덕트를 개발할 때 여러 이해관계자가 함께 작업하기 때문에 유저스토리는 모든 사람의 공용어가 되어 의사소통을 원활하게 한다. 아래의 동영상은 유저스토리가 필요한 이유를 명확하게 설명하고 있어서 참고용으로 추천한다.
1. 고객/사용자(WHO)는
2. 목적/목표(WHY)를 위해
3. 필요/욕구(WHAT)를 원한다.
영상에서 안내하는 유저스토리의 기술 순서는 이와 같다. 앞서 문제를 발견하고 개선점을 찾은 "카카오톡 멀티프로필"에 대입해보자.
WHO?
카카오톡 멀티프로필을 이용하는 유저는
WHY?
멀티프로필 리스트에서 탈퇴한 이용자를 인지하고 대처하기 위해
WHAT?
'카카오톡 서랍' 채널에서 멀티프로필 내 변동사항에 대한 알림을 보내줄 것을 원한다.
문제해결을 위한 백로그 작성
백로그는 유저스토리를 달성하기 위해 프로덕트를 개선하는 과정에 있는 이해관계자들이 해야할 일의 목록이다. 백로그를 작성할 때는 우선순위에 따라 정리하고, 가능한 구체적으로 작성해야할 필요가 있다. 백로그가 쌓일수록 고객문제의 처리속도가 지연되거나 불가능할 수 있으므로 우선순위가 낮은 문제는 백로그로 등록하면 안된다. 백로그는 고객 중심 사고로 팀과 고객 사이의 간극을 줄이고 이해관계자들과 의사소통을 원활히 할 수 있는 장점을 가진 도구로 활용할 수 있다.
이번에 발생한 카카오톡 멀티프로필의 문제개선을 위한 백로그를 작성해보았다.
4가지로 작성한 백로그 중 개선안의 구현을 위해 먼저 기술적으로 해결이 가능할지 개발팀과 상의가 필요하다고 판단하여 로직개편을 1순위로 정했다. 해당 TASK가 아직 해결된 것은 아니지만 백로그에 들어가야할 여러 상태를 예시로 보여주기 위해 Done으로 표기해보았다. 개발팀과 로직개편 방향을 확정한 이후에는 데이터 연동기능 개발에 착수하고 있을 것 같아서 이를 In-Progress로 표기했다. 나머지는 해야할 일들로 To Do 상태이다. 오늘 작성한 백로그는 가상의 것으로 실제로는 개발팀, QA팀, UX/UI팀 등 더 많은 이해관계자를 고려하여 이보다 더 세밀하게 구성될 것이다.
문제해결 과정 중 이해관계자들의 요구사항
PM(또는 PO(Product Owner))이 성공적으로 문제를 해결하기 위해서는 내외부의 이해관계자와 협력해야한다. 이번 카카오톡 멀티프로필에 발생한 문제해결을 위해 작성한 유저스토리와 백로그의 이해관계자들은 무엇을 요구하게 될까?
1. 고객
고객은 가장 적합하고 필요한 프로덕트로 발전시키는 데 핵심적인 의견을 내는 존재이다. 고객의 진짜 문제를 파악하면 빠르게 우선순위를 정하여 프로덕트를 개발하고 개선해나갈 수 있다.
멀티프로필에 등록한 사용자가 탈퇴했는데 알림이 안와서 불편해요!
멀티프로필의 변동사항을 알림 받으면 좋을 것 같은데 언제 가능한가요?
알림은 어떻게 받을 수 있을까요?
탈퇴한 사용자가 새로 가입하면 자동으로 다시 멀티프로필에 등록이 될 수는 없나요?
2. 내부팀(개발)
고객에게 가장 적합한 프로덕트를 만들어낼 책임을 갖고 있는 내부의 이해관계자는 프로덕트, 개발, 마케팅, CS, UX/UI, QA팀 등 다양하다. 그 중 개발팀은 프로덕트의 개선에 직접적으로 참여하여 기술적으로 발전시키는 존재이다.
멀티프로필의 변동사항을 유저에게 안내할 방법을 논의하기 위해 클라이언트, 서버, DB 담당자와의 일정을 잡아주세요.
멀티프로필에 저장 된 DB가 변동될때 꼭 카카오톡 지갑 채널에서 안내 되어야 하나요?
탈퇴한 사용자의 로그를 개인정보보호법상 기록할 수가 없는데 다른 방법을 기획해주세요.
3. 경영진(C-Level)
시장에서 프로덕트에 대해 가장 큰 책임을 지는 CEO와 C-Level의 고위 경영진은 조직의 비즈니스적인 운영과 프로덕트의 방향성을 맞추는 존재이다.
KPI 달성을 위해 고객에게 더 좋은 경험을 제공할 수 있는 프로덕트로 발전시켜야합니다.
멀티프로필의 기능 개선에 들어가는 기회비용은 얼마나 드나요?
보다 적은 리소스를 투입하여 더 큰 효과를 낼 수 있는 방법은 없나요?
각 이해관계자의 요구사항을 해소할 때 유의할점
프로덕트 매니저(PM)는 고객의 문제를 해결하기 위해 경영진, 내부팀, 고객 등 각종 이해관계자들의 중간에서 그들의 요구사항을 반영하고 조율하면서 함께 만들어야 할 것을 기획하는 직무이다. 상황을 전체적으로 조망하고 가능한 것과 불가능한 것을 빠르게 판단하여 만들어낸 결과물을 최대한 빠르게 고객에게 전달해야한다. 사업가치와 고객가치를 동시에 창출하는 책임감이 막중한 역할이기 때문에 모든 업무의 끝에는 '고객'을 두어 어떻게 문제를 해결할지 포커스를 맞추고 그 목적과 맞지 않는 요구사항은 과감하게 버릴 수 있어야한다. 이해관계자들과의 커뮤니케이션 역량이 가장 중요하기 때문에 PM/PO의 채용 공고에서 이 역량은 빠짐없이 요구되고 있다. 이해관계자들과 소통 중 발생할 문제와 대책을 알아보자.
1. 내부 이해관계자들이 프로덕트를 제대로 이해하지 못할 경우
개발에 착수하기 전 경영진을 비롯하여 내부 이해관계자들과 프로덕트의 방향성을 함께 충분히 논의하고 공감대를 형성해야한다. 개발 진행 중에 이견이 발생할 경우 리스크가 크기 때문이다. 먼저 이해관계자들의 이해 정도를 확인하고, 외부 고객을 대상으로 검증을 수행하는 것이 좋다.
2. 개발 과정에서의 기준이 명확하지 않은 경우
개발 언어, 빌드 주기, 개발 도구, 작업을 완료하였다는 기준 등은 개발팀에서 반드시 지켜야하는 가장 기본적이고도 중요한 사항이다. 내부에서 명확한 개발 기준을 협의해야 한다.
3. 고객이 원하는 프로덕트에서 점점 멀어지는 경우
프로덕트를 개선하고 개발하는 궁극적인 이유는 고객의 문제를 해결하기 위한 것이다. 내부 조직의 다양한 이해 관계와 외부 요인 등으로 인해 의사결정이 어려운 상황이나 갈등이 발생하더라도 고객 관점 사고방식으로 문제를 해결하면 오류와 갈등을 방지할 수 있다.
문제를 기막히게 해결하는 유익한 기획자.
코드스테이츠 PM 부트캠프로 획기적인 프로덕트 매니저가 되어 가다.
기막힌 생각과 획기적인 방법론자, PM이야기 #19. 끝.
참고자료