(잇기) 기능정의서
기능정의서는 ‘약속’을 만드는 문서다
기능정의서는 소프트웨어 개발 과정에서 각 기능의 세부 사항을 문서화한 자료입니다. 이 문서는 개발팀과 이해관계자들이 “이 기능이 정확히 어떻게 작동해야 하는지”에 대해 동일한 이해를 가지도록 돕습니다. 일반적인 기획안이 방향성을 제시하는 문서라면, 기능정의서는 기준을 만드는 문서입니다. 방향성은 조율의 대상이 될 수 있지만, 정의는 약속이 됩니다. 그래서 정의된 내용은 쉽게 바뀌지 않습니다.
정의는 한 단계 더 깊이 들어간 설명이다
정의는 같은 레이어의 말을 반복하는 것이 아닙니다. 단어를 다른 단어로 바꿔 적는 것은 정의가 아닙니다.
이런 것, 안 됩니다.
예를 들어,
- 버튼은 클릭하는 UI다 → 이것은 사전적 정의입니다.
- 버튼은 클릭하면 초록색에서 빨간색으로 상태가 변경되며, 특정 동작을 실행한다 → 이것이 기능정의서에서의 정의입니다.
기능정의서는 사전적 설명이 아니라, 해당 서비스 안에서 기능이 어떻게 동작하는지를 구체적으로 설명하는 문서입니다. 즉, 한 단계 아래 Depth로 내려가야 정의가 됩니다.
기능정의서는 두 가지 관점으로 작성할 수 있다
1. 기능 중심 작성
기능 중심 작성은 IA를 기반으로 기능을 하나씩 정의하는 방식입니다. 피그잼이나 엑셀로 정리된 기능 목록을 그대로 가져와 세부 동작을 정의합니다.
이 방식은 구조적이며 빠진 기능을 점검하기 좋습니다.
2. 화면 중심 작성
화면이란 기획 의도를 바탕으로 연관성 있는 기능을 묶은 집합체입니다.
예를 들어 로그인 화면이라면, 로그인과 직접적으로 관련된 기능만 모아 정의합니다. 이때 핵심은 기획 의도입니다. 로그인 화면에 필요한 기능만 재분류하고, IA를 다시 보며 빠진 기능이 없는지 검토합니다.
실무에서는 메뉴트리를 먼저 그리고, 화면 단위로 정리하면서 기능을 채워 넣는 방식을 자주 사용합니다. 이 과정을 피그잼으로 시각화하면 누락된 기능을 쉽게 발견할 수 있습니다.
기능정의 시 반드시 지켜야 할 원칙
1. 기능에 대해서만 정의한다
기능정의서에서는 기능의 범위, 사용 방식, 경우의 수를 정의합니다. UI나 디자인 요소는 포함하지 않습니다.
예를 들어,
-
로그인 오류 메시지는 빨간색으로 출력된다 → 기능정의서에 적지 않습니다.
이 내용은 화면정의서에 작성해야 합니다.
기능정의서는 동작 중심, 화면정의서는 UI까지 포함하는 문서라고 구분하면 됩니다.
2. 경우의 수를 모두 적는다
체크할 것은 모든 경우의 수입니다. 정상 동작뿐 아니라 예외 상황도 포함해야 합니다. 다만 화면 이동의 경우에는 “회원가입 화면으로 이동한다” 수준까지만 적으면 충분합니다. 상세 UI 이동 방식까지 정의할 필요는 없습니다.
기능정의서는 버전 관리가 필수다
버전은 서비스의 나이라고 할 수 있습니다. 버전 관리가 있다는 것은 업데이트가 계속된다는 의미입니다.
수정 → 배포 → 피드백 정리 → 업데이트 → 검토 → 재배포
이 과정을 반복하기 때문에, 어떤 버전을 기준으로 작성했는지 명확해야 합니다.
기능정의서는 단권화 개념으로 관리하는 것이 좋습니다. 여러 문서에 흩어져 있으면 기준이 흔들립니다. 중간에 참고한 레퍼런스, 기준 버전 등을 함께 정리해 두어야 혼선이 없습니다.
검토자의 역할도 매우 중요합니다. 실질적인 책임을 지는 사람이 기준을 관리해야 합니다. 책임자나 책임 부서가 정책과 버전 관리 체계를 미리 정해 두어야 안정적으로 운영할 수 있습니다.
기능정의서는 IA를 구체화하는 작업이다
IA가 구조를 설계하는 단계라면, 기능정의서는 그 구조 안의 각 요소를 구체적으로 설명하는 단계입니다. 기능을 정의하고, 피그잼으로 화면 레이아웃을 간단히 그려보면 빠진 기능을 쉽게 확인할 수 있습니다. 이 셀프 검수 과정이 매우 중요합니다.
결국 기능정의서는 방향을 말하는 문서가 아니라, 실행을 위한 기준을 만드는 문서입니다. 이 문서가 명확할수록 개발과 협업의 비용은 줄어듭니다.