포스팅에 앞서,
개발을 원하는 자를 '발주사'로 칭하고 개발을 이행하는 자를 '수주사'로 말하겠습니다.
발주사 개발을 원하는 자
수주사 개발을 이행하는 자
요구분석이란?
요구분석은 문제분석 이라고도 합니다.
개발에 대한 구체적인 기능과 제약 조건, 목표 등을 구체적으로 정의하는 단계입니다.
막연하고 추상적인 아이디어를 구체적으로 개발 사항들을 정리하는 것입니다.
발주사들의 대부분은 스토리보드를 그려오는 것으로 요구사항이 정리되었다고 표현합니다. 그러나 스토리보드 만으로는 제대로 된 요구사항들을 확인할 수 없습니다.
스토리보드는 우리가 쉽게 이해할 수 있는 일상 언어인 자연어입니다.
앱을 개발한다거나 웹사이트를 구축하는 것은 기계어로 만들어야 합니다.
자연어 -> 기계어
이 문제를 극복하는 것이 바로 자연어로 된 요구사항들을 기계어로 짤 수 있도록 기능들을 모두 풀어놓는 것입니다.
요구분석 필요성
| 설계도 제작을 위한 단계
요구분석이 제대로 이행되면 기능정의서, 메뉴구조도 등과 같은 시스템 명세서가 정확히 확보가 됩니다.
그렇게 되면 설계 단계나 개발 구현단계에서 햇갈림없이 정확하게 설계도를 보고 작업물을 완성할 수 있습니다.
| 명확한 산출물을 위한 과정
시스템 명세서가 정확히 기록되지 않은 상태에서 개발을 진행하게 되면 중간중간 어떻게 개발하게 될지 고민에 휩쌓이게 됩니다. 발주사에게 매번 물을 수도 없는 상황이며 발주사 또한 제대로 준비가 되어 있지 않기 때문에 유야무야 넘어가게 됩니다.
시간은 시간대로 지체되고 개발할 목록은 정확하지 않으니 훗날 결과물에 양사 모두 실망하고 맙니다.
| 상호 분쟁 예방
요구분석 단계는 시스템 구축을 위한 기본이며 명확하고 제대로 된 산출물을 내기 위해 반드시 행해야 하는 기본 과정입니다.
또한 발주사가 앱을 개발하거나 웹을 구축하기 위한 외주를 주었을 때 상호 분쟁을 예방할 수 있는 최상의 계약 합의물입니다.
계약을 아무리 꼼꼼하게 기술했다해도 최종 산출물에 양사가 이의가 있으면 서로 얼굴 붉혀지게 마련이며 최악의 경우는 분쟁을 피할 수 없습니다.