[미래포럼]SW생태계 복원

Photo Image

 우리나라 공공 소프트웨어(SW) 발주 관행에 문제가 있다는 지적은 어제 오늘만의 일은 아니다. 여러 전문가가 각종 아이디어를 내고 SW진흥법도 개정하지만 아직도 잘못된 관행은 고쳐질 기미가 없다. 이런 차제에 건축업계에서 설계 후에 시공을 발주하는 것과 같이 SW시스템 구축 사업도 설계와 구현을 별도로 발주하자는 SW분할발주론이 다시 제안되는 것을 보면서 씁쓸한 마음을 지울 수 없다.

 실은 나도 강의실에서 SW개발업이 건축업과 유사한 특성이 적지 않다고 지적하곤 했다. 설계도를 먼저 작성하고 구현이 뒤따르며, 과정마다 다른 전문성을 갖춘 전문가가 동원되고, 좋은 장비와 도구가 효율과 품질을 높여주며, 프로젝트 관리가 과제 성공 여부의 관건이라는 점 등을 설명한다. 그러나 프로젝트의 결과물인 SW와 건축물은 너무나 특성이 다르기 때문에 건축업의 관행을 그대로 가져오기에는 무리가 따른다. 어쩌면 우리 SW생태계를 더욱 힘들게 할지도 모른다는 우려가 든다. SW 분할발주 주장에는 설계를 완벽하게 하고 이를 바탕으로 구현 프로젝트를 발주하게 되면 업무량과 가격의 불확실성이 줄어들어서 개발자가 제값을 받을 수 있고, 품질과 프로젝트의 성공 확률이 제고된다는 교과서적인 논리가 그 바탕을 이루고 있다.

 SW설계의 가장 자세한 표현은 소스코드 그 자체인 점을 생각해 보라. 건축물의 경우 설계 결과는 상대적으로 쉽게 표현할 수 있는데 이는 건축물이 물질의 조합이고 SW는 논리의 조합이기 때문이다. SW설계와 개발을 한 회사 내에서 수행할 때에는 완벽한 설계도를 작성하는 노력과 구현 시 소통에 소요되는 노력을 총체적 관점에서 최적화할 수 있는 여지를 남겨 놓는다. 물론 아웃소싱이 활성화되고 고품질 요구에 따라 SW프로젝트에서도 설계와 개발의 분리 노력이 힘을 받지만, 설계와 개발의 완벽한 분리가 최적이라고 할 수는 없다.

 우리나라 SW생태계 발전을 위해 분할발주는 바람직하다. 그러나 건축업의 관행인 설계와 구현의 분할발주가 아니라 요구사항 도출과 시스템 개발(설계와 구현 포함)의 분할발주를 하자는 주장이다. 이는 우리나라 SW발주 관행의 가장 큰 문제가 발주자의 전문성 부족에 있다고 보기 때문이다. 발주자가 기술 현황을 모르기 때문에 이룰 수 없는 황당한 것을 요구하거나 할 수 있는 것도 빠뜨리곤 한다. 심지어는 자신이 무엇을, 왜 요구하는지 잘 모르고 개발 회사에 비공식 도움을 요청한다. 이는 불투명한 거래, 음습한 유착 관계의 시작이 되기도 한다. 발주자의 노력과 전문성이 부족하면 애매한 요구사항으로 발주를 내게 된다. 개발 중에 그 요구사항이 점점 구체화된다. 이때 SW시스템의 기능을 추가하거나 수정하고자 하는 욕구가 발생하는 것은 당연하다.

 사용자의 요구사항을 구체화하고 이를 설계에 반영할 수 있도록 기술하기에는 투자가 필요하다. SW의 특성상 개발 전에 요구사항을 다 제시하기가 쉽지 않다. 따라서 발주 전에 요구사항을 명확히 하고자 하는 것에 지금의 관행보다 더 많은 투자가 필요하다. 발주자는 전문가의 도움을 받아서 요구사항을 명확하게 하는 작업을 선행해야 한다. EA와 IT 아키텍처를 구축하고 정보전략계획(ISP)을 수행하는 것이 바로 사용자의 요구사항을 명확히 하고자 하는 노력의 일환이다. 이러한 SW시스템 발주 전 투자가 궁극적으로 잘 쓰이는 시스템, 고품질의 시스템, 저렴한 시스템을 가능하게 한다.

 공공부문에서 SW시스템을 발주하기 전에 ISP 수립을 강제하도록 법제화하면 어떨까. 물론 ISP 프로젝트 수행이 만능 해결사는 아니겠지만 요구사항 도출을 별도의 과제로 수행해야 할 정도로 중요하다는 점을 강조하기 위함이다. 이러한 작은 조치들이 모여서 우리 SW생태계 복원을 위한 동력이 됐으면 한다.

김진형 KAIST 전산학과 교수 jkim@cs.kaist.ac.kr


브랜드 뉴스룸