제품/서비스 개발의 단계
By SeukWon Kang
일을 하다 보니 (회사에서 교육용으로) 필요해서 작성한 문서인데 나름 쓸만해 보여서 블로그에 올려 봅니다.
전과정을 간략히(세상에 좋은 , 잘 정리된 책들 많으니 ) 정리
각 단계에는 그에 어울리는 문서가 나와야 한다.
1. 프로덕트 초기 기획 단계 - concept design을 정리한다.
product define을 하는 단계, 그래서 만드려는 것은 무엇인가?
간단히 설명할수 있을 정도로 개념을 잘 정리한다.
2. 프로덕트 기획 단계 - 만들고자 하는 것을 자세히 기획/design 한다.
그래서 자세히 말하면 뭔데?
뭐가 왜 좋은/재밌는 데?
+ 사업 기획 - 그래서 잘팔릴것 같애? 어떻게/어디에 팔껀데?
사업 기획서 - 왜 해야 하는 지, 어디에 어떻게 팔것인지 , 어느정도 기대 하는지 책임질 수 있게 기술할것.
3. 프로젝트 기획 단계 - 그래서 어떻게 만들것인지를 정하자.
만들어야 하는 기능을 정의 하고 - 요구 분석
얼마를 들여서(인원,기간,돈,장비) 만들건데?
어떻게 만들지를 정하고 - 설계 , 모델링
프로토콜 문서, 구현 스펙이 결정되어야 한다.
기획서 - 그래서 사용자에게 어떻게 보일것인지 정리.
게임이면 얼마나/어째서/어떻게 재미 있을 것인지 ,
제품/툴이면 얼마나 편리하며 경쟁 제품대비 무엇이 강점일지 정리.
일단 완료된 기획이 수정되는 경우는 새버전을 부여하여 추가 변경사항을 기술한다.
기대 성능 - 기획서에도 있어야 한다. - 동시 사용자 몇명 이런식으로
총 예상 사용자 - 10만 100만 등 최소한 order라도 있어야한다. -
가능하다면 어떻게 운영 할 것인지도 정리 되어야 한다.
사용하고 있는 용어를 정의/정리한다.
사용자 가이드/사용 레퍼런스 가이드 - 사용 설명서 , 매뉴얼.
기획자 또는 테크니컬 라이터가 작성
최종 사용자가 (game player or GM , CS,사업담당,운영담당,경영진 ) 읽고 이해 할수 있는 형태여야 한다.
4. working prototype 단계 - 최대한 빨리 작동하는 것을 만든다. -
이를 통해서 실구현의 양/형태/방법 등을 결정한다.
이 것이 끝난후 정식으로 리뷰를 해서 기획을 재검토 한다.
어떻게 운영/서비스 할건데? 를 결정한다. -
실 구현체의 작동/서비스/개발 환경을 결정한다.
실 구현체의 요구 성능 을 결정한다. - 동접, 초당 처리량.
구현 설계서 : plain text only : ppt 금지
기획서 작성과 동시에 시작된다.
프로토 타이핑, 기술 서베이도 같이 진행.
실 구현은 기획서가 완료(버전 부여)후 시작..
그래서 내부를 어떻게 만들 것인지 정리
구현하려고 하는 제품이름 , 버전 을 적는다.
만드는 제품의 결과 물이 어떤 형태일지 기술적 관점에서 적는다.
구현에 사용하는 툴,technology , library 등을 적고 선정 이유와 선정되지 못한 다른 대안과 그 이유 들을 적는다.
개발에 사용할 OS,언어,프레임웍
실서비스에 사용할 …
예상 구현 일정 - implementation 만의 일정을 적는다.
일정의 시작은 기획서가 완료되어 version을 부여 받은순간 부터 시작한다.
QA/test/debug 일정은 별도로 산정한다.
구현의 완료시점은 개발자 테스트단에서 각 단위 기능 테스트가 완료된 시점으로 한다.
구현에 참여할 멤버 - 이름 또는 인원수를 적는다.
기대 성능 - 기획서에도 있어야 한다.
총 예상 사용자 - 10^x 라도 정의 되어 있을것.
구현중 기획이 바뀌는 것은 다음 버전 구현으로 넘긴다.
logical object / data model을 글로 적는다. UML 등 graphical tool사용 금지 .
이름 - 내용물 - 용도 를 기술 .
각 object들의 관계 를 적는다.
구현에 관련된 이슈 사항을 적는다.
전용 tool을 사용해야만 하는 경우.
Data modeling
세밀하게 반드시 필요.
action/message flow
대략이라도 반드시 필요.
mind mapping tool ?
필요하면 사용.
서비스 구성도
diagram 형태로 필요.
5. 실 구현 단계 - 서비스,판매를 목표로 하는 것을 만든다.
L10N,I18N,운영툴,서비스배포/업데이트를 고려한 개발을 한다.
성능/안정성테스트를 할 툴/방법을 준비하고 간단 테스트를 진행한다. - 이를 통해 서비스 장비의 규모를 결정한다.
연동가이드 : 엑셀 금지 , plain text로
개발자가 제작.
다른 개발자/팀에서 이 product를 사용하기 위해 필요한 모든 것을 기술
OS,언어, 라이브러리 , 주의사항
각 protocol api/abi 정리 및 사용 플로우
구현 스펙 문서 : 가능하다면 자동 생성
그래서 실제로 만들어진 것을 정의
문서 자동화가 이루어지면 손으로 쓸 필요가 없을수도 있다.
하지만 DB scheme 은 문서화 해야 할듯.
6. 사내 테스트 QA debug - 만들어진 실구현체를 사내에서 테스트 한다.
개밥먹기. 개발 서버 / 개발 클라이언트 완성.
가능하다면 사외 플랫폼도 포함한 완전한 서비스 상태에서 테스트를 진행한다.
이 과정에서 실 서비스의 성능테스트도 미리 준비, 예비테스트를 진행한다.
7. 플랫폼 통합테스트 - integration test
퍼블리셔의 플랫폼을 통합한 테스트
실 서비스 와 동일 환경,동일 장비에서 테스트한다.
성능 테스트를 진행해서 실 서비스의 예상 성능을 예측한다.
8. 서비스 / 제품 release
운영 가이드 필요. - db backup / maintenance / batch job목록 등.