Chapter 1 - 소프트웨어 품질이란 무엇인가? :: 2010/01/12 21:21
1.1 품질에 관한 대중적인 관점
품질에 관한 일반적인 관점은 무형의 특성을 가지고 있다는 것이다.
품질에 대해서 거론되고, 느끼고, 심판할 수는 있지만 그 무게를 잰다거나 측정할 수 없다.
품질이란 것을 보기 전까지는 알 수 없다.
또한 품질을 바라보는 관점이 품질은 고급스럽고, 우수하며, 맛이 좋다라고 보는 것이다.
비싸고 정교하며 보다 복잡한 제품들이 높은 수준의 품질을 가지고 있다고 생각한다.
결과적으로 비싼 제품이 품질이 높다고들 생각하는 것이다.
1.2 품질을 바라보는 전문가의 관점
산업에서는 대중적인 관점에서 어긋난 품질의 개념과 막연함은 품질 개선에 전혀 도움을 주지 않는다.
Grosby (1979)는 품질을 '요구사항의 준수'라 정의하였고, Juran과 Gryna (1970)는 '사용목적의 적합성'이라 정의하였다.
'요구사항의 준수'는 요구사항이 오해 없이 명백하게 정의되어야 함을 내포하고 있다. 그런 다음 개발이나 생산 단계에서 그러한 요구사항들의 준수를 확인하기위해 규칙적으로 측정하는 활동들이 행해진다. 요구사항을 준수하지 않는 것은 곳 결함이며, '품질의 부재'라고 할 수 있다.
예를 들어, 리무진이 리무진의 모든 요구사항을 만족한다면, 이 차는 Quality Car라고 할 수 있다.
만약 티코가 티코의 모든 요구사항을 만족한다면, 이 티코 역시 Quality Car라고 할 수 있다.
그러나 리무진과 티코는 매우 다른 스타일, 성능, 경제성을 가지고 있다. 하지만 이 두 차가 각기 자신만의 표준을 준수하고 있다면 이 두 차 모두 Quality Car라고 할 수 있는 것이다.
'사용목적의 적합성'이란 정의는 어떤 제품이나 서비스가 고객의 사용 목적에 적합한가를 포함하고 있는 고객의 요구사항과 기대를 고려한다. 다른 고객들이 각자 다른 방법으로 제품을 사용하기 때문에 제품은 사용목적의 적합성의 다양한 요소를 지니고 있다. Juran은 이러한 요소들 각자가 품질 특성이며 이러한 특성들은 사용목적의 적합성의 매개변수로 구분되어질 수 있다고 하였다. 가장 중요한 두 매개변수가 바로 '디자인의 품질'과 '적합성의 품질'이다.
디자인의 품질은 제품의 등급이나 모델로 잘 알려져 있다. 이는 곧 구매력의 범위와 관련되어 있다. 등급의 차이는 의도되고 디자인된 차이점의 결과로써 차를 다시한번 예로 들자면, 모든 자동차는 사용자에게 운송이라는 서비스를 제공해주지만 이러한 차의 모델에 따라 크기, 안락함, 성능, 스타일, 경제성, 그리고 상태가 다르다.
반대로 적합성의 품질은 제품이 디자인을 준수하는 정도이다.
다시 말해, 디자인의 품질은 요구사항과 명세의 결정으로 여겨질 수 있고, 적합성의 품질은 요구사항의 준수라고 할 수 있다.
이런면에서 '요구사항의 준수'나 '사용목적의 적합성'은 비슷한 정의를 가지나, 다른 점이 있다면 사용목적의 적합성이란 개념은 소비자의 요구사항과 기대를 위한 보다 더 확실한 역할을 함축하고 있다는 것이다.
1.3 소프트웨어 품질이란?
상품 품질의 관점으로 보자면 '버그'가 없다라고 할 수 있다. 이 말인 즉슨, 만약 소프트웨어가 너무 많은 기능적 결함을 가지고 있다면 기본적인 기능조차 만족하는 요구사항을 만족할 수 없으므로, 품질이란 '요구사항의 준수'라고 할 수 있다.
이러한 정의는 결함율(예를 들어, 소스코드 백만줄 당 결함의 수 또는 단위), 신뢰성(예를 들어, 작업 n시간 당 실패 갯수, 실패한 평균 시간 또는 특정 시간 동안 실패하지 않을 확률)으로 표현할 수 있다.
고객 요구사항은 설문 조사를 통하여 '만족', '불만족'을 %로 표현할 수 있는데 IBM은 이를 CUPRIMDSO (Capability[functionality], usability, performance, reliability, installability, maintainability, documentation/information, service, and overall)의 레벨로써 측정하고, HP는 FURPS(functionality, usability, relability, performance, and serviceability)로 측정한다.
전반적인 고객의 만족도와 다양한 품질 특성(Quality Attributes)를 상승시키기 위해서는 품질 특성이 계획(Planning) 및 디자인 단계에서 고려되어야 한다. 하지만 품질 특성이 서로 다른 품질 특성에 영향을 끼칠 수 있다. 예를 들어, 소프트웨어의 높은 기능적 복잡도는 유지보수성을 달성하기 어렵게 만든다. 소프트웨어의 유형이나 고객에 따라 다른 품질 속성의 가중치가 부여된다. 예를들어 복잡한 네트워크나 실시간 처리를 다루는 고객은 성능이나 신뢰성에 가장 높은 가중치를 줄 수 있지만, 독립 시스템이나 간단한 작업을 다루는 고객의 경우 편의성이나 설치, 그리고 문서화에 가장 높은 가중치를 줄 수 있다. 그러므로 다양한 고객이 사용하는 소프트웨어의 다양한 품질 속성을 위한 목표를 설정하기 위해서 고객의 요구사항을 만족하기란 쉽지 않다.
모든 소프트웨어의 결함의 15% 이상이 요구사항의 오류로부터 비롯된다. 개발 프로세스는 요구사항 품질이 저품질의 소프트웨어를 생산한다고 생각하지 않는다.
또다른 소프트웨어 품질을 바라보는 관점은, 프로세스 품질과 최종 산출물 품질이다. 고객의 요구사항으로부터 소프트웨어 상품의 완성까지 개발 프로세스는 복잡하고 종종 몇 개의 단계를 포함하고 각각 피드백을 할 수 있다. 각 단계에서 중간 산출물이 다음 단계를 위해 생산되며, 다음 단계에서 이러한 중간 산출물을 받는다. 이 때, 중간 산출물은 각각 최종 산출물의 품질에 영향을 줄 수 있는 품질 속성을 갖는다.
흥미롭게도 우리가 외부 고객, 그리고 개발 절차의 다음 단계를 위한 내부 고객까지 포함한 품질의 정의로 고객의 개념을 확장시키면, 프로세스 품질 역시 이 정의에 적용될 수 있다. 만약 개발 프로세스의 각 단계에서 다음 단계의 고객을 위한 요구사항을 만족한다면 최종 산출물 역시 특정 요구사항들을 만족할 것이라고 생각하지만 이는 현실을 너무 단순화한 것이다. 왜냐하면 개발 프로세스의 각 단계에서 매우 다양한 요소들이 존재하며, 이는 각 단계들의 요구사항을 만족하는 능력에 영향을 줄 것이다. 개발 중에 품질을 향상시키기위해서는 개발 프로세스 모델이 필요하며, 우리는 그러한 프로세스 안에서 일정한 방법이나 접근법등을 선택하고 배치할 필요가 있다. 또한 적절한 도구와 기술들을 사용해야 한다. 우리는 개발 프로세스와 그에 속하는 단계의 특성들과 매개변수들의 측정이 필요할 뿐만 아니라, 개발 프로세스가 상품의 품질 목표들을 향해 제어되고 이동하고 있다는 확신을 심어주기 위한 측정지표(metrics)과 모델이 필요하다.
1.4 전체 품질 관리(TQM: Total Quality Management)
전체 품질 관리란 용어는 원래 1985년 Naval Air Systems Command에서 자신의 품질 향상을 위한 일본식 관리 기법을 표현하기 위해 만들어 졌다. 이 용어는 많은 뜻으로 해석될 수 있으나 일반적으로 품질과 고객의 만족을 관계지음으로써 지속적인 성공을 달성하기위한 관리 스타일이라고 표현한다. 이런 접근법의 기반은 조직의 모든 구성원들이 프로세스와 상품, 그리고 서비스의 향상에 참여하는 문화의 창조라고 할 수 있다.
1980년 이래로, 미국의 많은 회사들이 TQM을 품질에 적용하고 있다. HP의 TQC(Total Quality Control), 모토로라의 Six Sigma Strategy, 그리고 IBM의 Market Driven Quality가 그것들이며, 기타 다른 회사들도 각기 자신들만의 품질에 적용하고 있다. 자세한 사항은 책을 참고하시라.
이러한 다양한 방법론에도 불구하고, TQM 시스템의 핵심 요소는 다음과 같이 요약할 수 있다.
- 고객 중심: 목표는 전체 고객 만족도를 달성하는 것이다. 고객 중심 요소는 고객의 요구를 연구하고 고객의 요구사항을 수집하며, 고객의 만족도를 측정하고 관리하는 것이다.
- 프로세스: 목표는 프로세스의 변수를 줄이고 지속적으로 프로세스 향상을 꾀하는 것이다. 이 요소는 비지니스 프로세스와 상품 개발 프로세스를 포함하고 있으며 비지니스 프로세스 향상을 통해 상품 품질이 향상 될 것이다.
- 품질의 인간적인 측면: 목표는 회사 전체적으로 품질 문화를 창조하는 것이다. 집중 영역으로써 리더쉽, 관리 방침, 전원 동참, 직원 우대, 그리고 다른 사회적, 심리적, 그리고 인간적 요소들이 있다.
- 측정 및 분석: 목표는 목표 지향 측정 시스템에 의한 모든 품질 매개변수들의 지속적인 향상을 이끌어 내는 것이다.
아래 그림이 이러한 핵심 요소를 설명해 주고 있다.

