본문 바로가기
CS 지식/소프트웨어 공학

소프트웨어 개발 프로세스 개선 활동 (The SEI CMMi)

by 코딩하는 동현 2024. 10. 7.

Process Improvement (프로세스 개선)는 소프트웨어 개발 프로세스를 이해하고 개발 프로세스를 변경하여 제품의 품질을 높이거나 비용과 개발 시간을 줄이는 과정을 의미합니다. 이 과정은 조직이 소프트웨어의 품질을 향상시키고 비용을 절감하기 위해 매우 중요한 역할을 합니다.

1. 프로세스 개선의 목표

  • 품질 향상: 소프트웨어의 품질을 높이는 것은 고객의 요구를 충족하고 신뢰성을 증가시키는 데 중요한 요소입니다.
  • 비용 절감: 효율적인 프로세스 개선을 통해 불필요한 비용을 줄이고, 개발 기간을 단축할 수 있습니다.

2. 프로세스 개선의 활동

프로세스 개선은 다음과 같은 주요 활동으로 구성됩니다:

 

1. Analysis (분석)

  • 기존 프로세스의 상태를 평가하고, 개선이 필요한 부분을 식별하는 과정입니다.
  • 데이터 수집, 피드백 요청, 프로세스 흐름도 작성 등을 통해 현재 프로세스를 면밀히 분석합니다.
  • 문제 영역을 파악하고, 어떤 변경이 필요한지를 이해합니다.

2. Change (변경)

  • 분석 결과에 기반하여 기존 프로세스를 수정하거나 개선하는 단계입니다.
  • 새로운 프로세스 또는 절차를 정의하고, 이를 조직 내에 적용할 계획을 수립합니다.
  • 변경 사항을 문서화하고, 필요한 교육 및 지원을 제공합니다.

3. Measurement (측정)

  • 개선된 프로세스의 효과를 평가하고, 성과를 측정하는 단계입니다.
  • 지속적으로 성과를 모니터링하고, 필요에 따라 추가적인 개선 조치를 취합니다.

Process Measurement (프로세스 측정)

Process Measurement (프로세스 측정)은 소프트웨어 개발 프로세스의 성능을 평가하기 위해 데이터를 수집하는 활동을 의미합니다. 이 활동은 프로세스 개선을 위한 필수적인 부분이며, 데이터를 기반으로 소프트웨어 개발에서 시간, 자원, 결함 등의 다양한 요소를 측정하고 분석합니다. 하지만 측정 활동은 명확하게 정의된 프로세스가 없으면 어려울 수 있습니다.

주요 내용:

  1. 정량적 데이터 수집의 필요성:
    • 가능한 한 정량적 데이터(quantitative process data)를 수집하는 것이 중요합니다. 이를 통해 조직이 프로세스의 효율성을 평가하고 개선할 수 있습니다.
  2. 명확한 프로세스 표준의 부재:
    • 많은 조직들이 명확한 프로세스 표준을 가지고 있지 않아 무엇을 측정해야 할지 알기 어렵습니다. 즉, 측정할 대상을 알기 위해서는 먼저 프로세스를 정의해야 합니다.
  3. 조직의 목표와 프로세스 개선:
    • 조직의 목표는 프로세스 개선을 주도하는 요소여야 합니다. 조직이 어떤 목표를 추구하느냐에 따라 수집해야 할 데이터와 측정 방법이 결정됩니다.

프로세스 메트릭스 예시:

  • 프로세스 활동 완료 시간:
    • 활동이나 프로세스를 완료하는 데 걸린 캘린더 시간(calendar time) 또는 노력(effort).
  • 활동에 필요한 자원:
    • 프로세스나 활동에 투입된 총 노력(total effort)을 사람-일(person-days) 단위로 측정.
  • 특정 이벤트 발생 횟수:
    • 발견된 결함(defects)의 수와 같은 이벤트 발생 횟수를 측정.

결론: 프로세스 측정은 조직이 소프트웨어 개발을 개선할 수 있는 중요한 도구입니다. 이를 위해서는 먼저 프로세스를 정의한 후, 그에 맞는 메트릭스를 수집하여 분석하는 것이 필요합니다.


CMMi 기법

CMMI (Capability Maturity Model Integration)에서는 프로세스 영역(Process Areas)이 여러 개로 구성되며, 각 영역은 소프트웨어 개발 프로세스에서 중요한 활동과 목표를 다룹니다. CMMI for Development 모델을 기준으로, 22개의 프로세스 영역이 있습니다. 이들은 성숙도 단계에 따라 다르게 분류되며, 크게 레벨 2 (Managed), 레벨 3 (Defined), 레벨 4 (Quantitatively Managed), 레벨 5 (Optimizing)로 구분됩니다.

CMMI의 목적

  1. 프로세스 개선: 조직의 개발 프로세스를 체계적으로 개선하여 제품 및 서비스의 품질을 향상시킵니다.
  2. 효율성 증대: 프로세스의 표준화와 최적화를 통해 개발 비용과 시간을 절감합니다.
  3. 경쟁력 강화: 성숙한 프로세스를 통해 시장에서의 경쟁력을 높입니다.
  4. 리스크 관리: 체계적인 프로세스 관리를 통해 프로젝트 리스크를 효과적으로 관리합니다.

 

Level 1: Initial (초기 단계)

  • 특징: 프로세스가 정형화되지 않고, 예측 불가능하며, 조직 내에서 일관성이 부족합니다.
  • 문제점: 프로젝트의 성공 여부가 개인의 역량에 크게 의존하며, 반복적인 실패가 발생할 수 있습니다.

 

Level 2: Managed (관리 단계)

  • 특징: 기본적인 프로젝트 관리 프로세스가 수립되어 있으며, 프로젝트가 계획대로 진행됩니다.
  • 주요 프로세스 영역: 요구사항 관리, 프로젝트 계획, 프로젝트 모니터링 및 제어, 공급자 계약 관리, 측정 및 분석.

Level 3: Defined (정의 단계)

  • 특징: 조직 전반에 걸쳐 표준화된 프로세스가 정의되고 문서화됩니다. 모든 프로젝트는 이 표준 프로세스를 따릅니다.
  • 주요 프로세스 영역: 조직 프로세스 정의, 요구사항 개발, 기술 솔루션, 제품 통합, 검증, 검증, 리스크 관리.

Level 4: Quantitatively Managed (정량적 관리 단계)

  • 특징: 프로세스가 정량적으로 관리되고, 성과가 측정되어 지속적으로 개선됩니다.
  • 주요 프로세스 영역: 측정 및 분석, 프로세스 성과 관리, 품질 관리.

Level 5: Optimizing (최적화 단계)

  • 특징: 프로세스가 지속적으로 개선되며, 혁신적인 기술과 방법론을 도입하여 최적의 성과를 달성합니다.
  • 주요 프로세스 영역: 지속적 프로세스 개선, 기술 혁신, 프로세스 최적화.

 

반응형

댓글