당신은 주제를 찾고 있습니까 “기능 명세서 작성법 – [IT창업]03.웹\u0026앱 설계 기획서 작성하기 (IT창업 마지막 단계)“? 다음 카테고리의 웹사이트 you.tfvp.org 에서 귀하의 모든 질문에 답변해 드립니다: https://you.tfvp.org/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 민썸 MinSsum , 스타트업 크리에이터 이(가) 작성한 기사에는 조회수 15,936회 및 좋아요 485개 개의 좋아요가 있습니다.
기능명세서에 무엇을 적어야 할까요? 기능을 작동하게 하기 위해서는 1) 무엇을 2) 어떻게 만드는지 정의되어야 구현됩니다. 기획자는 ‘무엇을’ 만들 것인지에 초점을 두고 기재하면 됩니다. 개발자는 기능명세서를 보고 전체 구조/설계를 함께 고려하여 ‘어떻게’ 구현합니다.
기능 명세서 작성법 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 [IT창업]03.웹\u0026앱 설계 기획서 작성하기 (IT창업 마지막 단계) – 기능 명세서 작성법 주제에 대한 세부정보를 참조하세요
안녕하세요!! IT 스타트업 크리에이터 민썸입니다.
오늘은 IT창업에서 가장 중요한! 화면설계서, 웹\u0026앱 기획서 작성 방법입니다.
IT가 어려우신 분들은 1편부터 봐주시면 더 이해가 되실거에요!
기능 명세서 작성법 주제에 대한 자세한 내용은 여기를 참조하세요.
기능 명세서 작성 가이드 – Jimmy’s Tech Blog
기능명세서. 이 글은 기능 명세서를 작성해야하는 이유과 그 방법에 대해 간단히 서술한 글입니다. 먼저, 기능을 정의한다는 것은 각각의 기능을 정의 …
Source: coffeedjimmy.github.io
Date Published: 8/1/2022
View: 5900
서비스 기획자의 업무 + 화면설계서, 기능명세서 – 루씨네 블로그
보통 화면 설계서(wireframe)와 스토리 보드를 보통 같은개념, 유사개념으로 이해하고 작성. 그러나 사실 화면 설계서와 스토리보드는 다른 문서임. 화면 …
Source: jabong1004.tistory.com
Date Published: 9/17/2022
View: 4886
기능 명세서 작성 요령 – PLANin
그렇다면 기능 명세란 무엇인가? 기능 명세란 1) 사용자의 관점에서 2) 최종 제품이 3) 어떤 모습이며 4) 어떻게 동작할 것인지를 기술한 문서를 …
Source: planin.co.kr
Date Published: 6/10/2022
View: 4010
기능 명세서, 요구사항 정의서는 무엇일까? – 브런치
양산 프로젝트를 진행할 때 너무나 당연하게 ‘요구사항 정의서’를 작성하였고 때가 되면 ‘기능 명세서’를 산출물로 매회 리뷰를 시작하였다.
Source: brunch.co.kr
Date Published: 12/17/2021
View: 1819
기능명세서에 대해 – 네이버 블로그
명세를 작성하는 이유 중 하나는 프로젝트 시작 전에 최대한 많은 요구사항을 끌어내고 최종 산출물의 모습을 파악하는데 있지만 일부 문제의 경우 미해결 …
Source: blog.naver.com
Date Published: 5/27/2022
View: 8808
소프트웨어 요구사항 명세서 (기능명세서)에 대해서 알아보자
기능명세란 사용자 관점에서 최종제품이 어떤모습이며 어떻게 동작할 것인지를 기술한 문서를 말한다. 최종 사용자의 입장에서 기술한 문서기 때문에 내부 …
Source: siran.tistory.com
Date Published: 8/19/2021
View: 3614
소프트웨어 기능 명세서 작성 방법
소프트웨어 기능 명세서 작성 방법 · 1. 면책 조항. 방어적인 내용 “이 명세는 완벽하지 않습니다.” 시간이 흘러 명세가 완벽하게 되면 다음과 같이 면책 …
Source: kimcblog.com
Date Published: 1/19/2021
View: 5001
명세서 작성
1. 기능 명세서 : 철저하게 어떻게 만들지(구현할지)가 배제된 명세서입니다. 사용자의 입장에서 프로그램을 바라봤을 때 …
Source: itouch.tistory.com
Date Published: 8/13/2021
View: 2213
주제와 관련된 이미지 기능 명세서 작성법
주제와 관련된 더 많은 사진을 참조하십시오 [IT창업]03.웹\u0026앱 설계 기획서 작성하기 (IT창업 마지막 단계). 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.
주제에 대한 기사 평가 기능 명세서 작성법
- Author: 민썸 MinSsum , 스타트업 크리에이터
- Views: 조회수 15,936회
- Likes: 좋아요 485개
- Date Published: 2021. 4. 25.
- Video Url link: https://www.youtube.com/watch?v=1hfhUmb_bRc
서비스 기획자의 업무 + 화면설계서, 기능명세서
업무중 시간이 나서 앞으로 계속 보고 공부/참고해야할 내용을 정리해서 기록함.
기획자의 업무는?
1. 요구사항 명세화
사용자 에게 필요한 사항을 어떻게 시스템에 표현하고 어떤 결과가 어떻게 도출될지 정의를 해나가는 업무. 말 그대로 요구사항을 정확히 만들어간다.
2. 서비스 방향 명세화
앞으로 개발될 서비스에 대한 구체화 작업 진행. 고객의 요구 발견, 발전된 방향을 만들어간다.
3. 결과물에 대한 사용자 측정
서비스의 방향이 구체화 되었다면 그 방향에 맞게 개발이 진행될 수 있게 개발자와 디자이너 사이에서 도움자 역할.
개발진행시 결과물에 대한 단계별 진행과 변경에 대해 초기 작업과 확인하며 방향성을 잃지않도록 사용자 중심의 길을 제시하는 업무.
이 세가지 업무가 다 녹아있는것이 화면설계서(UI 설계도)
UI 설계도에 해당하는 용어들
한글로는 화면 설계서
영어로는,
1. wireframe
화면 설계에 있어서 뼈대, 윤곽선만 잡아놓은 형태.
2. workflow
작업 흐름도. 디지털 제품 인터페이스가 처음에 어떤 일을 하고 다음에 어떤 일을 하는가 설명해 놓은 문서
3. 스토리보드
디지털제품 인터페이스가 처음에 어떻게 보이는지 그림과 글로 설명한 문서
4. MMI 문서, MMI 규격서
man-machine interface 요즘은 휴먼-머신 인터페이스라고 더 많이 쓰는것 같다.
5. 사용자 시나리오
사용자가 어떤 식으로 디지털 제품을 사용하는 상황이다 라는 측면에서 지칭할 때.
보통 화면 설계서(wireframe)와 스토리 보드를 보통 같은개념, 유사개념으로 이해하고 작성. 그러나 사실 화면 설계서와 스토리보드는 다른 문서임.
화면설계서는 표면적으로 텍스트, 선, 버튼으로 이루어져 있지만 그 안에는 많은 정보를 표현함.
요구사항명세서에 작성된 기능을 시각적으로 배치.
화면설계서에는 어떤 내용이 담겨야 할까?
버전관리 *완전중요함
개정이력 : 첫 프로젝트는 없었지만 (그냥 텔레그램으로 파일 주고 받고) 이 점을 넘버링 / 날자 / 상세 내용(Description) / 어떤 이슈였는지, 어떻게 처리되었는지 / 작성자등으로 정리해 둘 필요가 있겠다.
나중에 디자이너가 개발부분에서 예. 여기는 왜 버튼이 없죠? 분명 기획단에서 그 이슈가 있었고 사용성이나 플로우 고려해서 없앤거였는데 그 전후 과정이 기억이 나지 않았다. 다만 우리도 그 부분을 알고있고 필요성을 전에도 고려했었고 없어도 되는것이 맞다. 문서가 복잡해지고 같이 일하는 이해관계자가 많아질 수록 문서관리의 필요성이 절실히 느껴짐.
정보 구조도 : 서비스 기획이 어느정도 완료 된 후 어느 정보를 어떤 중요도에 따라 위계를 결정할 것인지를 잘 결정해야 한다. 이 정보 구조를 구성할 때 개발적인 지식이 있다면 큰 도움이 될 것 같다는 생각이 들었다.
+ 서비스 윤곽이 어느정도 잡히면 정보 구조도부터 그리는것이 전체적인 흐름 잡기에 큰 도움이 된다. / 지금 프로젝트 같은 경우는 내가 화면기획을 하고 개발자출신 기획자(백앤드잘알)님이 백엔드 정보구조를 하실듯^^!
규칙(일종의 범례) : 경고나 종료, 안내창 등에 대한 내용을 미리 정해둠. 복잡한 작업일 수록 이 부분의 중요성이 커짐.
화면 목록 : 문서에 감긴 화면 목록 정리. 개발자와의 커뮤니케이션을 위해 화면ID를 표시하기도함. 취소선과 비고를 적절히 활용하면 전체 히스토리를 파악할 수 있어서 좋음.
플로우차트 : 설계 화면이 간단하면 안만들어도 됨. 그러나 복잡해질수록 플로우차트를 정리하고 시작하기를 권장. 그리는법은 그려야 할 일이 생길때 다시 찾아서 참고하도록 하자. 웹의 경우 대부분 화면설계만으로 많은 것을 표현할 수 있는 반면, 앱의 경우 다양한 제스쳐와 기능키 등으로 더 많은 표현방법이 필요하고 웹과 같이 메뉴를 늘 고정시켜두지 않아 flow작성이 웹에 비해 중요해짐.
기본 정책 : 플로우차트에서 담지 못한 내용을 정책 문서로 따로 분리/정리. 각 항목에 대한 고민사항과 결정사항을 정리할 수 있음.
권한 정책 : 프로젝트 성격에 따라 권한 설계가 필요한 경우도 있고, 불필요한 경우도 있음.
유효성 검사 디스크립션 작성 : 설계를 하다보면 필수 입력항목과 유효성 체크 시나리오도 정리해야하는데 우측 공간이 너무 좁은 경우에는 디스크립션을 작성하기가 불편. 이때는 페이지를 별도로 분리해서 상황, 문구, 처리 시나리오를 표로 만들어서 정리하면 작성하기도 쉽고 개발자들이 보기에도 좋음.
이 내용에 대한 유투브 강의도 있으니 나중에 다시 공부해볼것.
youtu.be/ra3EpF9WTow
화면 설계 : 화면에는 관리자 화면의 설계도 포함. 화면을 설계할때는 실제 들어갈 데이터를 쌤플로 넣어줄 것. 그래야 디자이너나 개발자가 해당 영역에 얼마나 많은 텍스트가, 어떤 형태로 들어가는지 알 수 있을 것. 전화번호의 형식 등. 예. 01012345679 / 010-1234-5678 / +82 01 1234 5678 이런건 기획자가 지정해서 넣어준다.
화면설계서 작성 프로그램
1) 파워포인트
2) power mockup – 파워포인트 내에서 설치하는 프로그램이라 사용하기 좋음
3) 키노트
4) 스케치
5) Axure (정리를 하다보니 기획자 조영수(브런치 팔로잉 해둠)님은 Axure툴을 이용해 스토리보드와 프로토타입이 홉합된 형태의 설계 문서를 제작하신다고함. 나중에 시간나면 시도해 볼것. 아마 이번 프로젝트는 파워포인트가 아닌 다른 툴에 대해 조금은 더 알아둘 필요가 있을 것 같다.
기능명세서
구현해야 하는 기능에 대해 상세하게 설명하는 문서. 해당 기능이 어떻게 작동해야하고, 작동이 되지 않았을때는 어떻게 처리 해야하는지 (에러)에 대한 상태를 기재함.
디테일한 기능명세서 -> 프로젝트의 성공
기능명서에 무엇을 적어야 할까?
기능을 작동하게 하기 위해서는 1)무엇을 2) 어떻게 만드는지 정의되어야 구현됨.
기획자는 무엇을 만들 것인지에 초점을 두고 기재하면 된다. 개발자는 기능명세서를 보고 전체 구조/설계를 함께 고려하여 ‘어떻게’구현한다.
기능명세서 작성 방법 및 프로그램
1) 화면 명세서 우측에 작성
2) 별도의 문서로 작성 *엑셀 등에 별도로 작성하면(내용이 많을 경우) 물론 많은 내용을 기재할 수 있지만 개발자가 보기 불편할 수도 있음.
특별히 정해진 바가 있는 것이 아니며 개발자가 편한 방식으로 전달하면 된다.
*스토리보드(화면설계서)는 처음부터 완벽하기가 힘들다.
실제 개발과 디자인에 돌입하면 모두가 예상하지 못했던 문제들이 나오기 시작하며 무한 토론과 수정을 거쳐야함. 기획자의 커뮤니케이션능력 발휘가 필요하다 하하하하하
그치만 그 누구도 완벽하게 모든 문제를 예상할 수는 없다!!
자료 출처 및 나중에 다시 참고할 것들
UI 설계도에 해당하는 용어들 (pxd.co.kr)
화면설계서 (Wireframe)와 기능명세서 (Functional Specification) | by 송미경 | Medium
IT 기획 연구소 (yslab.kr)
[웹 기획] 화면 설계 용어 정리 (brunch.co.kr) [기획#3]스토리보드(화면설계서) 작성법-템플릿제공 : 네이버 블로그 (naver.com)기획자가 화면설계서(스토리보드)를 만든다구요? 기획자가 무슨 능력을 가지고 있는데요? – 강학주의 e-Biz Story (tistory.com)
기능 명세서 작성 요령
소프트웨어 개발 실패시 중요항목으로 작용
소프트웨어 프로젝트는 낮은 품질과 지연되는 일정, 초과되는 예산으로 악명 높다. 소프트웨어 위기(Software Crisis)라고도 불리는 이런 현상의 원인에는 항상 불완전하거나 잘못된 요구사항이 있다. 스탠디시 그룹(Standish Group)이 352개 기업의 8000개 프로젝트를 조사한 결과에 따르면, 소프트웨어가 실패하는 주요인으로 사용자의 참여 부족(12.8%), 불완전한 요구사항과 명세서(12.3%), 변화하는 요구사항과 명세서(11.8%) 등 요구사항과 관련된 항목이 거의 40%에 달함을 알 수 있다. 이번 호에서는 요구사항과 관련된 최소한의 문서인 기능 명세서(Functional Specification)에 대해 알아보자.
서광열 | [email protected]
요구사항이란?
소프트웨어 프로젝트에 있어 요구사항 분석이란 무엇을 하는 소프트웨어를 만들지 결정하는 단계이다. 실제로 많은 소프트웨어 프로젝트가 무엇을 만들지도 확실히 결정하지 않고, 코드를 작성하고 테스트를 수행하는 모습을 볼 수 있다. 이런 일을 잘할수록 슈퍼 프로그래머로 불리고 칭송 받는 게 현실이다. 하지만 이렇게 작성된 소프트웨어는 최종 사용자가 실제로 원했던 모습이 아니며, 잘 만든 소프트웨어일수는 있어도 결국 쓸모없는 소프트웨어가 된다.
요구사항을 작성하는 목적은 다양하다. 소프트웨어의 설계와 구현뿐만 아니라, 프로젝트의 범위 확정, 비용 측정, 일정 관리, 문서화와 교육 훈련 등 다양한 제반 활동을 지원하는데 있어 요구사항 작성과 관리는 빠질 수 없는 중요한 활동이다. 이처럼, 요구사항은 개발팀뿐만 아니라 해당 소프트웨어와 이해관계를 함께 하는 모든 사람들이 참여하는 중요한 활동이다.
요구사항 분석 단계에서 나오는 최종 산출물은 요구사항 명세서이다. 요구사항 명세서에 포함되는 내용은 무척 다양하다. 시스템의 목표, 독자, 전체 기술 요약, 프로젝트 제약 조건 등이 서론으로 포함되고, 본문에는 기능 명세의 필요에 따라 자료 흐름도(Data Flow Diagram)이나 프로세스 명세서(Process Specification), ERD (Entity-Relationship Diagram) 등이 포함되기도 한다. 또한 표준, 법률 등에 의한 외부 규제나 성능 관련 내용을 포함한 비기능 요구사항(Non-functional Requirement), 프로젝트가 완료되었을 때의 검증 기준 등도 문서에 포함된다.
하지만 중소규모의 프로젝트에서는 이런 요구사항 문서 작성이 부담인 경우가 많으며, 압도적인 문서의 양에 겁먹어 사실상 아무런 문서화를 하지 않는 경우가 비일비재하다. 현재도 중소기업 간의 소프트웨어 계약에서는 시스템을 요약적으로 기술한 1-2장의 짧은 문서가 요구사항 명세서를 대신하는 경우가 많으며, 이런 명세서의 모호한 구절은 이후 프로젝트의 범위와 종료 여부를 놓고 논쟁의 대상이 된다.
기능 명세서
기능 명세서는 앞서 언급한 요구사항 명세에 들어갈 내용 중에 하나이며, 소규모 프로젝트에서는 사실상 기능 명세서만 제대로 작성되어도 프로젝트를 성공적으로 이끌 수 있다. 여기서 말하는 소규모란 개발자 1명이 일주일 이상 개발해야 하는 복잡도를 가진 모든 소프트웨어를 통칭한다. 1명의 개발자가 하루 이틀 작성하는 미니 프로그램을 제외한다면, 모든 소프트웨어는 명세 없이는 항상 일정을 초과하고 품질이 낮은 소프트웨어를 만들 수밖에 없다.
그렇다면 기능 명세란 무엇인가? 기능 명세란 1) 사용자의 관점에서 2) 최종 제품이 3) 어떤 모습이며 4) 어떻게 동작할 것인지를 기술한 문서를 말한다. 기능 명세란 어디까지나 최종 사용자의 입장에서 기술한 문서이기 때문에 내부 구현이나 설계 이슈를 포함하지 않는다. 또한 최종 제품에 대해서 이야기하기 때문에 각 소프트웨어 컴포넌트들이 어떻게 상호 작용하는지도 중요하지 않다. 그저 이 프로젝트가 끝나면 나오는 최종 산출물이 어떤 모습이며 어떤 일을 수행하는지를 자세히 기술하는 것이다.
실제로, 많은 개발자들이 무엇을 만들 것인지와 어떻게 만들 것인지를 혼동한다. 무엇과 어떻게 사이에 명확한 경계가 존재하지는 않지만, 소프트웨어 요구사항도 파악하기 전에 설계가 시작되어서는 곤란하다. 최종 소프트웨어가 어떤 모습인지를 확실하지 않은 채 UML을 이용해 클래스 다이어그램부터 그리고 있어서는 곤란하다. 이런 시스템은 필연적으로 주객이 전도되어 설계가 요구사항의 변경이나 삭제를 요구한다. 기능 명세는 ‘무엇’을 만들 것인지를 분명히 하는 문서라고 보면 된다.
개발자 입장에서 기능 명세는 개발 과정에서 궁금할 수 있는 모든 질문에 답을 해놓은 문서가 존재한다는 뜻이다. 또한 명세는 고객 혹은 최종 사용자의 승인을 받은 문서이므로, 명세만 따라서 만들면 고객이 실제로 원하는 소프트웨어를 작성할 수 있다는 장점이 있다. 또한 분쟁의 소지가 생겼을 때는 결국 명세에 명시된 내용을 근거로 판단을 내릴 수 있다 (물론 상당수의 소프트웨어 프로젝트에 명세는 무시되고, 고객의 머릿속에 있는 요구사항이 최우선이긴 하지만 말이다).
종종 기능 명세를 기술 명세(Technical Specification)와 혼동하는 경우가 있다. 기술 명세는 프로그램 내부 구현에 대한 기술이며, 데이터 구조, 관계형 데이터베이스 모델, 프로그래밍 언어, 알고리즘, 플랫폼 등을 기술하는 것이 일반적이다. 기술 명세는 설계 및 구현에 직접적인 도움을 주기 위한 것이며 사용자의 관점에서 시스템을 기술한 기능 명세와는 다르다.
쉽게 커뮤니케이션이 가능한 10명 이하 소규모 개발 조직에서는 대부분의 의사소통이 구두로 이루어지므로, 기술 명세를 생략하는 경우가 많지만 기능 명세는 개발팀만을 대상으로 하지 않는다는 면에서 여전히 유효하다.
기능 명세에 들어갈 내용
기술 명세의 중요성을 설파하고 나면, 기술 명세의 템플릿을 원하는 분들이 많다. 기술 명세를 한 번도 작성해 본 적이 없는 분들의 입장에서 템플릿은 기술 명세 문서를 작성하는 단서가 되기도 하지만, 무비판적으로 모든 템플릿의 항목을 채우려는 문서화 노력은 보통 불필요한 노동으로 끝나는 경우가 많다.
기술 명세는 프로젝트 성격에 따라 달라지지만 일반적으로 다음 요소들은 반드시 포함되며 추가 설명이 필요 없을 정도로 자세히 기술되어야 한다.
1) 시나리오
기술 명세는 사용자 관점에서 시스템을 바라본 것이므로, 이를 가장 잘 기술하는 방법은 실제 사용자를 가정하고 시스템을 어떻게 쓸 것인지 시나리오를 작성해 보는 것이다. 예를 들어, 온라인 영어 학습 사이트에 대한 기술 명세를 쓴다고 하면, 성적은 중위권이며 방과 후에 PC방에서 게임하는 것이 취미인 15살 박 모 군과 같이 구체적인 인물을 설정하고, 이런 인물이 영어 학습 시스템을 사용할 때 어떤 패턴을 보일 것인지를 기술하는 것이 효과적이다.
이때 시나리오는 유스 케이스(Use Case)가 될 수도 있고, 조금 더 단순화된 형태인 유저 시나리오(User Scenario)가 될 수도 있다. 소프트웨어 방법론이나 프로젝트의 성격에 따라 어떤 방식을 선택해도 무방하다. 하지만 원칙은 시스템의 모든 기능을 한 번 이상을 이용할 수 있도록 충분히 많은 시나리오를 작성해서, 개발자가 시스템을 설계할 때 전혀 고려된 적이 없는 상황을 마주치는 일이 생기지 않도록 해야 한다.
기능 명세의 시나리오는 무엇을 테스트해야할지 단서를 제공한다는 측면에서 소프트웨어 테스트나 품질보증(Quality Assurance, QA) 팀에게도 소중한 문서이다. 특히 시스템의 기능 테스트(Functional Test)는 유저 시나리오에 바탕을 뒀을 때 가장 효과적이다. 유저 시나리오는 최종 제품이 원래 요구사항에 기술된 요소를 모두 충족시켰는지를 판단하는 중요한 근거가 되기 때문이다.
2) 세부사항
기능 명세를 작성함에 있어서는 세부사항이 무척 중요하다. 특히, 무엇인가 잘못될 수 있는 경우 모든 가능성에 대해서 꼼꼼히 명세를 작성해야 한다. 예를 들어, 전자상거래 웹페이지의 로긴 페이지를 만든다고 한다면 다음과 같은 이슈를 모두 고민해야 한다.
1) 등록되지 않는 ID로 로긴한 경우?
2) 등록된 ID지만 패스워드가 틀린 경우?
3) 같은 ID에 3번 이상 다른 패스워드를 입력했을 경우 추가적인 로그인 시도를 금지할 것인가?
4) 아이디와 패스워드를 잃어버린 사람이 이를 되찾는 방법은?
5) 패스워드 관련 힌트를 제공할 것인가?
6) 한 번 로긴한 후에는 얼마나 오래 세션이 지속되는가?
세부사항을 작성할 때, UI를 중심으로 기능을 기술하는 것이 가장 효과적이다. 특히, 웹개발의 경우 각각의 페이지를 기준으로 소프트웨어가 어떻게 동작하는지 설명하는 방법이 일반적이다. 모든 페이지에 고유의 이름을 붙이고, 각 페이지에서 나오는 메뉴와 UI 위젯이 어떤 역할을 하는지 구체적으로 기술한다.
3) 열린 이슈
명세를 작성하는 목적은 프로젝트 시작 전에 최대한 많은 요구사항을 끌어내고 최종 산출물의 모습을 파악하는 데 있지만, 필연적으로 일부 문제들은 미해결 상태로 남아있게 된다. 이런 부분은 기능 명세에 분명히 기술하여 프로젝트가 진행
되면서 해결해 나가야 한다.
변경 추적
기능 명세뿐만 아니라 모든 개발 관련 문서의 생명은 얼마나 변경 추적이 잘 되느냐에 달려 있다. 명세와 관련된 가장 큰 불만은 명세를 작성한 이후 프로젝트 요구사항이 변화하고 설계 및 코드에 수정이 일어남에도 불구하고 명세가 갱신되지 않는다는 데에 있다. 따라서 개발자들을 비롯한 이해 관계자들은 명세를 신뢰하지 않게 되고, 쓸모없다고 생각하게 된다.
특히 요구사항 분석, 설계, 구현, 테스트, 유지 보수를 한 번씩만 거치는 폭포수 모델(Waterfall Model)을 따르는 조직일수록 이런 경향이 강하게 나타난다. 요구사항 분석은 프로젝트 초기에 단 한 번만 이루어지며, 이후 설계나 구현은 요구사항 변경 요청 시에 수정되지만 정작 요구사항 문서는 그대로 남는 경우이다. 이런 조직에서는 시간이 지날수록 기능 명세를 비롯한 요구사항 문서의 질은 극도로 낮아지며 유지 보수 단계에서는 누구도 기능 명세를 보지 않는 상황이 벌어진다.
누가 기능 명세를 쓰는가?
기능 명세와 관련된 가장 중요한 질문은 누가 기능 명세를 쓰느냐는 것이다. 앞서 언급한 것처럼 기능 명세는 개발팀뿐만 아니라, 마케팅, 문서화팀, QA팀 등 소프트웨어 프로젝트에 관련된 모든 팀이 관여하는 문서이고, 다양한 이해 관계자들을 만나서 요구사항을 끌어낼 수 있는 능력이 필요하다. 따라서 어느 정도 개발 지식이 있을 뿐만 아니라 대인 관계와 커뮤니케이션 능력이 뛰어난 사람이 명세를 작성해야 한다.
덕분에 국내에서는 기능 명세를 쓰는 사람이 개발팀장인 경우가 많지만, 훌륭한 프로그래머가 훌륭한 커뮤니케이션 능력을 갖추고 글도 잘 쓰는 경우는 국내외를 막론하고 무척 드물다. 또한 내부 구현이나 기술적인 세부 사항을 너무 잘 알고 있다는 점이 부작용으로 작용한다. 뛰어난 개발자 출신일수록 기능 명세가 아닌 기술 명세를 작성하는 경우가 많다.
기능 명세를 개발팀장이 작성하는 경우가 많은 이유는 기능 명세 작성을 개발팀 리더의 역할로 보는 관점 때문이다. 하지만 기능 명세를 작성하는 사람은 개발자나 테스터와는 다른 전문 영역으로 보는 것이 옳다. 실제로 마이크로소프트나 구글 등 대형 소프트웨어 업체는 신입 사원을 모집할 때부터 직군을 프로그램 매니저, 개발자, 테스터로 구분하고 있는데, 프로그램 매니저의 주요 역할이 요구 사항을 수집하고 기능 명세를 작성하는 데 있다.
기능 명세는 소프트웨어 요구사항의 핵심이며, 설계와 구현의 바탕이 되는 중요한 문서이다. 아직까지 기능 명세 없이 곧바로 소프트웨어를 작성하는 조직이 있다면, 기능 명세를 작성해 볼 것을 권한다. 기능 명세에 대한 더 자세한 정보가 궁금한 사람은 참고문서를 참고하기 바란다.
필자소개
현재 (주)노매드커넥션의 CTO로 재직 중이다. 관심 분야는 플랫폼, 가상 머신, 프로그래밍 언어 등이며 현재는 미디어 플랫폼에 많은 관심을 가지고 연구 개발을 진행 중이다. 개인 블로그인 서광열의 소프트웨어 이야기(http://skyul.tistory.com)을 통해서 소프트웨어 개발과 IT 산업에 대한 생각을 정리하고 있다.
제공 : DB포탈사이트 DBguide.net
출처 : 경영과컴퓨터 [2007년 11월호]
기능 명세서, 요구사항 정의서는 무엇일까?
내가 너무 당연하게 넘어갔던 것들에 대해 다시 생각해볼 계기가 많아지고 있다. 의외로 it 업무를 오랫동안 담당했던 사람들과 커뮤니케이션하는 일은 어렵지 않다. 하지만 전혀 다른 분야, 예를 들어 병원 일을 하다가 서비스 기획 업무로 넘어가려는 사람들, 부동산 업무를 하다가 기획 업무를 하려는 사람들과 대화를 할 때 더 깊게 공부를 하게 된다. 나조차 너무 당연하게 넘어갔던 용어들이 낯설게 느껴질 수 있구나, 어려울 수 있구나 , 이런 생각을 다시금 해보게 된다. 그중 대표적인 예시가 바로 ‘기능 명세서’와 ‘요구사항 정의서’이다.
“누나, 그런데 기능 명세서는 뭐고 요구사항 정의서는 뭐예요?”
“이거 용어를 누가 만든 거예요? 용어가 비슷한 게 뭐가 다른 거예요?”
나는 이 두 가지 질문을 부끄럽게도 한 번도 심도 깊게 고민해보지 않았다. 그래도 웹 개발, 서비스 기획 프로젝트 경험이 10년 차 이상인데 이런 용어가 정확히 어떻게 다른지 관심조차 두지 않았다. 너무 당연하게 여겼다. 양산 프로젝트를 진행할 때 너무나 당연하게 ‘요구사항 정의서’를 작성하였고 때가 되면 ‘기능 명세서’를 산출물로 매회 리뷰를 시작하였다. 때론 내가 이러한 요구사항 정의서나 기능 명세서를 작성해야 하는 시기가 있는 경우도 왕왕 있었다.
동생이 물어봤던 요구사항 정의서는 무엇이고, 대체 기능 명세서는 무엇을 의미하는 것일까?
요구사항 정의서
요구사항 명세서, 요구사항 기술서라고도 부르는 ‘요구사항 정의서’는 문구 그대로 고객의 요구사항을 정리한 내용이다. 웹/앱 프로젝트나 서비스 프로젝트를 진행하는 이유는 무언가 목적이 있기 때문이다. 어떤 기능이 필요할 수도, 문제 되는 상황을 해결하고자 프로젝트를 진행하게 된다.
요구사항 정의서에 필수적으로 필요한 요소는 요구사항 구분, 요구사항 ID, 요청사항(기능), 요청사항에 대한 설명, 요청자, 수용 여부가 필요하다. 회사나 수행하는 프로젝트마다 요구사항 기술서는 천차만별이기 때문에 무조건 이것을 따라야 한다는 기준은 없다. 편의에 따라 필요한 요소는 자유롭게 변경하여 사용할 수 있다.
요구사항 정의서 예시
이 프로젝트의 경우 요구사항 정의서를 꽤 상세하게 기술한 편인데 그중에서도 요구사항 구분(업무 구분), 요구사항 ID, 요구사항명, 설명은 필수적인 요소라고 볼 수 있다.
요구사항 구분 (업무 구분)
요구사항이 앱인지, 웹인지, 웹에서도 계정 정보인지, 대시보드인지 등을 명확하게 구분한 칼럼이다. 프로젝트가 크면 클수록 어떤 업무인지 분간하기가 어렵다. 웹이나 앱이라도 대시보드를 만드는 것인지, 환불 시스템을 기획하는 것인지에 따라 개발 내용이 달라진다. 그래서 먼저 크게 해당 프로젝트가 어떤 영역을 담당하는 것인지 보여주면서 개발 항목들을 직관적으로 보여준다.
요구사항 id
때론 요구사항명 자체가 꽤 길 수 있다. ‘쇼핑몰 회사 공용 계정’을 만든다고 가정하였을 때 요구사항 명칭을 일일이 사용한다면 더 헷갈리고 복잡하다. 이때 간단하게 편하고 부르면서 관리하기 좋은 id로 치환해 사용한다면 효율적으로 논의를 이어나갈 수 있다.
요구사항명/ 요구사항 설명
요구사항 제목과 설명에 대한 부분이다. 주로 개선을 하거나 해결해야 하는 기능 명칭이 요구사항명에 해당된다. 처음 보는 사람도 쉽게 이해할 수 있도록 요구사항명에 덧붙여 간략히 보충 설명을 써준다.
그런데 왜 이렇게 요구사항 정의서를 만드는 것일까?
왜 이렇게 문서화하여 명세서를 만들까? 일을 위한 일이 아닐까?라는 생각을 할 수 있다. 하지만 요구사항 명세서로 인해 프로젝트 종료 이후 불필요한 잡음을 방지할 수 있다. 요구사항 정의서는 클라이언트와 프로젝트 수행자 간 합의서이기 때문이다.
문서 기반으로 필요 기능을 정리하면 보다 명확하게 필요 사항들을 합의해 나갈 수 있다. 모호하거나 막연했던 필요사항, 해결 사항들이 일목요연하게 정리를 해나가면서 빠르게 의사를 타진해 나갈 수 있기 때문이다.
수많은 요구사항 중 가장 긴급하고 중요도가 높은 사항이 무엇인지 우선순위 기반으로 알 수 있다. 100가지 요구사항 모두가 가 급하고 중요한 것은 아닐 테다. 가장 클라이언트가 필요한 것이 무엇이고 무엇을 가장 중요하게 다뤄야 할지 초반에 정리할 수 있어 효율적으로 업무 처리가 가능해진다.
그렇다면 기능 명세서는 무엇?
요구 명세서와 비슷하면서도 헷갈리는 개념이 바로 기능 명세서이다. 요구사항 정의서, 기능 명세서라는 이름이 헷갈려 두 용어를 혼용하여 사용하기도 한다. 하지만 기능 명세서를 이야기할 땐 최종 아웃풋에 대한 기능들을 중심으로 설명된 자료라고 볼 수 있다. 최근에 진행했던 프로젝트로 ‘모 쇼핑몰의 환불 서비스 개선 기획’ 업무를 한 적이 있었다. 인포메이션 아키텍처, 와이어프레임, GUI 작업을 한 뒤 최종적으로 이 서비스에 어떤 기능들이 정리된 내용들이 필요했다. 그래야 리뉴얼된 서비스에 무엇이 기존과 달라졌고 어떤 것들을 할 수 있는지 이해시킬 수 있었기 때문이다.
클라이언트도 마찬가지로 프로젝트를 의뢰하고 다 만들어지면 검수를 하게 된다. 검수를 할 땐 해당 서비스에 담겨있는 기능 위주로 테스트를 하게 되므로 ‘기능 명세서’가 기준이 된다. 서비스 착수는 클라이언트의 요구사항 정의서부터 시작하기에 클라이언트가 원하는 요구사항들과 일부 겹칠 수 있다. 하지만 요구사항 정의서가 기능 명세서와 모두 일치하지는 않는다. 모든 요구사항들을 그대로 반영하기엔 일정, 자원 등의 리소스가 한정적이기 때문이다. 그래서 우선순위에 따라 반영된 기능들이 최종적으로 담긴 문서가 기능 명세서라고 볼 수 있다.
내가 관심 있는 분야에 대해 공부할수록 감탄이 적어진다. 새로운 무언가를 알아간다는 희열보다 식상하게 되고, 무심하게 바라보게 된다. 요구사항 정의서, 기능 명세서와 같은 용어, 내가 작성해야 하는 문서들 역시 너무나 당연하게 생각되어 때론 무심하게, 때론 귀찮게 느껴졌다. 하지만 해당 분야를 처음 접하는 사람에게 근본적이고 당연하게 생각하는 용어에 대한 질문을 받으면 당연함이 없어지고 낯설게, 다시 한번 바라보게 된다.
“작가님은 모빌리티 분야 중에서 어떤 게 가장 인상적이셨어요?”
오늘도 누군가 내게 이런 질문을 하였다. 순간 ‘가장’이라는 단어에 멈칫하며 대답을 얼버무렸다. 수많은 서비스를 접하면서 비슷하게 여겼고 언제부터인가 별다른 감흥이 없었기 때문이다. 이 질문을 받으며 그저 머릿속으로 분석하고 제3자로서 서비스를 바라본 나 자신이 부끄럽게 느껴졌다.
서비스 기획에 대한 공부를 거듭하고, 직접 실무 프로젝트를 진행하면서 다양한 사람들과 계속 교류를 해야겠다는 생각을 하였다. 질문을 서로 주고받으면서 ‘당연히 사용한 용어’들을 낯설게 바라보는 연습을 해 나가야겠다. 누구나 이해하고 통용할 수 있는 개념 정리로 서로 이해하고 교류할 때 새로운 아이디어가 나오고 좀 더 괜찮은 방법론이 나타나지 않을까. 타인의 지식과 나의 지식이 만나 서로 융합해 나가기를 희망해본다.
기능명세서에 대해
Tech 기능명세서에 대해 비즈니스 캐주얼 ・ URL 복사 본문 기타 기능 공유하기 신고하기 SRS Software Requirements Specifications와 SAD, Software Architecture Document가 있습니다. 문서의 양은 30-50페이지를 넘지 않아야 하고요. SRS는 기능명세서라고도 불립니다. 스펙을 정하여 모든 개발의 분야, 일정 예측, 설계 구현, 테스트의 기준이 되고, 개발 진행 상황 파악, 의사소통을 위한 것입니다. 소프트웨어 프로젝트에 있어 요구사항은 무엇을 하는 소프트웨어를 만들지 결정하는 것입니다. 요구사항을 작성하는 목적은 프로젝트의 범위 확정, 비용 측정, 일정 관리, 문서화 등 다양한 활동을 지원하는 데 있습니다. 요구사항 분석 단계에서 나오는 최종 산출물은 요구사항 명세서이니다. 명세서에 포함되는 내용은 다양합니다. 시스템의 목표와 독자, 전체 기술 요약, 프로젝트 제약 조건 등이 서론으로 포함되고, 본문에는 자료 흐름도나 프로세스 명세서 ERD 등이 포함됩니다. 다만 대부분 시간에 쫓기거나 비용에 쫓겨 문서롸를 하지 않는 경우가 비일비재합니다. 대부분은 시스템을 요약적으로 기술한 1-2장의 짧은 문서로 명세서를 대신하는 경우가 많으며 이런 모호함이 프로젝트 종료후 논쟁이 대상이 되기도 합니다. 아무튼 기능 명세서는 요구사항 명세에 들어가야 되는 내용 중 하나이며, 이 기능 명세서 하나만 제대로 작성되어도 프로젝트를 성공적으로 이끌 수 있습니다. 기능명세서는 무엇인가? 기능명세란 사용자 관점에서 최종제품이 어떤 모습이며 어떻게 동작할지를 기술한 문서입니다. 최종 사용자의 입장에서 기술한 문서이기 때문에 내부 구현 또는 설계 이슈는 포함되지 않습니다. 기능명세는 이렇듯 무엇을 만들지를 분명히 하는 문서라고 볼 수 있습니다. 개발자 입장에서 기능 명세는 개발 과정에서 궁금할 수 있는 모든 질문에 답을 해놓은 문서가 존재한다는 뜻입니다. 또한 기능명세는 고객 혹은 최종 사용자의 승인을 받은 문서이므로, 명세만 따라서 만들면 고객이 실제로 원하는 프로그램을 만들 수 있습니다. 분쟁의 소지도 줄어들죠. 참고로 기능 명세와 기술 명세는 전혀 다른 내용입니다. 기술 명세는 프로그램 내부 구현에 대한 기술입니다. 기술명세는 설계 및 구현에 직접적인 도움을 주기 위한 것이고 사용자 관점에서 시스템을 기술한 기능명세와는 다릅니다. 소규모의 개발조직에서의 프로그래머들은 기술 명세를 생략하는 경우가 많습니다. 왜냐하면 다들 아는 내용이기 때문이며 소규모 개발조직이기 때문입니다. 하지만 기능 명세는 개발자뿐 아니라 다른 비개발자 또는 커뮤니케이션을 하기 위해서도 필요합니다. 기술명세서에 들어갈 내용은요? 1) 시나리오 기술명세는 철저히 사용자의 관점에서 시스템을 바라본 것이므로 실제 사용자를 가정하고 시스템을 어떻게 쓸 것인지 시나리오를 작성하는 것이 중요합니다. 이때 시나리오는 유스 케이스 (use case)가 될 수 있고, 유저 시나리오 (user scenario)가 될 수 있습니다. 소프트웨어 방법론이나 프로젝트의 성격에 따라서 어떤 방식을 선택해도 무방합니다. 원칙은 모든 기능을 한 번 이상 이용할 수 있도록 충분히 많은 시나리오를 작성해서 개발자가 시스템을 설계할 때 전혀 고려된 적 없는 시나리오가 없도록 해야 합니다. 기능 명세의 시나리오에 테스트를 어떤 부분을 해야 하는지 제공한다면 QC에도 도움됩니다. 2) 세부사항 기능 명세를 작성하면서 세부사항은 정말 중요한 부분입니다. 특히 잘못될 가능성이 있는 경우에 대해서 꼼꼼히 명세를 작성해야 합니다. 또한 세부사항의 경우 UI를 중심으로 기능을 기술하는 것이 효과적입니다. 특히 웹 기반인 경우 페이지를 기준으로 소프트웨어가 어떻게 동작하는지 설명하는 방법이 일반적입니다. 모든 페이지에는 고유의 이름을 붙이고 각 페이지에서 나오는 메뉴와 UI 위젯이 어떤 역할인지 구체적으로 작성해야 합니다. 3) 이슈체크 명세를 작성하는 이유 중 하나는 프로젝트 시작 전에 최대한 많은 요구사항을 끌어내고 최종 산출물의 모습을 파악하는데 있지만 일부 문제의 경우 미해결 상태로 남아있게 됩니다. 이런 부분의 경우 기능 명세에서 분명히 기술해서 프로젝트가진행되면서 해결해 나가야 합니다. https://siran.tistory.com/175 소프트웨어 요구사항 명세서 (기능명세서)에 대해서 알아보자 안녕하세요 시란입니다. 이번시간에는 소프트웨어를 설계함에 있어 필요한 문서인 기능명세서에 대해서 알아보려고 합니다. 프로젝트 처음 시작할 때 아무리 시간이 없다고 해도 필요한 문서가 2가지 있습니다 문.. siran.tistory.com 인쇄
소프트웨어 요구사항 명세서 (기능명세서)에 대해서 알아보자
안녕하세요 시란입니다.
이번시간에는 소프트웨어를 설계함에 있어 필요한 문서인 기능명세서에 대해서 알아보려고 합니다.
프로젝트 처음 시작할 때 아무리 시간이 없다고 해도 필요한 문서가 2가지 있습니다
문서의 양은 30~50페이지를 넘지 않는다.
SRS 일명 Software Requirements Specification 과, SAD Software Architecture Document 입니다.
그중 SRS에 대해서 얘기하려고 알아보겠습니다.
SRS가 중요한것은 스펙을 정함으로써 모든 개발의 모든 분야 일정 예측, 설계 구현, 테스트의 기준이 되고 개발 진행 상황파악, 의사소통이 가능해집니다.
소프트웨어 프로젝트에 있어 요구사항은 무엇을 하는 소프트웨어를 만들지 결정하는 단계입니다.
요구사항을 작성하는 목적은 프로젝트의 범위확정, 비용 측정, 일정 관리, 문서화 등 다양한 활동을 지원하는데 있다.
요구사항 분석 단계에서 나오는 최종 산출물은 요구사항 명세서입니다. 명세서에 포함되는 내용은 다양합니다. 시스템의 목표와 독자, 전체 기술 요약 , 프로젝트 제약조건 등이 서론으로 포함되고, 본문에는 자료 흐름도나 프로세스 명세서 ERD등이 포함됩니다.
하지만 대부분 시간에 쫒기거나 비용에 쫓겨 문서화를 하지 않는 경우가 비일비재합니다.
대부분은 시스템을 요약적으로 기술한 1-2장의 짧은 문서로 명세서를 대신하는 경우가 많으며 이런 모호함이 프로젝트 종료후 논쟁의 대상이 된다. (하지만 본인은 본인 회사의 시스템 개발이므로 해당되지는 않는다.)
아무튼 기능 명세서는 요구사항 명세에 들어가야 되는 내용 중 하나며, 이 기능 명세서 하나만 제대로 작성되어도 프로젝트를 성공적으로 이끌 수 있다.
그렇다면 기능명세서는 무엇인가?
기능명세란 사용자 관점에서 최종제품이 어떤모습이며 어떻게 동작할 것인지 를 기술한 문서를 말한다.
최종 사용자의 입장에서 기술한 문서기 때문에 내부 구현 또는 설계 이슈는 포함되지 않습 니다.
기능명세는 이렇듯 무엇을 만들 것인지를 분명히 하는 문서라고 보면 됩니다.
개발자 입장에서 기능 명세는 개발과정에서 궁금할 수 있는 모든 질문에 답을 해놓은 문서가 존재한다는 뜻입니다.
또한 명세는 고객 혹은 최종 사용자의 승인을 받은 문서이므로, 명세만 따라서 만들면 고객이 실제로 원하는 프로그램을 만들수 있다. 분쟁의 소지도 줄어든다. ( 본인의 경우 .. 회사가 곧 고객인 셈이므로.. 해당이 없다. )
참고로 기능 명세와 기술 명세는 전혀 다른 내용입니다. 기술 명세는 프로그램 내부 구현에 대한 기술입니다. 기술명세는 설계 및 구현에 직접적인 도움을 주기 위한 것이고 사용자 관점에서 시스템을 기술한 기능 명세와는 다릅니다.
소규모의 개발조직에서의 프로그래머들은 기술 명세를 생략하는 경우가 많다. 왜냐하면 다들 아는 내용이기 때문이며 소규모 개발조직이기 때문이다. 하지만 기능 명세는 개발자뿐 아니라 다른 비개발자 또한 커뮤니케이션을 하기 위해서 필요한 문서입니다.
그렇다면 기술명세에 들어갈 내용은 무엇인가?
기술명세는 아래와 같은 요소들이 필요합니다. 특히나 이해가 잘 가능하도록 자세히 기술되어야 합니다.
1) 시나리오: 기술명세는 철저히 사용자 관점에서 시스템을 바라본 것이므로 실제 사용자를 가정하고 시스템을 어떻게 쓸 것인지 시나리오를 작성하는것이 중요합니다. (다만 본인의 경우 회사 내부에서 컨펌이 가능하므로 이부분은 편할듯)
이때 시나리오는 유스 케이스가 될수도있고 유저 시나리오가 될 수 도 있다. 소프트웨어 방법론이나 프로젝트의 성격에 따라 어떤 방식을 선택해도 무관합니다. 아무튼 우너칙은 모든 기능을 한번 이상을 이용할 수 있도록 충분히 많은 시나리오를 작성해서 개발자가 시스템을 설계할 때 전혀 고려된 적 없는 시나리오가 없도록 해야합니다. 기능 명세의 시나리오에 테스트를 어떤 부분을 해야하는지 제공한다면 QC에도 도움이 될 것 입니다.
2) 세부사항: 기능 명세를 작성하면서 세부사항은 정말 중요한 부분입니다. 특히 잘못될 가능성이 있는 경우에 대해서 모든 가능성에 대해서 꼼꼼히 명세를 작성해야 합니다. 또한 세부사항의 경우 UI를 중심으로 기능을 기술하는 것이 가장 효과적입니다.
특히!! 웹 기반인 경우 페이지를 기준으로 소프트웨어가 어떻게 동작하는지 설명하는 방법이 일반적입니다.
모든 페이지에는 고유의 이름을 붙이고 각 페이지에서 나오는 메뉴와 UI 위젯이 어떤 역할인지 구체적으로 작성해야 합니다.
3) 이슈체크: 명세를 작성하는 이유중 하나는 프로젝트 시작전에 최대한 많은 요구사항을 끌어내고 최종 산출물의 모습을 파악하는데 있지만 일부 문제의 경우 미해결 상태로 남아있게 됩니다. 이런 부분의 경우 기능 명세에서 분명히 기술해서 프로젝트가 진행되면서 해결해 나가야 합니다.
이렇게 기술명세서에 대해서 알아보았습니다.
업무하시는데 참조 및 도움이 되었으면 합니다.
다음번에도 좋은 포스팅으로 찾아뵙겠습니다. 감사합니다.
소프트웨어 기능 명세서 작성 방법 – KimC Blog
모든 사람들이 명세서 작업을 해야한다고 생각은 하지만, 아무도 명세서 작업을 하지 않습니다.
왜 명세서 작업을 하지 않을까요?
명세서 작업단계를 건너뛰면 시간을 절약할 수 있다고 말합니다.
이런 사람들은 명세서 작성 작업이 NASA에서 우주 왕복선을 만드는 공학도나 큰 규모의 보험회사 직원에게나 필요한 사치쯤으로 치부합니다.
명세서 작업을 하지 않는 관례는 소프트웨어 프로젝트에서 가장 크고 불필요한 위험 요인을 짊어지는 행동입니다. 이는 등에 옷가지만을 걸친 다음에 날기를 기대하며 모하비 사막을 건너려고 출발하는 것만큼이나 바보스럽습니다.
명세서 작업을 생략하고 바로 코드 작성으로 뛰어드는 프로그래머나 소프트웨어 개발자는 스스로를 허리춤에서 순식간에 총을 뽑는 멋진 총잡이라고 생각하는 경향이 있습니다.
하지만 결코 그렇지 않으며, 이런 개발자일수록 놀라 자빠질 정도로 생산성이 낮습니다.
즉, 형편 없는 코드를 작성하거나 조잡한 소프트웨어를 양산하며, 결국 전혀 쓸데없는 거대한 위험을 자초해 프로젝트를 위협합니다.
기능 명세 – FUNCTIONAL SPECIFICATION
완전히 사용자 관점에서 제품이 어떻게 동작할지를 기술합니다. 어떻게 구현했는지는 신경도 쓰지 않습니다. 기능에 대해 이야기하고, 화면, 메뉴, 대화상자와 같은 사용자 인터페이스 부품을 명세합니다.
기술 명세 – TECHNICAL SPECIFICATION
프로그램 내부 구현을 기술합니다. 자료구조와 관계형 데이터베이스 모델과 프로그래밍 언어, 도구, 알고리즘 선택과 같은 항목을 다룹니다.
* 좋은 기능 명세에 대한 아이디어!
1. 면책 조항
방어적인 내용 “이 명세는 완벽하지 않습니다.” 시간이 흘러 명세가 완벽하게 되면 다음과 같이 면책 조항을 바꿀 수 있다. “제가 알기로는 이 명세는 거의 완벽합니다. 하지만 무언가 빠뜨렸을 경우에는 제게 말씀해주세요”
2. 저자
명세는 1명이 전담해서 작성해야만 합니다. 큰 제품일 경우라면, 여러 부문으로 쪼갠 다음에 각각을 개인에게 할당해서 독자적으로 명세하게 합니다. 어떤 회사는 명세에 이름을 넣어서 개인의 공로를 인정하는 관례를 이기적인 행동이나 팀워크를 해치는 일이라고 생각합니다.
하지만 이는 허튼 소리입니다. 사람들은 자신이 명세한 사항에 대해 책임감과 소유의식을 느껴야 합니다. 명세에서 무언가 잘못되면, 이를 수정할 책임이 있는 명세서 소유자를 지정해야 하며 이 사람 이름이 바로 명세서에 찍혀 있어야 합니다.
3. 시나리오
생생하고 현실적인 시나리오를 만들수록, 실 사용자나 가상으로 창조한 사용자 모두를 위한 제품을 더 잘 만들 수 있습니다.
4. 회피목표
팀 단위로 제품을 만들 때 없으면 못살겠다는 이유만으로 실제든 상상이든 간에 각자 좋아하는 상큼한 기능을 넣으려는 경향이 있습니다. 이렇게 불필요한 기능을 쳐내는 가장 좋은 방법으로 명세에 회피목표 항목을 추가합니다.
5. 개괄
개괄은 명세를 위한 목차와 유사합니다. 개괄은 간단한 흐름도이거나 광범위한 아키텍쳐 관점에서 본 토론일 수도 있습니다. 모든 사람이 숲을 보기 위해 목차를 읽습니다. 이렇게 해야 나무도 의미가 있을 것입니다.
6. 세부사항
웹 타입 서비스를 설계할 때 세부사항을 정리하는 좋은 방법은, 모든 가능한 화면에 기준이 되는 이름을 붙인 다음, 너무나도 자세해 못 견딜 만큼 따분한 세부사항을 매 화면마다 기술하는 장을 제공하는 겁니다.
세부사항은 기능 명세에서 가장 중요한 핵심입니다.
7. 미해결 문제
명세 첫 버전에 미해결 문제를 남겨놓아도 나쁘지 않습니다. 문제점을 쉽게 찾을 수 있도록 특별한 스타일을 적용해서 표시를 하고, 적당한 대안이 있으면 이를 논의합니다. 프로그래머가 작업을 시작할 무렵에 이런 모든 미해결 사항들을 짚어놔야 합니다.
단순히 프로그래머가 모든 쉬운 작업부터 시작하도록 내 버려두고, 나중에 미 해결 문제를 푸는 방법이 옳다고 생각할지도 모르겠습니다. 하지만, 이는 잘못된 생각입니다. 프로그래머가 코드를 구현하려고 시도할 무렵에 나타나는 새로운 문제점과 씨름하는 과정에서 또 다른 문제점이 나타날 것이며, 당신이 미리 알고 있었으며, 예전에 끝냇어야 하는 미해결 문제 역시 그대로 남아 있을 것입니다. 설상 가상으로 난이도 높은 문제를 해결하는 과정이 코드를 작성하는 방법에도 상당한 영향을 미칠지도 모르겠습니다.
8. 방주 (SIDE NOTE)
명세를 작성하는 동안에 프로그래머, 테스터 , 마케팅팀원, 기술집필가와 같은 다양한 청중이 있음을 기억해야 합니다. 명세를 작성할 때 단지 특정 그룹에만 유용한 활자화한 사실을 고려하면 좋겠습니다. 예를 들어 프로그래머를 위해 기술적으로 유용한 몇가지 세부 사항을 기술하는 메시지를 ‘기술노트’항목으로 구분해서 기록할 수 있습니다. 마케팅 팀원은 이런 메시지를 무시하지만 프로그래머는 이런 메시지를 탐독합니다.
9. 명세는 지속적으로 개정해야 합니다.
주기적으로 개정하여 현실을 반영합니다. 명세는 항상 제품이 동작하는 원리를 최대로 반영하는 그림자 입니다. 명세는 단지 제품이 코드완료시점에서 굳어질 따름입니다.
* 명세서 작성 팁
1. 재미있게 씁시다.
여러분이 작성한 명세가 유쾌하며 재미있고 읽기 쉽다는 이유로 당신을 얕보는 회사에 근무한다면, 어서 다른 회사를 찾는 게 낫습니다.
2. 명세를 쓰는 작업은 머리가 돌아가도록 코드를 쓰는 작업과 유사하다.
문서를 소개하려는 대상층을 감안하고, 단계마다 그 사람이 무엇을 이해하길 바라는지 먼저 상각해보세요. 문장마다 독자가 내용을 깊이 이해했을지, 문맥의 의미는 파악했는지 스스로 되물어보십시오. 그래야 명세를 읽는 높으신 분께서 수많은 기술 용어에 압도당해 처음부터 문서 읽기를 포기하거나 멈추지 않게 될 겁니다.
3. 최대한 단순하게 작성하라.
쉬운 문장으로 작성하는 방식은 왠지 프로답지 않다는 생각에, 형식적이며 현학적인 언어를 남발하지는 마세요. 가능한 가장 쉬운 언어를 사용해야 합니다. 실제화면 보다 명세서를 더 효과적으로 개선하는 방법은 없습니다. 그림은 천마디 말보다 낫습니다.
4. 여러차례에 걸쳐 검토하고 다시 읽어라.
5. 표준양식은 해롭다고 간주한다.
모든 명세는 일정한 형식을 갖춰야 한다라는 생각은 버리십시오.
출처: http://elky.tistory.com/598 [엘키의 주절 주절]
키워드에 대한 정보 기능 명세서 작성법
다음은 Bing에서 기능 명세서 작성법 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.
이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!
사람들이 주제에 대해 자주 검색하는 키워드 [IT창업]03.웹\u0026앱 설계 기획서 작성하기 (IT창업 마지막 단계)
- 창업
- 창업지원
- 지원사업
- 정부지원사업
- 예비창업자
- 창업준비생
- 정부지원
- 예비창업
- 서비스기획
- 지원금
- 대외활동
- 취업
- 멘토링
- IT컨설팅
- 웹기획
- 앱기획
- 디자인
- 웹디자인
- 앱디자인
- 웹기획서
- 앱기획서
- UX기획
- 기능명세서
- 화면설계서
- 와이어프레임
- wireframe
YouTube에서 기능 명세서 작성법 주제의 다른 동영상 보기
주제에 대한 기사를 시청해 주셔서 감사합니다 [IT창업]03.웹\u0026앱 설계 기획서 작성하기 (IT창업 마지막 단계) | 기능 명세서 작성법, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.