브런치북 PM온보딩 07화

[PM온보딩] 프로젝트 시작 전 : 기능정의서 검토

by 양지은

Chapter 2

기능정의서 검토의 중요성

기능정의서 선 검토를 통해 구멍 메우기

계약서를 검토했다면, 이제는 기능정의서(Function Specification, 기능명세서)를 들여다볼 차례입니다.

기능정의서는 프로젝트의 첫 단추이자, 전체 방향성을 설정하는 기준점이 됩니다.

인하우스 프로젝트라면 기존 서비스 기능에 대한 고도화 혹은 신규 기능 도입을 설명하는 목적의 문서일 수 있고, 외주 프로젝트라면 고객이 요청한 니즈나 요구사항을 정리한 형태의 문서일 수 있습니다.

외주의 경우, 초기에 받는 기능정의서는 ‘기획’이라기보단 ‘희망사항’에 가까운 경우가 많습니다.

때문에 PM은 주어진 기간과 리소스 내에서 실현 가능한지, 혹은 구체화가 더 필요한 부분은 없는지 꼼꼼히 검토할 필요가 있습니다.
기능 간의 연관성, 누락된 플로우, 추상적인 정의가 실제 개발 단계에서 어떤 리스크로 이어질 수 있을지 짚어내는 것이 중요합니다.



아래는 제가 아주 좋아하는 서비스, 당근마켓을 예로 들어 간략하게 작성한 예시입니다.

딱 봤을 때, 어떤 생각들이 떠오르나요? PM은 무엇을 메워야 할까요?

사용자 권한에 대한 정의는 되어 있나?

- 이 기능들은 누가 쓰는 거지?

- 사용자의 유형이 판매자와 구매자로 구분이 되는 건가?

- 사용자 유형(판매자, 구매자)에 따라 기능 노출 여부나 동작 조건이 달라져야 하나?


화면 흐름과 전환 조건은 어떻게 설계할까?

- ‘내 물건 팔기’에서 작성을 완료하면, 메인으로 이동시킬까? 아니면 마이페이지로? 혹은 팝업으로 알려주기?

- 작성 도중 이탈 시, 임시 저장 여부를 처리해야 할까? 다음 고도화 진행 시, 구현하는 것으로 할까?


입력 필드에 대한 UI/UX 조건은 정리되어 있나?

- 사진 첨부는 몇 장까지 가능하게 하지?

- 어떤 값이 필수 입력이고, 어떤 값이 선택사항이지?

- 제목의 최대 글자 수는 몇 자가 적절할까? 가격은 숫자만 입력되게 해야겠다, 0원 입력도 가능하게 할까?


위치 정보는 어디서 어떻게 수집하지?

- 동네 위치는 물건을 팔 때마다 매번 직접 입력?

- 아니면 회원가입 시 동네 위치를 기본으로 설정하게 하고 불러오는 구조? 그러면 GPS 기반으로 위치 확인이 필요해지겠네. GPS 기반 자동설정이 필요하다면, React Native로 구현해도 될지 기술 검토를 먼저 해야겠다.


리뷰 기능의 트리거는?

- 리뷰는 언제 작성할 수 있게 하지? 거래 완료 상태값이 존재해야 한다면, 거래 완료는 누가? 언제? 어떤 기준으로 누르지? 상대방 승인도 필요한가?


리뷰의 구조는 어떻게 설계할 것인가?

- 리뷰의 형태도 고민이네. 사진 첨부는 가능하게 해야 하나? 별점으로 책정?

- 텍스트만? 사진 + 별점 + 코멘트? 사진 첨부가 허용된다면 몇 장까지? 별점은 1~5점? 반점 허용?



아래와 같이 와이어프레임을 MVP 수준으로 구성했다고 가정해 보고 연습 삼아 구멍을 찾아볼까요?


PM 체크포인트

스플래시는 몇 초간 노출되나?

자동으로 다음 화면인 메인 홈으로 넘어가는지, 유저 탭/스와이프 등의 동작에 의해 넘어가는지

로고 외에 브랜딩 슬로건, 슬로건 애니메이션 등의 추가 요소는 없는가?

네트워크 미연결 상태에서는 로딩 실패 예외처리를 해야 하는가?
















