CMMI기반 환경의 애자일
박 재 석 | 대 표 | ㈜ 투 씨 드
CMMI기반 환경의 애자일
With Atlassian
Agenda
S/W 개발 방법론
SOFTWARE
• 전 산업 분야의 핵심으로 성장
• 지속적인 성장 추이
• 대형화, 복잡화 가속
• 빠른 변화
• 관리 역량 상위와 하위의 품질 격차 심화
S/W 개발 방법론
• SDLC (Software Development Life Cycle) • History
구조적 개발 방법론1970s
정보 공학 방법론1980s
객체 지향 방법론1990s
CBD 분석 설계 방법론2000s
경험적 개발 방법론NOW
Planning
Analysis
DesignImplementation
Maintenance
CMMI
• 능력 성숙도 통합 모델(Capability Maturity Model Integration, CMMI)
• 미국 SW공학 연구소(SEI)가 개발한 SW 및 시스템 개발 프로세스 개선 모델
• SW 개발업계의 Best Practice를 분석하고 성숙도 별로 정리한 프레임워크
• 조직의 개발 프로세스를 5 단계의 성숙도 레벨과 6 단계의 역량 레벨로 나누어 평가
프로세스 관리
• 조직내의 프로세스
• OID,OPD,OPF,OPP,O
T
프로젝트 관리
• 프로젝트 진행 통제
• PP,PMC,SAM,IPM,
RSKM,QPM
엔지니어링
• 기획,개발,검증
• REQM,RD,TS,PI,VE
R,VAL
지원
• 개발/유지보수 지원
• CM,PPQA,MA,DAR
,CAR
AGILE
• 경험적 프로세스 제어모델: 계획 기반의 기존 방법론에 대한 대안
• 절차와 도구를 넘어선 개성과 화합
• 종합적인 문서화를 넘어선 동작하는 소프트웨어
• 계약과 협상을 넘어선 고객과의 협력
• 계획 준수를 넘어서 변화에의 대응
eXtreme Programming
Scrum
Feature Driven
Test Driven
Adaptive Software Development
BEST PRACTICE ?
• Guide • Tool
• Human
Agenda
CMMI기반 Agile 적용 방안
CMMI VS AGILE ??
짜장? 짬뽕?
CMMI & AGILE
짬짜면!!
HOW?
CMMI 기반
Agile 활용
Best Practice 기반
üCMMI /PMBOK에 기반
ü선진 적용 사례 및 최신
Trend를 반영, 설계 최적화
ü Lightweight 프로세스 구축
üAgile 원리 적용
ü프로세스의 경량화 및 필수
산출물 정의
현실적인 문제점 개선에 초점
ü현행 장단점 기준 반영
ü관련 요구사항 및 의견 반영
HOW?
• 하고자 하는 방향은 최종적으로 어떤 것을 지향하고 있는가?
• 원하는 업무 구성을 위해 필요한 구성 도구는 어떠한 것들이 있으며 적합한 도구는?
• 맹목적인 이론적 배경 또는 유행을 추구하고 있지 않은가?
• 진행하고자 하는 변경에 대하여 다른 구성원과 충분히 공유와 합의가 이루어 졌는가?
• 적용 이 후에도 지속적인 변경을 통해 원활한 확장 및 변경이 가능 할 것인가?
Process Management Solution Culture Integration
점진적인 통합 및 가속화 효율적인 관리 환경 구성
PROCESS 경량화
프로젝트
계획
프로젝트
통제
요구사항
관리
공급자
계약관리
통합
프로젝트
관리
리스크
관리
프로젝트 관리(Level 2,3)CMMI Model
형상
관리
품질
보증
측정
및 분석
요구사항
개발
기술
솔루션
검증 확인
엔지니어링(Level 3) 지원 (Level 2)
범례 : 커버영역 비커버영역
• 진행하는 업무 성격에 알맞은 프로세스 선택적 활용
• CMMI Level 2, 3 영역의 13개 프로세스 세부 활동 중 핵심적인 활동만 수용 (약 50% 정도)
• 필요한 산출물만 검증하고 관리하여 개발과정에서 발생하는 산출물 작업을 최소화
(50~60% 개발 산출물 감소)
• 시스템을 최대한 활용하여 불필요한 작업을 최소화
외부 활동/
상위관리자
프로젝트 관리자 협력업체 지원부서/시스템
1.프로젝트
수행준비
PMS
3. 프로젝트
목표정의
5. 개발방법 정의
6. WBS 및 일정
관리 계획
7. 조직 및 역할
11. 품질관리 계획
9. 의사소통 계획
12. 프로젝트
수행계획 검토
프로젝트 수행 계획
지원 요청
13. 프로젝트
수행계획 승인
14. 프로젝트
팀빌딩 및 킥오프
프로젝트 표준
WBS 제공
품질관리자
프로젝트
계약 체결
2.프로젝트
오리엔테이션
프로젝트 수행 계획서 작성
10. 교육훈련 계획
8. 인력투입 계획
4. 업무범위 정의
범례 : 프로세스 활동 : 타 프로세스 활동 :
PMS
PROCESS 와 SYSTEM
Process: Human + System System
Agenda
Atlassian 제품을 활용한 System 구성
CONCEPT
• Agile practice를 CMMI환경 기반에서 활용
• Atlassian 제품 기반의 산출물 관리 및 프로젝트 지침과 같은 기본 프로젝트 관리 체계의 구성
• Atlassian 제품을 활용한 CMMI + Agile 환경 구성
1.요구사항 정의
- 요건 정의
2.개발 요건 정의
- WBS정의
- 프로세스 통제
3.개발 진행 (Agile)
- 개발 Process 진행
3.빌드/테스트/배포
- 검증/배포
고객 개발 PM/PL 개발 담당자 현업/운영
PROJECT 관리 SYSTEM 구성 예시
Function
Project Task (Workflow)
프로젝트 정보
회의록/협의내용
요구사항
프로젝트 지침
프로그램 정의서
테스트케이스/결과
가이드 및 업무일지
테스트 배포
운영 배포
롤백
빌드
Version 관리
Code 검색/비교
업체 발주처 업체 발주처 업체 발주처
WBS Phase
분석
설계
구현
테스트
검증
이관
WBS (BigPictue)
Gantt
Project Info
기타 관리 Task
System 요청 Issue
작업 관리 Task
Task
Action Item
단위테스트
Filter/Dashboard
계획 수행검토 수행및통제 검증 이관 완료검토 완료
개발계획 및 일정관리
Bug
① 프로젝트 관리 ② 점검 및 모니터링
③ 협업관리
⑥ 세부Task관리
④ 자산관리
⑤ 개발관리
SYSTEM 구성 예시 - WBS
주요 기능
ü 프로젝트 별 WBS 를 구성하며, WBS 화면을 통해 전체 진행 사항 및 일정을 확인
ü 개별 항목은 Agile 기반 Workflow 진행
ü Issue/Risk에 대한 항목을 별도 관리
SYSTEM 구성 예시 - 점검 및 모니터링
주요 기능
ü 품질/보안/이관 점검 프로세스 적용
ü 수행계획/종료 및 검토/승인에 대한 각각의 프로세스
ü Dashboard를 통한 진행사항 확인/분석
Process Dashboard
점검 Checklist 관리 (보안 등)
프로젝트 진행 Process
Task 진행Process
역할 별 기능제한
SYSTEM 구성 예시 – 업무 진행
주요 기능
ü Jira의 고유 기능인 기본 Workflow 진행 방식과 Agile 형태의 Kanban 형태를 모두 활용
ü Agile 형태로도 고유의 프로세스를 진행 (Sprint, Kanban)
• 업무 권한 별 보여지는 진행 항목에 대해 구분
• 끌어다 놓기를 통해 상태 변경이 가능
• 해야 할 리스트를 보다 손쉽게 식별
기본 Workflow 진행
Kanban 보드 활용을 통한 진행
• Workflow의 이동 가능 단계가 버튼으로 표시
SYSTEM 구성 예시 - ISSUE/RISK
주요 기능
ü 프로젝트 별 문제 사항을 등록/관리하여 문제에 대한 식별 및 관리
ü 관리자는 전체 프로젝트에 대한 Issue 사항을 별도 취합 관리
Issue workflow 사용자
1.등록 및 편집
2.첨부/댓글을 통한 의견 공유
SYSTEM 구성 예시 – 협업/자산 관리
주요 기능
ü 프로세스 자산 및 기본 산출물 등 Project 관련 정보 검토/개선
ü 회의록 등 진행 정보 등록 및 댓 글을 통한 정보 공유
표준관리
Asset
가이드
지침서
템플릿
프로세스
회의록 및 산출물 관리
• 회의록 및 기타 문서 양식 Template 구성
• 댓글을 통한 정보 전달 및 의사소통
• 특정 사용자 대상 지정을
통해 자동 알림 가능
• 댓 글을 통해 해당 내용에
대한 의견 및 진행 등 정보
를 공유
SYSTEM 구성 예시 – 산출물 관리
주요 기능
ü 협업 (Confluence) 시스템 에 직접 산출물 내용 입력
ü 고유 문서 버전관리 기능 활용
Case #1. 프로젝트 협업 (Confluence) 시스템 contents 활용
각 상세 항목의 연결
Case #2. 프로젝트 협업 (Confluence) 시스템 고유 문서 버전관리 기능 활용
산출물 등록 페이지 링크 연결
동일 이름의 파일 등록 시
자동 버전 관리
SYSTEM 구성 예시 – 개발/빌드 관리
주요 기능 ü Jira를 통해 즉시 개발 Branch 생성 및 자동 연계
ü 연계 된 Branch를 통해 개발 및 빌드 작업 시 자동 정보 연계(Commit, Pull request, Build)
※ 적용 효과: Release 14% 증가 및 Issue closing 23% 증가
SYSTEM 구성 예시 – CODE REVIEW
주요 기능 ü Pull request 기반의 Code review 환경 제공
SUMMARY
• S/W 관리는 체계적 관리 모델을 기반으로 역량을 갖출 필요가 있다.
• 단 번에 완벽한 환경을 구성하려는 것은 욕심.
• 방법론도 결국은 원활한 관리를 위한 가이드 일 뿐, 반드시 정해진 답은 아니다.
• 도구는 도구일 뿐, 남이 잘 쓴다고 나도 잘 쓴다는 보장은 없다.
• 결국 가장 중요한 요소는 사람.
감사합니다.
End of Document

