만주족 누르하치는 거대한 명나라를 무너뜨리고 청나라를 세워 200년간 중국을 지배하면서 중국을 뛰어난 국가로 성장시킨 주인공이다. 그렇다면 누르하치의 성공요인은 무엇일까. 민족을 불문하고 인재를 등용한 열린 사고나 한족을 통제하기 위한 민족 동질성 및 공동체 의식의 강화 등 여러 가지를 들 수 있겠지만 그중 가장 주목해야 할 것은 여진족의 조직화일 것이다. 그래서 만든 것이 그 유명한 팔기제다.
팔기제란 기 색깔에 따라 8개로 구분한 군대 편성 단위인데 원래 사냥에서 출발한 조직이다. 사냥 때 이들은 짐승을 몰아넣을 장소에 황색기를 세워놓고 진을 친다. 남색기를 선두로 좌우에 홍색기와 백색기가 둘러싼다. 지휘자의 명령에 따라 포위망을 좁혀가며 사냥감을 서서히 몰아간다. 놀란 짐승은 포위망을 뚫지 못하고 황색기 근처로 가 최후를 맞이한다. 군대의 동원과 통제의 효율성을 높이기 위해 전 부족을 조직화한 것이고 싸우는 절차와 방법을 미리 정해놓고 싸우는 것이다. 결국 여진족의 승리는 팔기제의 승리라고도 한다.
소프트웨어 개발도 마찬가지다. 좋은 소프트웨어를 개발하기 위해서는 체계적인 틀이 있어야 효과적이다. 전쟁 초기에 승리를 예측하기 어렵듯이 소프트웨어도 개발 초기에 완성된 모습을 예측하기 어렵기 때문에 체계적인 프로세스를 적용해서 조직적이며 일관성 있는 작업을 해야 한다. 그렇다고 프로세스가 없는 조직이 아무런 일도 못하고 성과가 전혀 없는 것도 아니다. 프로세스가 없는 기업도 소프트웨어를 더 좋게, 더 빠르게, 더 정확하게 개발하기 위해 새로운 기술·도구·기법 등 여러 가지 시도를 하고 있다. 그러나 이러한 새로운 시도도 예전 방법에 익숙한 고루한 행태 때문에 효과를 거두지 못하고 끝나는 경우가 대부분이다. 그 원인은 도입하려는 기술·도구·기법의 선택의 잘못이라기보다는 새로운 시도가 효과를 거두기 위해서 필요한 절차와 방법 등 체계의 정형화가 먼저 마련돼야 하는 순차적 과정이 없기 때문이다.
소프트웨어를 개발할 때 체계화된 프로세스를 도입한다는 것은 생산라인의 제조공정처럼 일관성 있게 작업이 진행돼 예상된 결과물을 만들어 내는 것과 같다. 다시 말해서 체계적인 프로세스를 도입하는 것은 개발하려는 소프트웨어의 품질을 예측하고 보증하려는 노력이다. 개발 환경을 고려해 적절한 프로세스를 적용해야만 소프트웨어 품질을 높일 수 있다. 자신의 몸에 맞지 않으면 아무리 멋진 옷이라도 보기에도 좋지 않을 뿐만 아니라 부자연스럽게 보이는 이치와 같다.
국내에는 규모가 작은 소프트웨어 기업이 많은 환경적 특성 때문에 체계적인 기업의 조직능력에 의존하기보다는 우수한 몇몇 개인의 능력에 의존해 단기적인 성과를 추구하는 경향이 많다.
이러한 시점에서 지식경제부가 소프트웨어 산업의 경쟁력을 높이기 위해 소프트웨어 프로세스 품질인증제도를 시행한다고 발표한 것은 매우 시기 적절하다고 판단된다. 소프트웨어 산업 전반에 긍정적인 효과를 미칠 것으로 기대된다. 이 제도의 근본 취지는 국내 소프트웨어 기업이 소프트웨어 프로세스 역량 수준을 개선하고 내재화해 원하는 수준의 소프트웨어를 개발할 수 있도록 능력을 배양하는 것이기 때문이다. 이 제도의 시행과 더불어 경쟁력 있는 소프트웨어 기업들이 대한민국 여기저기에 넘쳐나기를 기대해 본다.
이상은 한국소프트웨어진흥원 소프트웨어공학단장 selee@software.or.kr