PM 체크포인트

현재 보이는 목록은 어떤 기준(최신순/인기순/거리순 등)으로 정렬되는가?

썸네일 이미지의 경우 판매상품 등록 시, 여러 이미지를 등록한다고 하면 노출되는 기준은?

말 줄임 처리 기준은?

하트 이모지를 보아하니, 찜하기 기능인 것으로 보이나, 찜하기 기능은 기존 요구사항 메뉴에 없던 항목이다. -> 찜하기 한 리스트를 확인하는 화면 또한 존재하지 않음 -> CRUD의 R(Read) 기능 누락

필터나 검색 기능은 없어도 되는가? (없다면 MVP 범위인지, 후속 개발로 미루어지는지 확인 필요)

판매리스트 클릭 시 이동되는 상세 페이지가 존재하지 않음 → CRUD의 R(Read) 기능 누락

글쓰기 버튼 클릭 시의 액션은?



PM 체크포인트

닉네임, 프로필 사진은 어디서 등록되는가? 회원가입 시 필수적으로 설정을 유도할 것인지?

닉네임은 중복 체크를 할 것인지? 닉네임의 글자 수 제한과 영문/ 특수문자 조건도 정의가 필요하겠다.

받은 후기는 어떤 기준으로 분류되는가?

매너 평가의 리스트 영역은 무한스크롤인가?

프로필 수정을 누르면 어떤 항목들이 수정 가능한가? → 프로필 이미지? 닉네임? 동네 위치?













PM 체크포인트

판매 중/거래완료 탭 구분 기준은? 상태값은 어떻게 설정되고 바꿀 수 있는가?

찜하기 버튼이 존재하나, 찜한 목록을 어디서 확인하는가? 마이페이지 내 별도 메뉴가 있어야 할 것으로 보임

판매 중인 상품의 수정/삭제 기능은 어디에서 제공되는가? -> CRUD의 U(Update) 기능과 D(Delete) 기능 누락














PM 체크포인트

사진은 최대 10장까지 첨부가 가능하구나 그럼, 이미지의 순서를 변경할 수 있나?

이미지 삭제처리는 어떻게 하지?

제목/가격/설명은 필수 입력인가? 필드마다 유효성 검사 정의를 해놓아야겠다.

가격은 숫자만 입력 가능한가? 0원도 허용되는가?

작성 완료 후 이동 경로는? 메인으로 리디렉션? 마이페이지로?


















PM이 체크해야 할 CRUD

PM은 기본적인 CRUD 흐름이 구성돼 있는지를 점검할 줄 알아야 합니다.

Create (생성): ‘내 물건 팔기’ 기능은 보이지만, 작성 완료 후 어떤 화면으로 이동하는지, 성공/실패 시 액션은 어떻게 되는지 정의되어야 합니다.

Read (조회): 판매 목록 화면은 확인되었지만, 각 리스트를 눌렀을 때 진입할 상세 페이지가 기획되어 있지 않습니다.

Update (수정): 사용자가 자신이 등록한 글을 수정할 수 있어야 합니다. 수정은 어디에서 가능한지 기획되어야 합니다.

Delete (삭제): 사용자가 자신이 등록한 글을 삭제할 수 있어야 합니다. 삭제는 어디에서 가능한지 기획되어야 합니다.


모든 구멍을 한 번에 다 메울 수는 없다.

명심할 점은, 모든 구멍을 한 번에 다 메우는 것은 불가능하다는 것입니다. 중요한 건, 미리 어느 부분이 비어있는지 인지하고, 어디서 질문을 던져야 하는지 아는 것, 그리고 그 빈틈을 문서화와 커뮤니케이션을 통해 점진적으로 채워나가는 것이 중요합니다.


기능정의서나 기획안은 '완성형'이 아닙니다. 주어진 자료가 러프할수록 PM은 더 능동적으로 '구멍을 메우는 시선'을 가져야 합니다. 완벽함이 아니라 우선순위 판단, 문맥의 이해, 대화의 출발점 찾기입니다. CRUD를 기준으로 흐름을 점검하는 습관이 PM의 기획 감각을 높여줄 수 있습니다.



keyword
이전 06화[PM온보딩] 참고자료 3 : 프로젝트의 환경과 스택