기능 vs 비기능 요구사항 구분
기능 vs 비기능 요구사항 구분
동네 서점 시스템을 구축하면서 가장 혼란스러울 수 있는 부분은 사장님이 요청하는 것들을 어떻게 분류할지다. "빠르게 작동했으면 좋겠어요", "사용하기 쉬웠으면 좋겠어요", "안전했으면 좋겠어요" 같은 요구사항들은 구체적인 기능이 아니지만 시스템의 성공을 좌우하는 중요한 요소들이다.
겉으로 드러나지 않는 중요한 것들
기능 요구사항은 비교적 명확하다. 도서 등록, 재고 관리, 매출 집계, 고객 관리 등 시스템이 "무엇을 해야 하는가"에 대한 요구사항들이다. 하지만 비기능 요구사항은 더 미묘하고 복잡하다.
"계산이 빨라야 한다"는 요구사항을 분석해보자. 나사장님에게 "빠르다"는 것은 바코드를 스캔했을 때 1초 이내에 가격이 나타나는 것을 의미한다고 가정해보자. 고객이 기다리는 시간이 길면 서점의 이미지에 영향을 주기 때문이다.
김직원에게 "빠르다"는 것은 조금 다른 의미다. 계산 처리 속도보다는 "다음에 뭘 해야 하는지" 빠르게 파악할 수 있는 것이 더 중요하다. 할인 적용 버튼이 어디 있는지, 포인트 적립은 어떻게 하는지를 헤매지 않고 찾을 수 있는 것이 그에게는 "빠른" 시스템이다.
보안 요구사항도 사용자마다 다른 관점을 보인다. 나사장님은 "매출 데이터가 외부로 유출되지 않는 것"을 가장 우려한다. 경쟁 서점이 자신의 매출 정보를 알게 되는 것에 대한 두려움이 있을 수 있다.
박교수님은 "개인 정보 보호"에 더 민감할 수 있다. 구매 내역이나 개인 취향 정보가 마케팅 목적으로 남용되는 것을 걱정한다. 동시에 편의를 위해서는 어느 정도 정보 제공이 필요하다는 것도 이해하고 있어 적절한 균형점을 찾기를 원한다.
측정 가능한 비기능 요구사항
막연한 "빠르게, 쉽게, 안전하게"라는 요구사항을 구체적인 기준으로 변환하는 작업이 필요하다. 측정할 수 없는 요구사항은 개발할 수도, 검증할 수도 없기 때문이다. 성능, 사용성, 신뢰성을 바탕으로 항목을 나열해보자.
성능 요구사항을 먼저 구체화한다.
바코드 스캔 후 가격 표시까지 1초 이내
지금 바로 작가의 멤버십 구독자가 되어
멤버십 특별 연재 콘텐츠를 모두 만나 보세요.