본문 바로가기
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 (최적화 단계)

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

 

반응형

댓글