[AIS 2018][Team Practice] CMMI 기반 환경의 애자일-투씨드

  • 1.
  • 2.
    박 재 석| 대 표 | ㈜ 투 씨 드 CMMI기반 환경의 애자일 With Atlassian
  • 3.
  • 4.
    SOFTWARE • 전 산업분야의 핵심으로 성장 • 지속적인 성장 추이 • 대형화, 복잡화 가속 • 빠른 변화 • 관리 역량 상위와 하위의 품질 격차 심화
  • 5.
    S/W 개발 방법론 •SDLC (Software Development Life Cycle) • History 구조적 개발 방법론1970s 정보 공학 방법론1980s 객체 지향 방법론1990s CBD 분석 설계 방법론2000s 경험적 개발 방법론NOW Planning Analysis DesignImplementation Maintenance
  • 6.
    CMMI • 능력 성숙도통합 모델(Capability Maturity Model Integration, CMMI) • 미국 SW공학 연구소(SEI)가 개발한 SW 및 시스템 개발 프로세스 개선 모델 • SW 개발업계의 Best Practice를 분석하고 성숙도 별로 정리한 프레임워크 • 조직의 개발 프로세스를 5 단계의 성숙도 레벨과 6 단계의 역량 레벨로 나누어 평가 프로세스 관리 • 조직내의 프로세스 • OID,OPD,OPF,OPP,O T 프로젝트 관리 • 프로젝트 진행 통제 • PP,PMC,SAM,IPM, RSKM,QPM 엔지니어링 • 기획,개발,검증 • REQM,RD,TS,PI,VE R,VAL 지원 • 개발/유지보수 지원 • CM,PPQA,MA,DAR ,CAR
  • 7.
    AGILE • 경험적 프로세스제어모델: 계획 기반의 기존 방법론에 대한 대안 • 절차와 도구를 넘어선 개성과 화합 • 종합적인 문서화를 넘어선 동작하는 소프트웨어 • 계약과 협상을 넘어선 고객과의 협력 • 계획 준수를 넘어서 변화에의 대응 eXtreme Programming Scrum Feature Driven Test Driven Adaptive Software Development
  • 8.
    BEST PRACTICE ? •Guide • Tool • Human
  • 9.
  • 10.
    CMMI VS AGILE?? 짜장? 짬뽕?
  • 11.
  • 12.
    HOW? CMMI 기반 Agile 활용 BestPractice 기반 üCMMI /PMBOK에 기반 ü선진 적용 사례 및 최신 Trend를 반영, 설계 최적화 ü Lightweight 프로세스 구축 üAgile 원리 적용 ü프로세스의 경량화 및 필수 산출물 정의 현실적인 문제점 개선에 초점 ü현행 장단점 기준 반영 ü관련 요구사항 및 의견 반영
  • 13.
    HOW? • 하고자 하는방향은 최종적으로 어떤 것을 지향하고 있는가? • 원하는 업무 구성을 위해 필요한 구성 도구는 어떠한 것들이 있으며 적합한 도구는? • 맹목적인 이론적 배경 또는 유행을 추구하고 있지 않은가? • 진행하고자 하는 변경에 대하여 다른 구성원과 충분히 공유와 합의가 이루어 졌는가? • 적용 이 후에도 지속적인 변경을 통해 원활한 확장 및 변경이 가능 할 것인가? Process Management Solution Culture Integration 점진적인 통합 및 가속화 효율적인 관리 환경 구성
  • 14.
    PROCESS 경량화 프로젝트 계획 프로젝트 통제 요구사항 관리 공급자 계약관리 통합 프로젝트 관리 리스크 관리 프로젝트 관리(Level2,3)CMMI Model 형상 관리 품질 보증 측정 및 분석 요구사항 개발 기술 솔루션 검증 확인 엔지니어링(Level 3) 지원 (Level 2) 범례 : 커버영역 비커버영역 • 진행하는 업무 성격에 알맞은 프로세스 선택적 활용 • CMMI Level 2, 3 영역의 13개 프로세스 세부 활동 중 핵심적인 활동만 수용 (약 50% 정도) • 필요한 산출물만 검증하고 관리하여 개발과정에서 발생하는 산출물 작업을 최소화 (50~60% 개발 산출물 감소) • 시스템을 최대한 활용하여 불필요한 작업을 최소화
  • 15.
    외부 활동/ 상위관리자 프로젝트 관리자협력업체 지원부서/시스템 1.프로젝트 수행준비 PMS 3. 프로젝트 목표정의 5. 개발방법 정의 6. WBS 및 일정 관리 계획 7. 조직 및 역할 11. 품질관리 계획 9. 의사소통 계획 12. 프로젝트 수행계획 검토 프로젝트 수행 계획 지원 요청 13. 프로젝트 수행계획 승인 14. 프로젝트 팀빌딩 및 킥오프 프로젝트 표준 WBS 제공 품질관리자 프로젝트 계약 체결 2.프로젝트 오리엔테이션 프로젝트 수행 계획서 작성 10. 교육훈련 계획 8. 인력투입 계획 4. 업무범위 정의 범례 : 프로세스 활동 : 타 프로세스 활동 : PMS PROCESS 와 SYSTEM Process: Human + System System
  • 16.
  • 17.
    CONCEPT • Agile practice를CMMI환경 기반에서 활용 • Atlassian 제품 기반의 산출물 관리 및 프로젝트 지침과 같은 기본 프로젝트 관리 체계의 구성 • Atlassian 제품을 활용한 CMMI + Agile 환경 구성 1.요구사항 정의 - 요건 정의 2.개발 요건 정의 - WBS정의 - 프로세스 통제 3.개발 진행 (Agile) - 개발 Process 진행 3.빌드/테스트/배포 - 검증/배포 고객 개발 PM/PL 개발 담당자 현업/운영
  • 18.
    PROJECT 관리 SYSTEM구성 예시 Function Project Task (Workflow) 프로젝트 정보 회의록/협의내용 요구사항 프로젝트 지침 프로그램 정의서 테스트케이스/결과 가이드 및 업무일지 테스트 배포 운영 배포 롤백 빌드 Version 관리 Code 검색/비교 업체 발주처 업체 발주처 업체 발주처 WBS Phase 분석 설계 구현 테스트 검증 이관 WBS (BigPictue) Gantt Project Info 기타 관리 Task System 요청 Issue 작업 관리 Task Task Action Item 단위테스트 Filter/Dashboard 계획 수행검토 수행및통제 검증 이관 완료검토 완료 개발계획 및 일정관리 Bug ① 프로젝트 관리 ② 점검 및 모니터링 ③ 협업관리 ⑥ 세부Task관리 ④ 자산관리 ⑤ 개발관리
  • 19.
    SYSTEM 구성 예시- WBS 주요 기능 ü 프로젝트 별 WBS 를 구성하며, WBS 화면을 통해 전체 진행 사항 및 일정을 확인 ü 개별 항목은 Agile 기반 Workflow 진행 ü Issue/Risk에 대한 항목을 별도 관리
  • 20.
    SYSTEM 구성 예시- 점검 및 모니터링 주요 기능 ü 품질/보안/이관 점검 프로세스 적용 ü 수행계획/종료 및 검토/승인에 대한 각각의 프로세스 ü Dashboard를 통한 진행사항 확인/분석 Process Dashboard 점검 Checklist 관리 (보안 등) 프로젝트 진행 Process Task 진행Process 역할 별 기능제한
  • 21.
    SYSTEM 구성 예시– 업무 진행 주요 기능 ü Jira의 고유 기능인 기본 Workflow 진행 방식과 Agile 형태의 Kanban 형태를 모두 활용 ü Agile 형태로도 고유의 프로세스를 진행 (Sprint, Kanban) • 업무 권한 별 보여지는 진행 항목에 대해 구분 • 끌어다 놓기를 통해 상태 변경이 가능 • 해야 할 리스트를 보다 손쉽게 식별 기본 Workflow 진행 Kanban 보드 활용을 통한 진행 • Workflow의 이동 가능 단계가 버튼으로 표시
  • 22.
    SYSTEM 구성 예시- ISSUE/RISK 주요 기능 ü 프로젝트 별 문제 사항을 등록/관리하여 문제에 대한 식별 및 관리 ü 관리자는 전체 프로젝트에 대한 Issue 사항을 별도 취합 관리 Issue workflow 사용자 1.등록 및 편집 2.첨부/댓글을 통한 의견 공유
  • 23.
    SYSTEM 구성 예시– 협업/자산 관리 주요 기능 ü 프로세스 자산 및 기본 산출물 등 Project 관련 정보 검토/개선 ü 회의록 등 진행 정보 등록 및 댓 글을 통한 정보 공유 표준관리 Asset 가이드 지침서 템플릿 프로세스 회의록 및 산출물 관리 • 회의록 및 기타 문서 양식 Template 구성 • 댓글을 통한 정보 전달 및 의사소통 • 특정 사용자 대상 지정을 통해 자동 알림 가능 • 댓 글을 통해 해당 내용에 대한 의견 및 진행 등 정보 를 공유
  • 24.
    SYSTEM 구성 예시– 산출물 관리 주요 기능 ü 협업 (Confluence) 시스템 에 직접 산출물 내용 입력 ü 고유 문서 버전관리 기능 활용 Case #1. 프로젝트 협업 (Confluence) 시스템 contents 활용 각 상세 항목의 연결 Case #2. 프로젝트 협업 (Confluence) 시스템 고유 문서 버전관리 기능 활용 산출물 등록 페이지 링크 연결 동일 이름의 파일 등록 시 자동 버전 관리
  • 25.
    SYSTEM 구성 예시– 개발/빌드 관리 주요 기능 ü Jira를 통해 즉시 개발 Branch 생성 및 자동 연계 ü 연계 된 Branch를 통해 개발 및 빌드 작업 시 자동 정보 연계(Commit, Pull request, Build) ※ 적용 효과: Release 14% 증가 및 Issue closing 23% 증가
  • 26.
    SYSTEM 구성 예시– CODE REVIEW 주요 기능 ü Pull request 기반의 Code review 환경 제공
  • 27.
    SUMMARY • S/W 관리는체계적 관리 모델을 기반으로 역량을 갖출 필요가 있다. • 단 번에 완벽한 환경을 구성하려는 것은 욕심. • 방법론도 결국은 원활한 관리를 위한 가이드 일 뿐, 반드시 정해진 답은 아니다. • 도구는 도구일 뿐, 남이 잘 쓴다고 나도 잘 쓴다는 보장은 없다. • 결국 가장 중요한 요소는 사람.
  • 28.