Top Banner
32

팀장님 근데 Cmmi가 뭐에여

Jun 19, 2015

Download

Technology

Dohyoung Rim

cmmi가 개발자에게 어떤 의미인지 설명.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 팀장님 근데 Cmmi가 뭐에여
Page 2: 팀장님 근데 Cmmi가 뭐에여

• Capability Maturity Model Integration

• 조직의 개발 능력이 얼마나 성숙했는지를 보기 위한 것 .

• “ 그 회사는 CMMI Level 3 이야” 라고 하면 -> “ 그 회사는 개발 조직이 CMMI 에서 정의한 Level 3

정도의 성숙도이다 .” 라고 이해하면 되겠다 .

능력 성숙

Page 3: 팀장님 근데 Cmmi가 뭐에여

• 조직이 성숙해야 한다고 ? 왠 성숙 ?

• 성숙하지 않은 조직은• 프로젝트의 성공이 특정 개인의 역량에 의존되고 .• 프로젝트 계획 /일정이 고무줄이고 .• 일은 터지고 , 대응은 오로지 야근과 특근 .• 이걸 바꾸면 저게 오동작하고 .• 문서는 그야말로 문서를 위한 문서고 . 매뉴얼은 엉망이

고 .• 맨날 고객에게서 전화 오고 , 전 실무자는 퇴사하고 없고 .• 이전에 진행된 프로젝트에서 건질 것은 커녕 , 정리도

안되어 있고 .

Page 4: 팀장님 근데 Cmmi가 뭐에여

• 당신 같으면 그런 미성숙 조직에 프로젝트 맡기고 싶겠는가 ? 혹은 그런 조직에서 일하고 싶겠는가 ?

• A 회사에서는 영업의 계약에 의해 일정이 박혀서 전달되고 , B 회사에서는 계약 전 당연히 검토되어야만 진행되고 .• 이러한 차이가 단지 프로세스 때문인가 ?• 계약 전 검토를 당연히라고 느껴지는 것이 바로

성숙함이다 .

Page 5: 팀장님 근데 Cmmi가 뭐에여

• CMMI 에서는 성숙도를 판정하기 위하여 당연히 해야 하는 실천항목들을 정의해 놓았다 .

• 그리고 그 실천항목을 가지고 5 개의 Level 로 그룹지었다 .

• 각 Level 별로 실천해야 하는 실천항목이 정해져 있다 .

• 상위 Level 은 하위 Level 의 실천항목을 포함한다 .

Page 6: 팀장님 근데 Cmmi가 뭐에여

• CMMI 의 실천항목들은 전부 무엇 무엇을 하고 있는가 , 라는 것들이다 .

• 살펴보면 세삼스럽지도 않은 어찌 보면 당연한 것들이다 .• 계획 했는가 ? 검토했는가 ? 기록했는가 ? 테스트 했는

가 ? 점검했는가 ?

• 이러한 당연한 것들을 당연히하는 그런 성숙한 조직인지를 보자는 것이고 그것을 판단하기 위해 실천할 사항들을 정리해 놓은 것이다 .

Page 7: 팀장님 근데 Cmmi가 뭐에여

• 계획하고• 검토하고• 기록하고• 측정하고• 점검하고• 개선하라 .

• 언급했듯이 당연한 것을 하자는 것이다 .

Page 8: 팀장님 근데 Cmmi가 뭐에여

• Level 1 : 관리되지 않는 .• Level 2 : 관리되는 (Managed)• Level 3 : 표준화된 프로세스에 의해 (Defined)• Level 4 : 정략적으로 (Quantitively Managed)• Level 5 : 지속적인 프로세스 개선 (Optimized)

• 상위 레벨은 하위레벨을 만족한다 .• 예 : Level3 일 경우 Level2 도 역시 만족한다 .

Page 9: 팀장님 근데 Cmmi가 뭐에여

• PA(Process Area) : 실천 영역• 실제로 취하여야 하는 실천 항목을 영역 별로 구분해 놓았다

• Level 별로 요구하는 실천영역이 있다 .• Level 1 : X• Level 2 : 7 개• Level 3 : 11 개• Level 4 : 2 개• Level 5 : 2 개

• 성숙도 Level 3 일 경우 18 개 (Level2 7 개 +Level3 11 개 ) 의 실천영역에 대한 실천항목을 모두 만족시킨것을 의미한다 .

Page 10: 팀장님 근데 Cmmi가 뭐에여

Level 약어 Process Name 프로세스 명 목적 혹은 의미

Level 2

1. REQM Requirements Management 요구사항 관리 요구사항을 관리하자

2. PP Project Planning 프로젝트 계획 수립 프로젝트 계획을 수립하자 .

3. PMC Project Monitoring and Control 프로젝트 감시 및 통제 프로젝트가 잘되고 있는지 파악하고 조정하자 .

