개발 프로세스

Download Report

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