study/question

question <5> | 근본 원인 분석(RCA)이란? [1/3]

yjlee06 2024. 11. 22. 11:04
반응형

RCA의 사전적 의미

근본 원인 분석이란?

근본 원인 분석(Root Cause Analysis 이하 RCA) 어떠한 문제가 발생하였을 때 문제의 주요 원인을 발견하고 처리하기 위한 체계적인 절차를 의미합니다. 

 

문제와 원인 간의 관계를 더욱 자세히 파악하기 위해서는.
  1. 소프트웨어
    log나 문제 재현 과정과 같은 정보를 분석하여 문서화하고 발생과정을 토대로 타임라인을 구현합니다.

  2. 프로젝트
    영향을 주는 제약 조건과 프로젝트 요소를 정의하고 상관관계를 분석하여 문서화합니다.
RCA의 프로세스
  1. 시스템 원인 선별
    소프트웨어의 품질을 높이고 문제를 영구적으로 해결하기 위해서는 문제의 근본적인 원인을 파악합니다. (원인은 복수개로 정의될 수 있습니다.)
  2. 해결여부
     문제를 발견했다면 일단 "해결할 수 있는 가"를 판단해야 합니다. 예를 들어 비용과 시간 같은 제약 조건에서 해결 가능성을 판단하려면 추가적인 예산 요청이나 기간을 늘릴 수 있는지 확인해야 하며, 소프트웨어 문제 해결 여부를 판단하려면 사용될 예산이 예산이 단기적인지, 장기적인지 고려하여 결정해야 합니다.
  3. 문제 재발 방지
    모든 문제를 영구적으로 제거할 수 있는 것은 아닙니다. 일시적으로 문제가 해결되었으나 오류를 유발할 수 있는 잠재적인 원인이 존재하는 상태라면, 해당 원인이 발생시키는 문제를 대비하도록 조치 취하는 것 또한 필요합니다.
소프트웨어 시스템에서의 RCA 프로세스에 대하여.

소프트웨어 시스템에서 발생한 문제의 원인은 일반적인 문제 해결 과정과 달리 더 효율적인 결과를 낼 수 있는 해결 방안은 무엇인지를 고려해야 합니다.

그 이유는 일반적인 문제해결 과정보다 시스템을 수정할 때 고려해야 할 변수가 더욱 많기에 때로는 시스템에 덜 영향을 주는 방안이 효율적일 수도 있습니다.

 

RCA를 통한 기대할 수 있는 효과
  1. RCA는 문제의 증상만 완화하는 것이 아닌 근본적인 원인을 발견하고 제거하여 결함이 재발하는 것을 방지합니다.
  2. 문제의 근원을 제거함으로써 소프트웨어 품질을 향상합니다. (신뢰성 향상)
  3. 비용이 많이 드는 문제를 해결 위해 원인을 발견할 때까지 분석을 진행할 수 있습니다.
  4. 문제가 재발하는 것을 방지함으로써 문제 재발로 인해 사용되는 추가비용을 절약할 수 있습니다. 이로 인하여 안정적인 프로젝트 운영을 할 수 있습니다.

문제해결을 할 때 고려해야 할 점

오류는 항상 원인이 있기에 발생합니다.

소프트웨어는 아무 이유 없이 문제가 발생하지 않습니다.  문제는 시스템, 프로세스, 요구 사항과 같은 프로젝트 요소에서의 실수로 인해가 발생한 것임을 명심해야 합니다.

 

문제를 해결하는 과정은 마피아 게임이 아닙니다.

문제가 발생한 시점에서 집중해야 할 것은 실수한 팀원이 아닌 문제의 원인 파악과 해결 방안 모색하는 것이며 최종적으로 RCA 계획을 진행하는 팀원은 해결 방안 모색에 초점을 두고 진행해야 합니다.