국내외 많은 IT조직에서 소프트웨어 프로젝트 관리 향상을 위하여, PMS(Project Management System)를 도입하고 있다.
이러한 추세는 단순한 수작업으로 SW 프로젝트 관리를 수행하기에는 체계의 복잡성이나 업무의 양 자체가 매우 크다는 것을 입증한다. 실제로 PMS와 같은 자동화 시스템 없이 다수의 프로젝트를 체계적인 관리 한다는 것은 현실적으로 불가능하다. 때문에 수많은 조직에서 앞다투어 PMS를 도입하고 있다.
그러나 PMS를 도입한 많은 IT 조직의 상당 수에서 PMS의 실질적 활용도가 저조한 것을 빈번히 목격할 수 있다. 소프트웨어 공학 역량이 선진국에 비하여 뒤쳐지는 국내의 경우는 더욱 그러하다. 그렇다면 그 원인이 무엇일까? 20년간 소프트웨어 공학을 연구한 연구원의 입장에서, 필자에게 그 근본적 원인을 묻는다면 "소프트웨어 개발 프로젝트는 일반 타 산업의 프로젝트와는 다르기 때문이다." 라고 답변할 것이다.
이는 사실상, 필자의 개인적 의견이 아니라 전세계 소프트웨어 공학분야 석학들이 수십 년간 연구 끝에 내린 결론이며, 유럽과 미국의 연구진들은 이미 10여년 전부터 이러한 사실을 인지하고 실무에 반영해왔다.
소프트웨어 공학 분야에서 소프트웨어 프로젝트 관리란 소프트웨어 개발 과정 중 수행되는 활동들에 대한 관리를 의미하며, Software Process Management란 영역에 속한다. 전세계적으로 1980년대부터 Software Process Management 분야에 대한 연구는 크게 두 가지 관점에서 수행되어 왔다. 첫 번째는 "성공적인 소프트웨어 개발을 위해서는 어떤 활동들이 수행되어야 하는가?" 에 대한 것이며, 두 번째는 "소프트웨어 개발 과정상 활동을 어떻게 하면 효과적으로 자동화하여 관리 할 수 있을까?" 에 대한 연구이다.
전자의 경우, 연구의 결과물로서 탄생한 것들이 소프트웨어 프로세스 관련 표준이며 우리가 알고 있는 SW-CMM, CMMI, SPICE/ASPICE, ISO 9000,ISO/IEC 12207 등이 대표적인 예이다.
후자의 경우엔, 소위 Software Process Centered Software Engineering Environment, Software Process Automation과 같은 세부 연구 분야가 탄생하였으며, 우리가 이야기하는 소프트웨어 프로젝트 관리 시스템도 이 범주에 속한다.
상기 두 분야에 대하여 연구와 적용은 지난 수십년간 이루어져 왔으며, 특히 소프트웨어 프로젝트 관리 자동화에 대하여서는 이미 십 수년 전부터 전문가들에 의해 많은 lessons-learned와 방향성이 제시되어왔다. 다만, 국내에서는 소프트웨어 프로세스 자동화 분야의 전문가가 매우 적었었고, 산업공학/제조 분야의 접근을 기초로한 잘못된 SW 프로젝트 관리 자동화의 사례가 많았다. 때문에 전부터 사용하던 범용 프로젝트 관리 시스템을 소프트웨어 프로젝트 관리에 사용하다가 어려움을 호소하는 경우가 많다. 물론 간단한 WBS (Work Breakdown Structure) 작성 도구 같은 경우는 사용해도 무방하나 그 이상은 소프트웨어 개발의 특성상 논리적인 한계들이 존재한다. 그렇다면 올바르고 효과적인 소프트웨어 프로젝트 관리 시스템에서 고려되어야 하는 사항은 어떤 것들이 있을까?
이 질문에 대한 해답은 다음과 같다.