개발자 '6개월 속성' 떼면 SW설계도 한다?

일반입력 :2012/08/14 21:49    수정: 2012/08/16 00:16

정부지원을 받는 IT교육사업장이 단기 개발자 양성 과정으로 소프트웨어(SW) 설계 능력까지 길러준다는 과대 선전을 일삼아 왜곡된 업계 인식을 드러냈다. 이는 시스템통합(SI) 프로젝트라 불리는 외주 정보화사업의 후진적 구조를 상징하는 단면으로 비친다.

이달초 한 IT교육사업장은 고용노동부와 한국산업인력공단이 지원하는 취업대비 국비무료교육과정을 소개했다. 개설된 강의는 구로디지털단지에서 다음달 3일 개강하는 6개월짜리 '자바개발자양성과정'을 포함했다. 여기에 단순한 코딩 능력을 갖춘 인력이 아닌 요구분석 및 설계 능력까지 갖춘 종합적인 개발인력을 양성하기 위한 과정이란 설명이 붙었다.

과정은 ▲첫 1개월간 자바 프로그래밍 ▲둘째 1개월간 오라클DB와 SQL, JDBC프로그래밍 ▲셋째 1개월간 XHTML과 CSS 웹표준, 자바스크립트, DOM과 제이쿼리, 1차프로젝트 ▲넷째 1개월간 JSP와 서블릿, 에이잭스와 XML ▲다섯째 1개월간 스프링과 아이바츠와 스트럿 프레임워크, 2차프로젝트 ▲마지막 1개월간 안드로이드 프로그래밍, 이력서와 면접클리닉, 취업지원과 알선으로 나뉜다.

이는 프로그래밍 언어 문법을 익히고 실습하는 데 초점을 맞춘 내용이다. 요구분석과 SW설계를 위한 내용은 있지도 않은데 해당 교육과정 소개란에서는 수업을 따라오기만 하면 코딩을 겸해 요구분석과 설계능력까지 갖출 수 있다고 선전한다. 사실 6개월이면 그 강좌에서 다루는 각 프로그래밍 언어와 기술을 쓰는 '단순코딩'에 익숙해지기에도 빠듯한 시간으로 보인다.

■6개월 속성으로 요구분석-SW설계까지는 허구

즉 다른 취업지원 IT강좌에서도 어렵지 않게 찾아볼 수 있는 이 문구는 물론 허구다. 6개월 1천200시간짜리 속성과정을 통해 개발자가 현업에서 요구하는 SW설계 능력을 얻기란 불가능하기 때문이다. 건축공학 지식을 배우고 벽돌 나르기와 시멘트 섞기를 좀 했다고 건축설계도면을 만들 수 없는 것과 같은 이치다.

SW설계뿐아니라 함께 언급된 '요구분석'도 반년 공부해 현업에 걸맞는 실력발휘를 하기 어렵단 점은 마찬가지다. 속성과정을 통해 어느정도 정형화된 요구분석은 가능하다는 입장도 있지만 본질적으로 요구분석 자체가 SW개발자의 몫은 아니라는 게 전문가 판단이다.

이와 관련 기업용 애플리케이션 개발솔루션 업체 원더풀소프트의 김길웅 최고기술책임자(CTO)는 14일 SW개발은 철저히 질적인 노동이라 시간과 자원이 충분하다고 누구나 수준이 동일한 결과를 얻어낼 수 없는 영역이라며 요구분석이라는 작업도 SW개발 자체와 별개로 어떤 문제상황을 마주한 담당자의 어려움을 간파하고 이를 기술적으로 풀어내는 상상력이 필요하단 점에서 별개의 지적 숙련분야라고 지적했다.

이어 개발 프로젝트를 이끄는 사람은 현상을 IT 관점에서 재해석해 문제 해결의 실마리를 만들고 가능성을 열어주는 기획력을 갖고 있어야 한다며 그와 더불어 실제 프로젝트를 요구한 산업 현장의 전문지식을 갖춘 사람이 정확한 문제 상황과 해결을 위한 단서를 제공해야 원활한 요구분석과 SW설계가 가능하다고 덧붙였다.

정보통신산업진흥원(NIPA) SW공학센터 강승준 책임도 해당 문구에 대해 현업에서 요구하는 수준의 SW설계 능력을 갖추기엔 그 기간이 턱없이 짧은데, 다만 설계에 필요한 여러 절차와 과정에 익숙해질만한 정도라고 설명했다.

