티스토리 뷰
예전에 부분적으로 다룬 적은 있는데 오랜만에 Agile에 대해서 정리해 보려고 합니다.
방법론 하면 떠오르는 것이 매우 많습니다.
폭포수모델, 나선형모델, 점진적프로토타입, CBD 등 여러가지 개발방법론이 있었습니다.
각 모델의 장점과 단점이 있지만 요즘에는 개발 방법론 중 애자일이 가장 관심을 받고 있습니다.
그 이유는 빠르고 지속적으로 변화하는 S/W 개발 환경에 있다고 볼 수 있습니다.
사용자의 다양한 요구사항과 시스템을 필요로하는 순간에 배포해야 하는 환경에서는
기존의 문서 위주, 절차 위주의 방법론으로는 빠르게 대응할 수 없기 때문이죠.
Agile 방법론은 "절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 방법론"이라고 할 수 있습니다.
Aigle 방법론의 특징은 다음과 같이 이야기 할 수 있습니다.
- 프로세스보다 사람 중심
- 문서나 절차보다 개개인의 상호작용이 중요
- 고객의 적극적인 참여 필요
- Predictive 보다 Adaptive 함 (가변적 요구에 대응)
그렇다면, 기존의 개발 방법론과 Agile 방버론의 차이를 살펴보면 다음과 같습니다.
항목 | 기존 개발 방법론 | Agile 개발 방법론 |
계획수준 | 각 단계별 세부 계획 수립 | 반복적인 주기 설정 다음 주기에 대해서만 세부계획 수립 |
요구사항 | 초기 요구사항에 대한 기준 설정 요구사항 변경시 절차에 따른 형상관리 필요 |
요구사항의 변경, 추가가 용이 |
시스템 개발 | 분석 및 설계단계에서 구체적인 시스템 설계, 개발 | 실제 구현된 기능을 통해 실현가능성, 효과 확인 후 구현 |
테스트 | 단위, 통합, 시스템 테스트순으로 진행 | 작은 단위의 기능별 구현/테스트를 반복 |
표준 프로세스 | 개발 전 표준화된 프로세스 제정 모든 실행 계획에 따라 구현 |
반복적인 iteration 강조 프로세스는 유연하게 적용 |
프로세스나 방범론에서 현재 키워드로 자리잡고 있는 것은 6 Sigma, CMMI, Agile 입니다.
서로 다른 영역에서 프로젝트의 성공을 위해 활용되고 있는데요. 개발자는 Agile 방법론으로 개발을 진행하고, 조직은 CMMI라는 프레임워크로 관리하고, 경영은 6 Sigma를 활용하면 프로젝트의 실패를 초래하는 위험 요소를 최소화 할 수 있다는 것입니다.
다른 곳에서 발췌한 자료에서 이 세가지를 비유적으로 설명한 것이 있어 옮겨봅니다.
하늘에서 내리는 비를 프로젝트의 실패를 초래하는 위험요소라고 하였을 때, 6시그마와 CMMI, 그리고 Agile 프로세스는 실패를 막아주는 우산이 됩니다.
Agile프로세스는 우산의 살과 지주가되고, CMMI는 살을 하나로 모아 비를 막아줍니다. 가장 정점의 꼭지에는 6시그마가 존재합니다.
이들은 하나가 되어 우리가 비를 맞지 않고, 맞더라도 최대한 적은 양의 비를 맞도록 해줍니다.
6시그마와 CMMI, Agile프로세스는 만든이가 다릅니다. 6시그마는 산업공학, 다시 말해 경영학도에 가까운 사람들이 만들어 낸 방법론입니다. CMMI는 개발에 가까운 관리자들이 만들어낸 방법론이며, Agile은 개발자들이 만들어낸 방법론입니다. 이런 태생적 차이로 이들은 서로 다르지만 모이면 하나가 됩니다.
CMMI의 대 전제는 "조직 고유의 프로세스가 존재한다."입니다. 조직 고유의 프로세스를 CMMI라는 하나의 통합 프레임워크에 통합시키고 직관적으로 관리가능하게 하고, 최상의 프로세스로 개선시켜 줍니다. 대부분의 실패한 CMMI프로젝트는 CMMI를 통하여 조직에 프로세스를 만드려고 하기 때문입니다.
조직내의 고유한 프로세스는 Agile 개발 프로세스로 충분히 가능합니다. Agile 방법론으로 각 프로젝트 별로 구성된 프로세스는 CMMI에 의하여 조직자체가 통합적으로 관리하게 됩니다. 물론 TSP/PSP나 RUP등과 같은 기존의 다른 프로세스들도 마찬가지 입니다. (하지만, 현대사회는 Agility가 중요합니다.) Agile프로세스가 팀이나 프로젝트에서 개인적으로 사용하는 관행을 탈피해야 합니다.
마지막으로, 6시그마는 CMMI레벨 4 이상의 환경에서 정확히 동작합니다. 뒤집어 이야기 하면, CMMI레벨 2,3을 만족하는 조직에서 최적의 퍼포먼스를 낼 수 있습니다. 실제 CMMI레벨 4,5에는 프로세스 영역이 몇개 존재 하지 않습니다. 보잉의 존부씨의 말로는 CMMI개발자들이 레벨4/5환경을 잘 알수 없기 때문이라고 말하기도 하였습니다. 이 부분은 개발이나 관리의 영역이 아닌, 수치화와 유기적인 조직이 중시되는 경영의 영역이 됩니다. 6시그마는 이하 모든 프로세스를 기반으로 완전한 정형적 환경을 구축하게 해줄 것입니다.
'컴퓨터공학 > 소프트웨어공학' 카테고리의 다른 글
기술 준비 단계를 나타내는 기술 성숙도(TRL)에 대해~ (1) | 2015.02.08 |
---|---|
소프트웨어공학의 3R(Reverse-Engineering, Re-Engineering, Re-Use)에 대하여 (0) | 2011.10.01 |
ITSM(IT Service Managment)에 대하여 (0) | 2010.06.25 |
소프트웨어 개발 생명주기(SDLC)에 대하여 (2) | 2009.05.13 |
댓글