4. SAM Supplier Agreement Management 공급업체 계약 관리 공급업체를 잘 관리하자 .

5. MA Measurement and Analysis 측정 및 분석 모든 활동을 측정하고 분석하자 .

6. PPQA Process and Product Quality Assurance

프로세스 및 제품 품질보증 모든 활동과 프로젝트 산출물을 점검하자 .

7. CM Configuration Management 형상 관리 모든 결과물들을 형상관리하자 .

Level 3

8. RD Requirements Development 요구사항 개발 요구사항을 개발하자 .

9. TS Technical Solution 기술 솔루션 적절한 기술 솔루션을 선택하자 .

10. PI Product Integration 제품 통합 배포를 위해 제품을 제대로 통합하자 .

11. VEL Verification 검증 원 목적대로 제대로 만들었는지 점검하자 .

12. VAL Validation 확인 요구사항이 적절한지 점검하자 .

13. OPF Organizational Process Focus 조직 프로세스 중점 관리 프로세스를 개선하자 .

14. OPD Organizational Process Definition 조직 표준 프로세스 정의 프로세스를 정의하자 .

15. OT Organizational Training 조직 교육 관리 교육시키자 .

16. IPM Integrated Project Management 통합 프로젝트 관리 복수의 프로젝트들을 통합적으로 관리하자 .

17. RSKM Risk Management 위험관리 위험을 관리하자 .

18. DAR Decision Analysis and Resolution 의사결정분석 및 해결 제대로 의사결정을 하자 .

Level 4

19. OPP Organizational Process Performance

20. QPM Quantitative Project Management

Level 521. OID Organization Innovation &

Deployment

22. CAR Causal Analysis and Resolution

Page 11: 팀장님 근데 Cmmi가 뭐에여

• 우와 디따 많다 .• 프로젝트 하려면 그 각 PA 들 전부 해야 되는 건가요 ?• 얘기 들어보니 전부 문서로 만들어야 한다던데 , 으악…

Page 12: 팀장님 근데 Cmmi가 뭐에여

• 제대로 개발을 하려면 필수적인 것이• 하여간에 계획 세우고• 요구사항 파악하고• 요구사항 함부로 변경되지 않게 하고• 필요 기술력 파악하고• 인력 적당한지 봐야 하고• 좀 불안한 사항 있다면 미리 고민해 둬야 하고• 개발하고• 테스트 하고• 개발된 것 잘 보관해야 하고• 배포 전에 통합적으로 테스트 해야 하고

Page 13: 팀장님 근데 Cmmi가 뭐에여

• 한번 솔직해 보자고 . 필수적일 수 밖에 없는 것 중에 코딩 고것밖에 신경 쓰지 않은 거 사실 아닌가 ?• 하여간에 계획 세우고• 요구사항 파악하고• 요구사항 함부로 변경되지 않게 하고• 필요 기술력 파악하고• 인력 적당한지 봐야 하고• 좀 불안한 사항 있다면 미리 고민해 둬야 하고

• 개발하고• 테스트 하고• 개발된 것 잘 보관해야 하고• 배포 전에 통합적으로 테스트 해야 하고

• 그래서 행복해 졌습니까 ? 버그 적어졌습니까 ? 사용자 배포 문서 스스로 맘에 듭니까 ? 야근 좀 줄었습니까 ? 유지보수 할만 합니까 ? 회사 계속 다니고 싶습니까 ?

Page 14: 팀장님 근데 Cmmi가 뭐에여

• 필수적인 것이 어떤 PA 에 해당하나• 하여간에 계획 세우고 : Project Planning• 요구사항 파악하고 : Requirements Development• 요구사항 함부로 변경되지 않게 하고 : Requirements

Management• 필요 기술력 파악하고 : Technical Solution• 인력 적당한지 봐야 하고• 좀 불안한 사항 있다면 미리 고민해 둬야 하고 : Risk Management• 개발하고 : ?????• 테스트 하고 : Verification, Validation• 개발된 것 잘 보관해야 하고 : Configuration Management• 배포 전에 통합적으로 테스트 해야 하고 : Product Integration

• 18 개 중에 9 개가 필수적인 거였네 . 그럼 나머지 9 개는 ?• 개발 자체에 대해선 해당하는 게 없네 . 특이하다 .

Page 15: 팀장님 근데 Cmmi가 뭐에여

• 이외의 PA 를 살펴 봅시다 .• 프로젝트 진행 파악해야 하고 : Project Monitoring and Control• 하청 업체 있으면 관리해야 하고 : Supplier Agreement

Management• 그냥 말이 아닌 수치로 얘기하자고 : Measure and Analysis• 중간 중간 점검은 해야잖아 : Process and Product Quality

Assurance• 이전 프로젝트의 경험을 써먹자 . : Integrated Project