다양한 조직적 프레임워크들이 TQM 철학을 입증하는 품질의 향상을 위해 제시되고 있다. Plan-Do-Check-Act, Quality Improvement Paradigm/Experience Factory Organization, SEI Capability Maturity Model, Lean Enterprise Management 등이 있으며 자세한 사항은 역시 책을 참고하시길.
간단히 설명하자면, Plan-Do-Check-Act는 단일 프로세스 또는 생산 라인을 최적화하기 위한 피드백 사이클에 기반을 두고 있다. Quality Improvement Paradigm/Experience Factory Organization은 지속적으로 조직의 향상을 꾀하는 것이 목표이다. 그들의 점진적 목표와 그 목표들의 상태를 평가하는데 기반을 두고 있다. SEI의 CMM은 레벨 4에 도달할 때까지 핵심 프로세스영역의 평가에 기반을 둔 단계적 프로세스 향상 모델이다. 이 모델의 목적은 결함 예방, 기술 혁신, 그리고 프로세스 변경 관리를 통해 지속적인 프로세스 향상을 달성하는 것이다. Lean Enterprise Management는 부가가치 활동들과 아닌 활동들의 제거나 축소 상의 상품의 집중 이론에 기반을 두고 있다. 목표는 소프트웨어를 만드는데 필요한 활동들을 최소화하고, 생산자의 요구사항에 맞도록 프로세스를 수정하는 것이다.
1.5 결론
품질의 가장 적합한 정의는 '고객의 요구사항의 준수'이다. 사실상 운영상 품질의 정의는 두가지 수준으로 이루어져 있다. 하나는 고유한 상품 품질(q)와 다른 하나는 고객 만족도(Q)이다.
TQM 철학은 품질과 고객의 만족을 관계지음으로써 지속적인 성공에 목표를 두고 있다. 위에서 언급한 4가지 핵심 요소인 (1) 고객 중심, (2) 프로세스 향상, (3) 품질의 인간적인 측면, (4) 측정 및 분석으로 이루어져 있다.



