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