강 책임은 전일 과정으로 6개월정도라면 혼자서 요구분석을 어느정도 해볼 수 있는 수준까지 훈련이 가능할 수도 있긴 한데, 사실 요구분석은 기획이나 마케팅 담당자들의 업무수행에 필요한 능력이자 역할이라며 그들이 시장 분석, 기획, 조사 연구로 도출한 내용을 구체화하면 그에 맞게 SW를 구현하는 게 코딩이고 일반적인 신입개발자들의 업무라고 말했다.

또 프로젝트 관리나 테스팅 등 실제로는 SW개발과 명확하게 구분되는 업무로써 개발자가 하지 않아야 될 일을 국내 현업에선 당연하게 요구한다고 지적했다.

■코딩 가르쳐놓고 '천재 개발자' 요구하는 현장

업계에 따르면 국내서 SI 프로젝트에 투입된 신입들은 모호한 업무를 지시받고 책임이 불분명한 작업을 진행하는 경우가 적잖다. 프로젝트 발주사 측의 요구 내용이 명료하게 정리되지 않았거나, 그걸 구체화한 산출물로 프로젝트에 쓸 기획과 설계를 충분히 갖추지 않아서다.

이는 현장의 개발자들이 명시적으로 참조할 기획과 설계 내용이 없고 그 책임소재도 애매함을 의미한다. 결국 현장에 투입되는 개발자들에게 요구되는 역할이 '다양'해진다. 필요하면 요구분석도 하고 SW설계도 해야 하는 상황이 되는 것이다.

담당자는 경우에 따라 모르는 것을 배움으로 메우려거나 이미 아는 걸 차분히 적용해보려 하지만, 주어진 시간과 자원이 부족해 결국 프로젝트가 부실해지고 발주측의 목소리에 불만이 배인다. 즉 정부지원 IT교육사업장이 강의 6개월 들으면 SW설계 능력을 길러준다는 실현불가능한 구호를 내건 배경은 기존 인력 양성 체계가 산업의 요구에 대응하지 못하는 것으로 비쳐서다.

더불어 개발(구현)과 업무성격이 전혀 다른 '테스팅'을 신입 개발자에게 맡기는 게 국내 현장이다. 그런데 해외서는 테스팅 담당자가 SW개발과 전혀 별개의 직군으로 존재한다.

SW강국이라 알려진 영미, 유럽권에선 SI프로젝트도 산업구조적으로 안정된 분업체계를 갖췄다. 외국에서 현장에 투입된 신입 개발자들 대부분은 순수한 코딩(coding)을 주 업무로 삼기에 '코더(coder)'라고 불린다. 이미 각 업무영역별 담당자가 만들어 둔 '기획'과 그에 따라 도출된 '설계'를 바탕으로 주어진 기술적 명세를 '구현'하는 사람이다.

즉 코더는 사람의 말을 기계가 알아들을 수 있는 말로 바꾸는 작업에 숙달된 직종이다. 일반적으로 '개발자'라 번역되는 용어 '디벨로퍼(Developer)'나 'SW엔지니어(Engineer)'보다 요구되는 '창의성'이 덜한 사람이다. 프로젝트 관리는 비개발자 출신이 맡고, 숙련 개발자들은 하위 직급 개발자들보다 큰 단위의 산출물을 만들어내고 책임진다. 전체 시스템 규모에 달하는 산출물을 책임지는 사람이 바로 SW아키텍트다.

관련기사

그런데 국내서 개발자를 양성한다는 미명아래 이런 정부지원교육과정을 통해 수많은 코더를 배출하고 있을 뿐이다. 업계가 원하는 개발자는 그 개념상 속성교육으로 양성될 성질의 인력들이 아니란 얘기다.

과거 한 SI인력 컨설팅 담당자는 간혹 이 분야에 무지한 대규모 SI 프로젝트 책임자들 보면 경험이 적은데 코딩 실력은 뛰어나고 요구분석이나 SW설계에 필요한 직관이 탁월한 젊은 친구를 찾아 저임금으로 쓰고 싶어하는 경우가 있다면서 실제로 그런 '천재'가 있을 리도 없고 정말 어딘가 있다 해도 제정신이라면 초급 개발자 노임단가를 받고 일할 이유가 없지 않겠느냐고 언급하기도 했다.