소프트웨어(SW) 개발은 타 산업과의 융합을 거쳐 제품 가치를 향상시키고 새로운 서비스를 개발하는 창조적 작업이라고 할 수 있다. 그런데도 국내 SW 개발자들은 산출물에 대한 요구사항이 명확하지 않은 상황에서 발주자가 만족할 때까지 코딩하고 또 코딩하는 일을 반복하고 있다.
왜 이런 일들이 벌어지는 것일까. 아마도 개발 초기에는 물리적 실체를 볼 수 없는 SW의 특성과 최종 결과물이 나온 후에야 비로소 그 기능과 품질이 원했던 것과 같은지 확인하기 시작하는 발주 관행 때문일 것이다.
실제로 SW 개발 사업을 보면 프로젝트가 끝나갈 무렵부터 SW를 테스트하기 위해서 많은 인력과 장비가 동원된다. 통과되지 못하면 그 잘못은 고스란히 개발자에게 전가되고 밤샘을 하게 된다. 이런 문제를 해결할 방법은 없는 것일까.
반도체나 강철과 같은 프로세스 매뉴팩처링은 일단 재료가 투입이 되면 최종적인 산출물이 나올 때까지 품질을 높이거나, 수율을 높이는 작업에 손을 쓸 수 없다. 그래서 단계별 공정이 중요하고 이 공정을 개선하는 데 많은 투자를 한다. SW도 이와 유사하다. 가시화되기 전까지 품질을 평가하기 어렵고, 일단 개발된 SW를 수정하고 개선하는 데 비용과 시간도 많이 든다. 개발공정을 개선하는 데 투자하지 않으면 생산성 하락은 말할 것도 없고 이익을 볼 수 없는 구조가 된다. 결국에는 창조성이 발휘돼야 할 SW 산업이 3D 산업으로 전락하게 되는 것이다.
따라서 반복되는 비효율을 없애기 위한 첫걸음이 바로 SW 프로세스다. SW를 개발할 때 체계화된 프로세스를 도입한다는 것은 생산라인의 제조공정처럼 일관성 있게 작업이 진행돼 예상된 결과물을 만들어 내는 것과 같다. 다시 말해서 체계적인 프로세스를 도입하는 것은 개발하려는 SW의 품질을 예측하고 보증하려는 노력이다. 그런데 규모가 작은 대부분의 SW 기업은 열악한 사업 환경 때문에 SW 개발을 기업의 체계적 조직능력에 의존하기보다는 몇몇 개인의 능력에 의존해 단기적인 성과를 추구하는 경향이 많다. 그러나 SW의 규모가 급격히 증가하고 점점 복잡해지는 상황에서 몇몇 사람의 역량으로 글로벌 경쟁력을 확보하고 유지하는 것은 불가능한 일이다.
이러한 관점에서 지식경제정부가 2008년 말 시행한 SW 프로세스 품질인증제도는 SW 산업의 경쟁력을 높이기 위해 긍정적인 효과를 미칠 것으로 기대된다. 프로세스 품질인증 제도는 기업의 SW 개발 및 관리 능력을 평가함으로써 SW의 품질과 신뢰성을 확보하려는 것이다. 인증을 받는다는 것은 해당 기업이 SW 개발 인력과 조직 구성, 업무 프로세스가 체계적이며 프로젝트를 수행할 만한 능력이 된다는 것을 의미한다. 그러나 품질인증의 획득만을 목표로 한다면 이 제도의 근본 취지를 만족시킬 수 없다. 인증의 획득은 시작이며 기업들은 프로세스를 꾸준히 개선하고 내재화해 경쟁력 있는 SW를 개발할 수 있도록 역량을 키워가야 한다. 더불어 이 제도의 시행이 우리가 안고 있는 고질적인 발주관행을 개선하고 3D산업이라는 오명에서 벗어날 수 있는 계기가 될 것을 기대해 본다.
selee@software.or.kr