2007년 6월 3일 일요일

공정이 제품을 만듭니다.

요즘 우리나라 소프트웨어 업계에서 "소프트웨어 품질"이라는 주제가 조금씩 이슈화 되고 있습니다. 이전에는 개념조차 없던 것이 이제는 "Good Software"라는 인증이 생기고 업체들도 해당 인증을 받기 위해 노력하는 곳이 많아졌습니다. 어느 정도 규모가 있는 회사에는 품질 관리(Quality Control)또는 품질 보증(Quailty Assurance) 부서를 운영하기 시작했습니다. 굉장히 고무적인 일이지요.

하지만 안타깝게도 이렇게 의욕적으로 품질에 공을 들이는 회사들도 소프트웨어 품질을 어떤 방법으로 향상시켜야 하는지에 대해서는 별 아이디어가 없는 것으로 보입니다. 컴파일러 옵션은 줄줄 꿰고 있어도 핸드폰의 간편 전화번호 검색 기능은 모르는 우리, 바로 소프트웨어 개발자들이 품질 개선의 주역이니 이해가 갈만 합니다.

우리 주위에는 이런 문제에 대해 경험을 가지거나 연구를 해온 선배가 없습니다. 300에 등장하는 스파르타 전사들이 갑옷도 없는 맨몸에 창과 방패 하나씩 들고 페르시안들과 싸웠던 것처럼 우리도 에디터와 컴파일러 하나로 수십년 동안 소프트웨어를 개발해 왔습니다. 버그가 적은 소프트웨어라는 말은 들어봤어도, 품질이 좋은 소프트웨어라는 말은 들어본 적이 없는 것이지요.

결국 우리가 품질을 위해 현재 할 수 있는 일은, 테스트 뿐입니다. 일단 소프트웨어의 개발을 마친 후에는테스트, 디버그, 테스트, 디버그 ... 의 사이클로 버그가 어느 수준 이상으로 발견되기 전까지 반복합니다. 그리고 테스트-디버그 사이클의 비용은 전체 소프트웨어 개발 비용의 40%에서 70%까지 차지하게 됩니다.

"원래 소프트웨어 품질 비용은 비싼거야."라고 넘길 수도 있지만, 이 정도로 많은 비용이 든다는 것은 큰 개선이 가능하다는 뜻도 됩니다.

제조업에서는 "수율(Yield)"이라는 개념이 있습니다. 투입한 자재대비 품질에 이상이 없는 제품을 얻는 비율을 말하는 것이지요. 수율이 높을 수록 낭비되는 비용이 적습니다. 특히 휴대폰과 같은 고부가가치 상품은 애써 만들어 놓은 제품이 출하전 검사 단계에서 불량 판정을 받아 폐기하거나 수리(또는 재작업)를 하는 비용이 만만치 않기 때문에 수율을 높이기 위한 노력을 엄청나게 기울입니다.

제조업에서는 제품을 내보내기 전의 품질 검사/감시 이상으로, 제품을 만드는 공정 내에서의 품질에 대한 감시를 중요하게 여기고 투자를 합니다. 각 생산 공정(Process)의 품질을 측정하고, 품질 저하의 원인을 공정에서 찾아내어 이를 개선합니다. 이렇게 개선된 공정 하나하나는 더 품질이 좋은 제품의 원동력이 되고 결국 원가 절감으로까지 이어집니다.

다시 눈을 돌려, 우리의 소프트웨어 공장을 봅시다. 우리가 만드는 소프트웨어는 그 어느 분야의 제품 못지않게 복잡하고 정교한데도, "공정" 따위는 없습니다. 우리 소프트웨어가 어떤 모습을 하고 있을지도 첫번째 컴파일이 끝나기 전까지는 알지 못합니다. 그 뿐인가요? 제조업에서 제품을 생산하는 것이 작업자의 "손"이라면, 소프트웨어업에서는 작업자의 "정신"이라 할 수 있는데, 많은 개발자들이 집중력이 떨어지는 근무환경에서 잠을 이겨가며 제품을 만들고 있습니다.

제품은 "공정"에서 나오는 것이지 "품질 감시"에 의해 만들어 지는 것은 아닙니다. 테스트 이전에 소프트웨어의 설계, 요구 사항 및 기능 정의, 작업자의 명확한 임무 정의, 일정 계획 등이 정상적으로 이루어지고 있는지를 점검해야 합니다. 지극히 상식적인 일이지만, 잘 지켜지지는 않지요. 마치 건강해지려면 담배를 끊고, 다이어트를 하고, 운동을 하고, 긍정적인 사고를 가지며, 브로컬리와 같은 녹화색 야채를 챙겨 먹어야 하지만 그 어느것 하나 생활에 반영하기가 어려운 것처럼, 이들도 그럴 것입니다.

하지만 한가지 확실한 사실은, 건강을 위한 노력을 하지 않으면 사소한 질병 때문에 대단한 의료비용을 지출하거나 죽을 수도 있다는 것입니다. 우리도 소프트웨어 개발 공정에 대한 개선을 시작하지 않는다면, 언제 죽을지 모르는 일입니다.

성공이냐/실패냐의 결과만을 판정하기 전에, 실패하지 않도록 최선을 기울여야 합니다.

"공정이 제품을 만듭니다."

댓글 없음:

댓글 쓰기