프로그램 개발 의뢰 전 요구사항 정리하는 순서
요구사항 정리는 기술을 정하는 일이 아니라 지금 하는 업무를 옮겨 적는 일이고, 지난 한 주에 처리한 5건에서 출발합니다. 누가 언제 무엇을 하는지 적는 업무 흐름 표, 기능 20~30개 목록, 데이터 항목 15~25개를 예시값까지 채운 표를 실었습니다. 하루에 표 하나씩 사흘로 나눈 순서와 넘기기 전 점검 세 가지도 정리했습니다.

프로그램 개발을 의뢰하기 전에 만드는 요구사항 정의서 — 만들 프로그램이 무엇을 해야 하는지 적어 개발자에게 넘기는 문서 — 는 기술을 정하는 자리가 아니라 지금 하는 업무를 그대로 옮겨 적는 자리입니다. 지난 한 주에 실제로 처리한 일 5건에서 출발하면 A4 2~3장이 3일 안에 채워집니다.
요구사항 정리는 어디부터 시작합니까
빈 문서에 '필요한 기능'부터 적으면 몇 줄 못 가서 막힙니다. 머릿속에서 꺼내는 기능은 이미 아는 것뿐이라 열 줄쯤에서 바닥이 납니다. 출발점은 지난 한 주에 처리한 일 5건입니다.
5건은 무난히 끝난 건 3건과 어긋난 건 2건으로 고릅니다 — 중간에 취소된 건 · 급하게 끼워 넣은 건. 어긋난 건 안에 예외 처리가 들어 있고, 예외가 나중에 기능을 가장 많이 늘립니다.
그다음은 표 셋으로 옮깁니다. 업무 흐름 표 · 기능 목록 표 · 데이터 항목 표 순서입니다. 흐름에서 기능이 나오고 기능에서 데이터 항목이 나오므로, 순서를 뒤집으면 쓰지 않는 항목이 늘어납니다.
업무 흐름은 어떻게 표로 옮기나요
칸은 네 개입니다 — 누가 · 언제 · 무엇을 하나 · 어디에 기록하나. 5건을 나란히 놓고 겹치는 줄을 하나로 합치면 6~10줄이 남습니다. 아래는 전화와 메신저로 주문을 받는 회사를 가정한 표입니다.
| 누가 | 언제 | 무엇을 하나 | 어디에 기록하나 |
|---|---|---|---|
| 고객 | 주문할 때 | 전화나 메신저로 상품과 수량을 알림 | 메신저 대화창 |
| 접수 담당 | 매일 오전 | 대화 내용을 주문 시트에 옮겨 적음 | 주문 시트 |
| 접수 담당 | 옮긴 직후 | 재고가 있는지 창고에 묻고 고객에게 답함 | 메신저 대화창 |
| 창고 담당 | 매일 14시 | 그날 보낼 목록을 뽑아 포장 | 인쇄한 목록 종이 |
| 창고 담당 | 발송 뒤 | 송장 번호를 적어 접수 담당에게 넘김 | 주문 시트 |
| 접수 담당 | 다음 날 오전 | 입금이 안 된 건을 골라 다시 연락 | 주문 시트에 색 표시 |
| 대표 | 매달 말 | 상품별 판매 수량을 세어 발주 | 따로 만든 월별 시트 |
다 옮겼으면 세 종류의 줄에 표시를 답니다. 손으로 옮겨 적는 줄 · 같은 내용을 두 곳에 적는 줄 · 색이나 밑줄로 구분해 두는 줄입니다. 이 셋이 프로그램이 대신 맡을 자리이고, 다음 표의 기능이 여기서 나옵니다.
기능 목록은 몇 개면 됩니까
20~30개면 A4 2~3장짜리 문서에 맞습니다. 흐름 표 한 줄에서 기능이 2~3개씩 나오므로 8줄짜리 표면 20개 안팎이 채워집니다. 칸은 셋입니다 — 기능 이름 · 왜 필요한가 · 지금은 어떻게 처리하나.
| 기능 이름 | 왜 필요한가 | 지금은 어떻게 처리하나 |
|---|---|---|
| 주문 등록 | 받은 주문을 한 곳에 모음 | 메신저 내용을 시트에 손으로 옮김 |
| 재고 수량 조회 | 가능한지 그 자리에서 답함 | 창고에 전화로 물음 |
| 발송 목록 인쇄 | 그날 포장할 건만 추림 | 시트를 눈으로 훑어 표시 |
| 송장 번호 입력 | 배송 문의에 답함 | 종이에 적어 두었다가 시트에 옮김 |
| 미입금 건 표시 | 다시 연락할 건을 고름 | 셀에 색을 칠함 |
| 월별 판매 집계 | 다음 달 발주 수량을 정함 | 매달 말 시트를 새로 만듦 |
| 담당자별 계정 | 누가 언제 고쳤는지 남김 | 시트 하나를 여럿이 함께 씀 |
세 번째 칸이 이 표의 값어치를 만듭니다. '지금은 어떻게 처리하나'가 채워져 있으면 개발 쪽에서 화면을 그릴 때 그 손동작을 그대로 옮깁니다. 이 칸이 비는 줄은 아직 아무도 하지 않는 일이라 옆에 '다음'이라고 적어 둡니다.
기능 이름은 동사로 끝내면 세기가 쉬워집니다 — 등록 · 조회 · 수정 · 인쇄 · 집계. 한 화면에서 버튼 하나로 끝나는 동작이 한 줄입니다. 30개를 넘으면 1차에 만들 것과 다음에 만들 것으로 나눠 표시만 해 둡니다.
데이터 항목 표에 꼭 있어야 할 칸은 무엇인가요
항목 이름 · 형식 · 필수 여부 · 예시값 하나, 이렇게 네 칸입니다. 필수 여부는 그 칸이 비어 있어도 저장이 되는지를 뜻합니다. 15~25개면 업무 하나를 담기에 넉넉합니다. 아래는 앞의 주문 업무에서 뽑은 예시입니다.
| 항목 이름 | 형식 | 필수 여부 | 예시값 |
|---|---|---|---|
| 주문 번호 | 자동으로 붙는 번호 | 필수 | 20260415-014 |
| 주문 일시 | 날짜와 시각 | 필수 | 2026-04-15 10:20 |
| 주문자 이름 | 글자 20자 이내 | 필수 | 김OO |
| 연락처 | 숫자 11자리 | 필수 | 010-0000-0000 |
| 상품명 | 목록에서 고르기 | 필수 | 기본형 500ml |
| 수량 | 숫자 | 필수 | 2 |
| 결제 상태 | 목록에서 고르기 | 필수 | 미입금 |
| 송장 번호 | 숫자와 영문 | 선택 | 비어 있음 |
| 요청 사항 | 여러 줄 글자 | 선택 | 부재 시 경비실에 |
예시값 칸은 하나도 빼지 않고 채웁니다. 글자 수와 생김새가 화면 입력 칸의 크기를 정하기 때문입니다. 형식이 '목록에서 고르기'인 항목은 목록에 들어갈 값을 그 자리에 전부 적습니다 — 미입금 · 입금 · 취소처럼.
3일 작업은 어떻게 나눕니까
하루에 표 하나씩 잡습니다. 하루치가 두 시간 안팎입니다.
- 1일 차 — 지난주 5건을 순서대로 적고 겹치는 줄을 합쳐 업무 흐름 표로 만듭니다. 결과물은 6~10줄짜리 표 1개.
- 2일 차 — 흐름 표를 보며 기능 20~30개를 뽑고 각 줄 옆에 '1차'와 '다음'을 답니다.
- 3일 차 — 기능이 읽고 쓰는 데이터 항목 15~25개를 적고 예시값을 채웁니다.
맨 앞에는 표지 한 장을 붙입니다. 이 프로그램을 왜 만드는지 세 줄 · 쓸 사람 수 · 쓰기 시작하고 싶은 달, 이렇게 세 가지면 됩니다. 화면 그림은 없어도 됩니다 — 흐름과 데이터가 적혀 있으면 화면은 개발 쪽에서 그려 옵니다.
다 쓴 문서에서 무엇을 봅니까
넘기기 전에 세 가지를 서로 맞춰 봅니다. 30분이면 끝납니다.
- 흐름 표의 모든 줄이 기능 목록 어딘가에 들어가 있는가 — 안 들어간 줄은 앞으로도 사람이 손으로 할 일입니다.
- 기능마다 그 기능이 읽고 쓰는 데이터 항목이 세 번째 표에 있는가.
- 데이터 항목마다 예시값이 하나씩 적혀 있는가.
그다음은 소리 내어 읽습니다. 같은 업무를 하는 사람 2명 앞에서 흐름 표를 한 줄씩 읽으면 '그건 이렇게 안 해요'라는 말이 나옵니다. 그 자리가 빠진 예외이고, 거기서 기능이 두어 개 더 늘어납니다.
문서와 함께 넘길 것도 챙깁니다 — 지금 쓰는 시트 사본 1부 · 출력해 쓰는 인쇄물 1장 · 받고 싶은 결과 화면의 예시. 실제 파일이 같이 가면 첫 회의가 질문 목록이 아니라 일정 이야기로 시작합니다.
오늘 할 일은 하나입니다. 빈 문서를 열고 지난주에 처리한 일 5건을 순서대로 적으십시오. 한 건에 두세 줄이면 됩니다. 다섯 건이 다 적히면 같은 말이 반복되는 줄이 눈에 들어오고, 그 줄이 업무 흐름 표의 첫 행이 됩니다.