Transcript 개발 프로세스
고객 중심의 제품 개발 방법
김평철, CTO
pckim at cubrid.com
(주)큐브리드
2
목차
시작하며
제품 개발 주요 일정
개발 프로세스
제품팀의 조직구성
소스코드 및 빌드 흐름
사용 도구
팀별 주요 Practices
ITrack
3
시작하며
10년 전과 비교한 현재의 개발자 문화
같은 점:
규모 (약 15만명)
SI 중심의 개발자
35세 이후의 경력 경로 없음
달라진 점:
커뮤니티 형성
인터넷 서비스 영역 확장
일부 영역에서 오피니언 리더 역할
패키지/플랫폼 SW 태동
경력 경로로 확보를 위한 해법
패키지 SW의 성공
패키지 SW의 개발 프로세스 정립
경력키우기 중심의 조직 문화
큐브리드 케이스 소개
4
제품 개발 주요 일정
부트 캠프
다음 제품의 주제, 주요 기능, 시장 등 정의
고객 참여
개발 기간
Milestone별 기간, 기능, 인증 기준 정의
마케팅/영업과 일정 동기화
요구사항, 설계, 개발, 시험, 안정화, 인증
전형적인 개발 관리 프로세스에 따름
예: Spec-complete, Code-complete, Test-complete, ZAB, ZRB,
Milestone-complete
주요 일정 수립
각 Milestone 일정
릴리스 종류
주요 버전 (6.0, 7.0 등): 수년 주기
마이너 버전 (6.4, 6.5 등): 수개월 ~ 수년 주기
패치 (6.5 PL1, 6.5 PL2 등): 수일 ~ 수주
5
개발 프로세스 – 새로운 기능
고객
릴리스 (PM)
간략한 요구사항 명세서
기회/리스크 분석 (PM)
인증 시험 (QA)
설계 및 개발 (Dev)
시험 개발 (Test)
문서화 (UE)
기능사양 정의 비용 (PM)
설계/개발 비용 (Dev)
시험 비용 (QA)
문서, 교육자료 비용 (Doc)
설계 사양 정의 (Dev)
시험/인증 사양 정의 (QA)
상세 기능사양 (PM)
선별회의 (Triage)
릴리스 정의 (PM)
- 일정
- Exit 기준
6
개발 프로세스 – 오류수정
고객
릴리스 (PM)
오류 등록 (PM, QA, Dev)
- 재생 시나리오,
- 파급효과 (리스크)
시험 및 인증 (QA)
수정 비용 (Dev)
수정 (Dev)
선별회의 (Triage)
릴리스 정의 (PM)
- 일정
- Exit 기준
7
개발 프로세스 – 일정 예
주요 일정 – XDBMS (NHN 공동개발)
8
개발 프로세스 – 일정 예
주요 일정 – XDBMS M2 (큐브리드 7.0)
9
제품팀 조직 구성
기능개발팀
성능개발팀
QA팀
빌드팀
선별회의
문서팀
PM팀
기술지원팀
10
제품팀 조직 구성
선별회의팀 (Triage team)
각 팀의 리더로 구성
제품팀의 의사결정 기구
개발 요구에 대한 선별 작업
제품팀 비용을 고려한 고객효과 극대화
마일스톤, Exit 기준 결정
조직 순발력의 핵심
매일 15분 정도
PM팀이 소유
11
제품팀 조직 구성
프로그램 관리팀 (Program Management)
제품 관리
제품 스펙, 제품 발표 자료, 데모
릴리스 관리
릴리스 플랫폼
릴리스 일정 관리
릴리스 노트 및 제품 공식 릴리스
선별회의 주도
커뮤니케이션 센터
제품팀과 다른 팀과의 커뮤니케이션 센터
제품 관련 외부 팀과의 협력 관리
프로젝트 관리 (Project Management)가 아님
12
제품팀 조직 구성
기능개발/성능개발팀
설계, 개발, 안정화
빌드팀
QA팀
시험 도구 개발
릴리스 인증
문서팀
매뉴얼, 교육자료, 기술자료
Sustained Engineering
규모에 따라 별도, 혹은 가상팀으로 운영
릴리스된 제품에 대한 패치, 서비스팩
13
소스코드 및 빌드 흐름
개발자용
소스디포
integrate
메인
소스디포
자동
빌드
checkout
BVT
checkin
CIT/
RVT
Dev
Dev
Dev
자동
시험
일별
빌드
고객
사이트
QA
QA
QA
인증시험
이슈관리
데이타베이스
릴리스
소스/빌드
14
사용 도구
일정관리
Microsoft Project Manager, 엑셀
이슈관리 시스템
ITrack
소스코드 및 빌드 관리
CVS, make, 스크립트
개발/시험 도구
GNU, OS compilers, debuggers, DevPartner
Communications
E-mails (60%), meetings (30%), etc.
15
개발팀 Practices
선별회의 승인 항목에 대해서만 개발/수정
Checkout/Checkin
CIT (Check-In test)
RVT (Regression Verification Test)
Code review
Peer Dev
Test
자동 일별 빌드
복수의 소스디포 관리: 개발자용, 메인빌드용
복수의 브랜치 관리
main trunk, minor release, patch, prototype
16
코드리뷰 예
코드리뷰 요구 이메일 (자동)
17
코드리뷰 예
리뷰 화면 (WinMerge)
18
개발팀 상황판
19
QA팀 Practices
개발팀에 시험도구 지원
CIT, RVT, BVT
일별 빌드 시험 (자동)
ITrack 이슈 종료 시험
선별회의 승인, 해결 항목에 대해 검증(종료) 시험
마일스톤 인증 시험
기능 시험
성능 시험
Code Coverage 시험
Security 시험
스트레스 시험
업그레이드/마이그레이션 시험
고객 시나리오 Regression 방지 시험
Replay Lab
20
QA팀 상황판
21
ITrack
이슈트래킹 시스템
이슈 관리 (등록, 재현, 이력)
제품 오류, 수정요구 및 기술지원 이슈
제품개발 프로세스의 핵심
모든 이슈의 communication center
상황판을 통한 리스크 관리
선별회의
릴리스 관리
팀별 성능 관리
ITrack
큐브리드 자체개발
MS의 Product Studio 경험 참조
Java + CUBRID
Best Practices와 함께 공개 SW로 공급
http://www.cubrid.com의 ITrack 페이지 참조
http://kldp.net/projects/itrack/
22
ITrack 중심의 제품 개발
기술지원팀
접수
고객
고객요구접수
장애처리요청
제품개선요구
등록
ITrack System
배포
선별회의
개발팀
선별
승인,기각
마일스톤
QA팀
해결
승인이슈
해결처리
PM팀
인증
해결이슈
검증 종료
릴리즈
관리
23
ITrack – Best Practices
선별회의
팀별 목표 관리
오류색출대회
릴리스 관리
상황판 중심의 리스크 관리
릴리스 노트
24
ITrack - 선별회의
25
ITrack - 선별회의
26
ITrack - 팀별목표관리
27
ITrack - 오류색출대회
목적
짧은 시간에 다량의 제품 오류를 발견
사내 전체 행사로 제품 인식 확산
실행방법
QA팀 주도
ITrack 템플릿 활용
사내 이벤트 성격으로 진행
실황 중계
포상
실행 예
Q&A를 통한 제품개선안 도출: 82건
http://mogabi.bloter.net/_news/8df41e359c622677
7.0 오류색출대회: 140건
28
ITrack – 릴리스 관리
상황판 중심의 리스크 관리
릴리스 노트
감사합니다!
Q&A