#품질보증 활동을 효과적으로 수행하는 방법
소프트웨어의 결함을 제거하기 위한 재작업 수행 및 이에 따른 추가 비용과 기회 손실 등은 많은 개발 프로젝트로 하여금 그들의 소프트웨어 개발을 위한 현재의 프로세스에 대해 다시 한번 생각하게 한다.
다수의 개발 프로젝트에서는 이러한 문제를 해결하기 위한 수단으로 품질보증 또는 내부감리를 수행하고 있다. 특히, 국제표준화기구(ISO)나 통합 역량성숙도 모델(CMMI)과 같은 국제 규격 인증조직은 인증의 유지를 위해서도 정기적으로 품질보증이나 내부감리를 수행한다. 이러한 조직의 특성은 인증을 유지하다 보면, 알 수 없는 신비스러운 과정을 거쳐 조직이 성공할 수 있을 것이라는 막연한 희망을 가지고 있다.
그러나 품질보증이나 내부감리에 대한 개발 프로젝트 실무자들의 생각은 어떠한가.
품질보증 담당자나 내부 감리인들을 바라보는 실무자들의 일반적 시각은 ‘사소한 일로 꼬투리 잡기’ ‘궤변 늘어놓기’ ‘겁주기’ ‘권위주의’ ‘남의 말 안 듣기’ ‘요구사항 만들어 내기’ ‘프로젝트의 성공과 무관한 문제에 집착하기’ 등 부정적인 견해가 강하다.
능력 있고 의지를 가지고 있는 품질보증 담당자나 내부 감리인들이 철저한 기준에 따라 해당 활동을 수행 하는데도 이런 문제가 발생하게 되는 원인은 ‘잘못된 원칙’을 품질보증 담당자나 내부 감리인들이 의심 없이 무비판적으로 따르고 있기 때문이다.
이 ‘잘못된 원칙들’이 명확히 인지되고 시정되지 않는 한, 품질보증이나 내부감리 방법의 개선 또는 해당 인력에 대한 교육 등은 아무런 도움이 되지 않는다.
잘못된 원칙 첫 번째:품질보증이나 내부감리는 적합성을 보는 것이다.
품질보증이나 내부감리에 가장 장기적인 해악을 끼치는 잘못된 원칙이다. 모든 개발 프로젝트는 품질 그리고 표준이나 고객 요구사항과의 적합성을 달성해야 하며, 품질과 적합성을 달성할 수 있다는 확신을 경영진, 고객, 관련 조직 및 이해 관계자에게 주어야 한다. 이런 목표 달성을 위해서는 시스템이 갖춰져야 하는데, 이 시스템의 관리와 개선을 위해서 관리자들은 시스템에 관한 정보가 필요하다. 관리자들이 필요로 하는 정보를 요약해 보면 크게 다음 세가지를 들 수 있다.
1. 적절성(adequacy) - 고객의 요구사항이 반영된 시스템이 개발되고 있는가?
2. 이행상태(implementation) - 프로젝트가 계획대로 수행되고 있는가?
3. 효과(effectiveness) - 시스템이 의도한 결과를 달성할 것인가?
적합성 중심의 품질보증이나 내부감리는 위의 세가지 요소 중 절차 관련 부분과 프로젝트 상태의 일부만을 보아 왔으며, 이는 관리자의 요구를 충족시키지 못하는 사소하고 쓸모 없는 정보이다. 품질보증 담당자나 내부 감리인들은 이런 적합성의 틀에서 벗어나, 관리자들이 관심을 갖는 문제들을 넓은 관점에서 보고 관리자들에게 최대의 가치를 줄 수 있는 정보를 수집하여 제공할 수 있어야 한다.
잘못된 원칙 두 번째:품질보증이나 내부감리는 사실에 초점을 맞추어야 한다.
매우 좋은 말이지만 좀 더 큰 시각으로 보면, 품질보증이나 내부감리는 사실보다는 시스템에 초점을 맞추어야 하며 이를 통해 시스템의 적절성, 이행상태, 효과에 대한 가치 있는 정보를 관리자에게 제공해야 한다. ‘사실(事實)’은 그 자체로는 의미가 없으며, 그 사실이 프로젝트의 기능 수행 상태 등 중요한 어떤 문제를 드러내 줄 수 있을 때에만 유용한 정보가 된다. 하지만 품질보증 담당자나 내부 감리인들은 사소한 문제점들을 모호한 여건과 연결시켜 ‘부적합’이라는 이름으로 들이밀곤 한다. 따라서 품질보증 담당자나 내부 감리인들은 개별적 사실에 대한 지적에서 벗어나, 프로젝트 차원의 정보를 총체적으로 분석하여 프로젝트에 관한 유용한 결론을 제시하여야 한다.
잘못된 원칙 세 번째:품질보증 담당자나 내부 감리인들은 판단을 내려서는 안 된다.
충분한 정보와 사실을 바탕으로 내리는 합리적인 판단은 품질보증이나 내부감리의 핵심이 될 수 있다. 판단이란 ‘구분과 비교를 통한 평가 혹은 의견 제시’며, 품질보증 담당자나 내부 감리인들은 프로젝트를 표준과 비교하여 적절성과 이행상태 및 효과를 평가해야 한다. 문제는 품질보증 담당자나 내부 감리인들이 판단을 하는 것 자체가 아니라 옳은 판단마저도 내리기를 거부한다는 것이다. 품질보증 담당자나 내부 감리인들은 문서검토, 인터뷰, 작업과정 관찰 등에서 얻은 정보를 종합하여 프로젝트에 대한 합리적인 결론을 끌어내야 한다.
잘못된 원칙 네 번째:품질보증이나 내부감리는 검증(verification) 활동이다.
이런 생각은 품질보증이나 내부감리 활동이 검사(inspection)에서 나온 것이기 때문에 발생한 것이다. 품질보증이나 내부감리는 검증활동이 아니라 정보수집 활동이 되어야 한다. 품질보증 담당자나 내부 감리인들은 단편적인 정보와 사실들을 모아 해당 프로젝트에 대해 의미 있는 판단을 내린 후, 그 결과를 관리자에게 전달해야 한다.
잘못된 원칙 다섯 번째:품질보증이나 내부감리는 지속적인 개선을 유도한다.
이 잘못된 윈칙의 전제는, 모든 프로젝트 구성원은 외부 자극 없이는 하던 일을 그저 관성적으로 반복하는 로봇이라고 생각하는 것이다. 관리자들이 프로젝트에 대한 정보를 구할 수 있는 다른 효과적인 출처가 없기 때문에 품질보증 담당자나 내부 감리인들이 관리자들에게 프로젝트의 상황을 알려주는 가장 중요한 수단이라고 생각한다.
물론, 제대로 수행되면 품질보증이나 내부감리가 지속적 개선에 기여할 수는 있으나, 품질보증이나 내부감리는 범위, 주기, 소요 시간, 전문 지식 측면에서 지극히 제한되어 있으므로 효과적 개선 활동의 추진 동인이 될 수 없다. 품질보증이나 내부감리는 개선이 아닌 시정조치를 위한 프로그램이며, 여기서 시정조치란 이미 발생한 문제의 사후조치를 의미한다. 품질보증이나 내부감리가 프로젝트에 대해 공정하고 객관적인 정보를 제공해 주고 문제점의 개선 현황을 알려 주기는 하지만, 지속적 개선은 능력과 정보와 의지를 가진 관리자와 구성원들이 경영진의 지원을 받아 추진하는 것이다. 품질보증이나 내부감리가 이에 도움을 줄 수는 있겠지만 이끌어 나가는 힘은 될 수 없다.
잘못된 원칙 여섯 번째:품질보증 담당자나 내부 감리인들은 외부 감사자처럼 행동해야 한다.
외부 감사는 두세 명의 감사자들에 의해 단 며칠 동안 수행된다. 그들은 현장에 가서 사람들이 일하는 것을 둘러 보고, 인터뷰를 하고, 문서를 뒤적인 후 사소한 부적합 사항들을 발견하여 보고서를 작성하고는 떠난다. 품질보증 담당자나 내부 감리인들도 이런 관행을 따름으로써 많은 범위를 얕게 볼 수 밖에 없으며, 자기 회사에 맞지 않는 국제 표준의 용어를 그대로 사용함으로써, 관리자들에게 품질보증이나 내부감리는 가능한 한 피하고, 피할 수 없으면 그저 참아 넘겨야 하는 쓸모 없는 시간 낭비라는 인상을 주게 된다.
#품질보증이나 내부감리를 효과적으로 수행하는 방법
개선은 의욕만이 아니라 현상에 대한 정확한 평가에 의해 좌우된다. ISO, CMMI 또는 기타 국제 표준이나 모델들을 잘 활용하면 품질보증이나 내부감리 활동을 통해 프로젝트에 진정한 가치를 줄 수 있다.
위에 언급된 내용이 물론 모든 조직에 해당되는 것은 아니겠지만 혹시라도 여러분의 조직이 위에 언급된 내용 중 일부라도 해당되는 것이 있다면 향후에는 다음 사항을 고려하여 품질보증이나 내부감리 활동을 수행할 것을 권해 본다.
첫째, 시스템에 초점을 맞춘다.
품질보증 담당자나 내부 감리인들은 프로젝트 전체를 볼 수 있도록 능력을 길러야 한다. 이 방법이 성공하기 위해서는 품질보증 담당자나 내부 감리인들이 프로젝트의 성공과 직접적인 관계가 있다는 인식을 가져야 한다. 여기서의 성공은 결함이 없는 상태를 말하는 것이 아니라, 사실에 근거한 관찰을 통해 프로젝트의 건강 상태를 판단하여 관리자나 경영진이 이해하고 사용할 수 있는 형태의 정보로 전달함으로써 장기적 개선을 이끌어 내는 것을 말한다.
둘째, 넓은 시야를 가지고 품질보증이나 내부감리를 실시한다.
적합성이라는 울타리를 벗어나, 프로젝트 전체의 적절성과 효과에 대한 판단을 내려 주어야 한다. 적합성도 물론 중요하나, 품질보증이나 내부감리를 프로젝트의 이행과 관리에 필요한 가치 있는 행위로 만들고자 한다면, 적합성에 무게 중심을 두어서는 안 된다.
셋째, 확신을 가지고 결론을 내린다.
사소하고 개별적인 문제를 그럴 듯하게 표현하여 중요한 문제로 포장하지 말아야 한다. 품질보증 담당자나 내부 감리인들은 해당 활동 수행 중에 발견된 사항들이 프로젝트 차원에서 갖는 의미를 파악, 그것이 왜 문제인지를 명확히 표현해야 한다. 다시 말해, 품질보증 담당자나 내부 감리인들은 많은 생각과 고민 끝에 결론을 내리고 그 결론을 경영진에게 보고할 자세가 되어 있어야 한다. 그리고 품질보증 담당자나 내부 감리인 자신도 틀릴 수 있음을 인정해야 한다.
넷째, 프로젝트 관리자와 파트너 관계를 구축한다.
해당 프로젝트 관리자와 싸우지 말라. 품질보증이나 내부감리의 객관성과 깊이와 엄격함에 대해 타협해서는 안되지만, 품질보증이나 내부감리는 프로젝트 관리자를 도와주기 위한 것이라는 점을 설득하기 위한 노력을 해야 한다. 대부분의 프로젝트 관리자들은 품질보증이나 내부감리 자체에는 반대하지 않는다. 품질보증 담당자나 내부 감리인들과 프로젝트 관리자들을 갈라 놓는 벽을 쌓게 되는 것은 해당 활동의 수행이 아니라 그 수행 방식에 있다.
다섯째, 프로젝트 단계별 품질보증이나 내부감리 수행 방법을 달리하라.
프로젝트 개발 단계 초기에 품질보증 담당자나 내부 감리인들은 대부분의 시간을 프로세스 코치로서 활용하는 것이 좋다. 즉, 프로젝트에서 필요로 하는 프로세스를 식별한다거나 프로젝트의 프로세스, 표준 및 절차, 측정치 등의 문서화 활동을 지원한다거나 타 프로젝트의 베스트 프랙티스를 조정하여 적용할 수 있도록 도움을 주는 것이 바람직하다. 그리고 프로젝트가 진행되어 감에 따라 품질보증 담당자나 내부 감리인들은 초기의 프로세스 코치 역할을 수행함으로써 친숙해진 프로젝트 프로세스와 산출물에 대한 이해를 바탕으로 보다 효과적인 품질보증이나 내부감리 활동을 수행해 나갈 수 있게 된다.
품질보증 담당자나 내부 감리인들이 과거의 실수들을 피하는 방법을 배울 수 있다면, 품질보증이나 내부감리 활동을 프로젝트에 유용하고 필수적인 활동으로 만들 수 있게 될 것이다.
◆이민재 티큐엠에스(www.tqms.co.kr) 대표는
미국 로체스터대학교를 졸업하고 뉴욕대학교 대학원에서 정보기술 감리학을 전공했다. 현재 SEI 공인 CMMI 선임심사원으로 국내 다수 기업에 대한 프로세스 개선 컨설팅 및 CMMI 공식 인증 심사를 수행하고 있다. 주요 저서로는 ‘국내 기업 CMM 도입을 위한 안내서’와 번역서인 ‘CMMI의 이해(Interpreting the CMMI)’ 등이 있다.