Management• 중요 결정 사항 있으면 주먹구구로는 곤란하지 . : Decision Analysis

and Resolution• 모르는 게 있으면 교육받아야 하고 : Organizational Training• 이외 조직의 프로세스 개선을 위한 것이

• Organizational Process Focus• Organizational Process Definition

Page 16: 팀장님 근데 Cmmi가 뭐에여

• 결국 제대로 개발하기 위해 필수적으로 해야 하는 것을 미루거나 모른척하지 말고 제대로 실천하자는 것이다 .

• 이것이 CMMI Level3 에서 요구하는 것 중 반절이다 .• 나머지 반절은 개발자 보다는 관리자의 입장에서 실천해야 하는

것이라고 볼 수도 있다 .• 프로젝트 진행 파악해야 하고 : Project Monitoring and Control• 하청 업체 있으면 관리해야 하고 : Supplier Agreement Management• 그냥 말이 아닌 수치로 얘기하자고 : Measure and Analysis• 중간 중간 점검은 해야잖아 : Process and Product Quality Assurance• 이전 프로젝트의 경험을 써먹자 . : Integrated Project Management• 중요 결정 사항 있으면 주먹구구로는 곤란하지 . : Decision Analysis and Resolution• 모르는 게 있으면 교육받아야 하고 : Organizational Training• 이외 조직의 프로세스 개선을 위한 것이 …

Page 17: 팀장님 근데 Cmmi가 뭐에여

• 필수라 생각되는 것 9 개와 이외 9 개 .• 모두 18 개 . 그래도 많아 보인다 .• 프로젝트 하려면 꼭 그 18 개 전부 해야 되는 건가요 ?• -> 그렇다 !

• 우린 실상 하긴 하고는 있었다 . 근데 전부 주먹구구식이였고 , 계속 시행착오만 되풀이 하고 있었고 , 개선되지는 않았고 .

Page 18: 팀장님 근데 Cmmi가 뭐에여

• 이제는 쫌 !• 계획 제대로 세우고 ,• 적당한 일정에서 ,• 필요 인력 제대로 투입하고 ,• 요구사항 제대로 파악하고 ,• 뒤엎기 좀 피하고 ,• 테스트 좀 제대로 하고 ,• 문서도 제대로 만들고

• 이외에• 제대로 된 프로세스 안에서 일을 진행하고• 했던 실수 또 하고 또 하고 하지 말고• 지난번 프로젝트에서 배운점 개선하고 , 데이터 활용하고• ‘ 너밖에 할 사람 없잖아’ 요러지 말고

Page 19: 팀장님 근데 Cmmi가 뭐에여

• 어느 실천영역 (PA) 이건 다음을 하는게 맞지 않는가 ?• 실행하기 위한 조직의 방침을 세우고 ,• 계획을 세우고• 자원을 지원하고 ( 툴 , 시스템 , 인력 )• 적절한 담당자를 선임하고• 교육을 시키고• 산출물을 관리하고• 관련자들을 같이 꼬득이고• 때론 점검도 받고• 경영자들과 같이 살펴보자 .

Page 20: 팀장님 근데 Cmmi가 뭐에여

• 그런데 무조건 문서가 있어야 하나요 ?-> 그렇다 .

• 문서의 양이 문제가 아니다 .• 하여간에 무언가를 했다면 그것을 정리된 기록으로 남기는 것이

중요하다 .• 꼭 문서가 아니라 시스템이나 툴을 사용해도 좋다 .• 요구사항관리를 위해 툴을 사용할 수도 있고 , 형상관리를 위해 SVN

을 사용할 수도 있고 .

• 중요한 것은 PA 에서 정의된 실천항목을 실행하는 것이고 , 이를 기록으로 남기라는 것이다 .

Page 21: 팀장님 근데 Cmmi가 뭐에여

• 개발할 것도 태산인데 언제 문서 만들고 있나요 ?• 그런데도 무조건 문서가 있어야 하나요 ?

-> 그렇다 .

• 왜 항상 시간은 없고 할 것은 많은가 ?• 스스로 생각해보라 . 정말 생산적인 코딩을 하는 시간이 얼마나

되는가 ?• 삽질하고 , 뒤집고 , 버그를 다시 만드는 버그 픽스에 , 재미는

없고

• 언제까지 이럴 것인가 ?• 다시 말하지만 문서 자체가 중요한 것이 아니다 . 실천을 하고 기록을

하면 그것이 문서가 되는 것이다 .

Page 22: 팀장님 근데 Cmmi가 뭐에여

• 하지만 더 중요한 것은 CMMI 도 Process 도 시스템도 아니다 .

• 무얼 가져다 놓아도 사람의 마인드가 변하지 않으면 말짱 황이다 .

• 태도가 변하지 않으면 CMMI 도 뭐도 다 짐일 뿐이고 , 더 일만 늘어 난다 .

•제대로 해보려는 마인드가 제일 중요하다 .

Page 23: 팀장님 근데 Cmmi가 뭐에여

• 무엇이건 계획하고 , 기록하고 , 검토하려하는 .• 그리고 개선해 보려는 .

Page 24: 팀장님 근데 Cmmi가 뭐에여

• 하면 좋죠 . 마인드 가지면 좋죠 . 그런데 일 떨어지는 것 보면 .

• 맞는 야그다 . 아무리 개발자가 해볼라 해도 경영진 마인드가 아니면 여전히 삽질일 뿐이다 .

• CMMI 에 의한 프로세스 개선은 경영자의 의지 없이는 불가능하다 . 어떨 지 모르지만 어쨌든 믿어봐야 하지 않겠나 ?

Page 25: 팀장님 근데 Cmmi가 뭐에여

• 계획하라 .• 일정을• 상세한 작업 내용을• 위험요소와 그 대처를• 검토 방법을• 형상관리 방법을• 기술요소를

• 기록하라• 작업한 모든 것을

• 검토하라• 작업된 대상은 검토되어야 한다 .• 문서든 , 코드든 .

Page 26: 팀장님 근데 Cmmi가 뭐에여

• 실제로 프로젝트를 진행할 땐 전사표준 프로세스 (OSSP) 를 가지고 각 프로젝트에 맞게끔 다듬는다 .

• OSSP : Organizational Software Standard Process

• OSSP 에는 표준적인 프로세스와 산출물 예제가 있다 .• 이러한 프로세스를 프로젝트에 맞도록 수정하고 ,• 산출물을 프로젝트에 맞도록 수정한다 .

• 그리고 프로젝트가 종료된 후에 프로젝트 결과물을 가지고 각 조직에 맞도록 다시 OSSP 를 개선해 나간다 .

Page 27: 팀장님 근데 Cmmi가 뭐에여

• 프로세스 개선 !

• 실천항목을 제시하고 , 이의 준수를 요구함을써 개발 프로세스를 개선하려고 한다 .

• 이를 통해 제품 품질을 높이고자 하는 것이다 .

• 단순한 개선된 프로세스의 존재뿐이 아닌 , 그 프로세스가 몸으로 익어진 상태 ( 내재화 ; institutionalization) 을 원한다 .

• 이렇게 내재화가 되어 조직원 전부가 해야할 것을 당연히 여기게 되었을 때 조직이 성숙했다고 한다 .

Page 28: 팀장님 근데 Cmmi가 뭐에여

• EPG : Engineering Process Group• 조직내의 프로세스 개선을 위한 팀

• 경영자의 강한 의지와 실제 개선을 위한 EPG 가 없으면 프로세스 개선은 불가능하다 .

Page 29: 팀장님 근데 Cmmi가 뭐에여

• gap 분석 : 현재의 상태와 goal 과의 차이를 파악한다 .• Readiness Review : 심사준비가 되었는지 파악하고 .• Appraisal : 실제 심사• 모든 실천영역에 대한 실천항목에 대하여 증거의 여부를

파악한다 .• 증거와 더불어 간접증거를 파악하고 인터뷰를 통해 이를

검증한다 .• 증거의 목록을 PIID 라 한다 .

• 모든 영역의 모든 실천항목에 대하여 충분한 실천에 대한 직접증거와 간접증거로 인정되어야만 그 성숙도가 인정된다 .

Page 30: 팀장님 근데 Cmmi가 뭐에여

• 인증이 아니라 rating 이다 .• Carnegie Melon 의 SEI(Software Engineering

Institute) 에서 주관• 국내 현황 : 2007/09 현재 87 개 심사됨• LG CNS, 삼성 SDS 등이 Level 5• 프로젝트 발주 시 가산점을 주기도 한다 .

Page 31: 팀장님 근데 Cmmi가 뭐에여

• CMMI : Capability Maturity Model Integration• SEI : Carnegie Melon 대학의 Software

Engineering Institute• EPG : Engineering Process Group• PIID : Practice Implemented Indicator

Description• PAL : Process Asset Library• OSSP : Organizational Software Standard

Process• WBS : Work Breakdown Structure• PA : Process Area• RR : Readiness Review• Appraisal• SCAMPI : Standard CMMI Appraisal Method for

Process Imporvement

Page 32: 팀장님 근데 Cmmi가 뭐에여

• 본 문서는 CMMI 가 뭔지 감잡기 쉽도록 가이드한 것으로 , 이 문서의 모든 내용은 주관적인 느낌과 판단에 의한 것이며 , 실제와 다를 수 있습니다 . 또한 개인적인 문서로서 특정 업체나 기관과 관계없습니다 . 주의바랍니다 .

• 임도형 , [email protected]