실시간 뉴스



[강은성의 안전한 IT세상]좋은 소프트웨어를 개발하기 위하여(2)


제품을 개발하는 회사들의 한결 같은 희망은 좋은 인력을 뽑는 것이다. 특히 개발 인력과 함께 좋은 제품을 만들어야 할 책임이 있는 개발 관리자들은 좋은 개발자를 뽑는 것만큼 중요한 일도 없다. 본인과 회사의 성과에 큰 영향을 미치는 요소이기 때문이다. 하지만 지난 몇 해 동안 수천 장의 지원 서류를 읽으면서 ‘사람은 참 많은데, 사람이 없다’는 생각을 많이 하게 된다.

◆기본적인 전공 교육에 충실해야

면접을 보면서 이력서와 자기 소개서, 성적증명서를 훓어보면, 토익 점수들은 웬만큼 나오는데, 컴퓨터공학에서 가르치는 기본 과목이 별로 보이질 않는 경우가 종종 있다.

‘대학이 시대를 못 좇아가서 기업에 필요한 인재를 공급하지 못한다’는 비판과 ‘대학이 기업에 쓸모 있는 졸업생을 배출해야 한다’는 주장이 성행한 때가 있었다. 거기에 인터넷이 붐을 일으키면서 컴퓨터 관련 학과, 컴퓨터공학 유사 학과가 우후죽순처럼 생겨났다. 그런데 이름을 들으면 익숙한데, 이수한 과목에는 컴퓨터공학 필수 과목들이 보이질 않는다.

소프트웨어 패키지 개발업체나 소프트웨어가 핵심 요소인 보안 어플라이언스 개발 업체 관점에서 본다면, 대학생들이 기본 학문을 충실하게 공부하고 졸업하면 좋겠다. 운영체제, 네트워크, 데이터베이스, 자료구조, 파일처리, 프로그래밍언어, 컴파일러, 컴퓨터 아키텍처, 알고리즘, 대수학, 확률, 통계 등 기본 학문에 충실한 사람들이 연구원으로 들어와야 회사가 갖고 있는 다양한 제품을 개발하는 데 기여할 수 있고, 핵심 연구원들로 키울 수 있다.

좀더 바란다면 대학에서 1년 정도는 프로그래밍 실전 교육을 ‘세게’ 시키면 좋겠다. 프로그래밍은 이론도 중요하지만 실제 열심히 해 보지 않으면 쓸모가 없다. 치열한 프로그래밍을 통해서 그것이 자신의 적성에 맞는지도 알 수 있고, 소프트웨어 설계와 코딩, 디버깅 등 개발의 기본을 잘 배울 수 있다. 업계마다 차이가 있긴 한데, 프로그래밍 언어 중 소프트웨어 패키지나 어플라이언스를 개발하는 업체에서 중요한 것은 C나 C++이다. 개발자가 장기적으로 훌륭하게 성장하기 위해서도 포인터나 메모리 관리 등을 통해 컴퓨터 내부를 이해할 수 있는 C나 C++은 필수적인 언어라 할 수 있다.

◆고급 개발자를 확보하려면

좋은 신입사원도 중요하지만 개발업체에서 아쉬운 쪽은 역시 ‘고급 개발자’이다. 개발을 기술적으로 이끌면서 핵심 제품을 책임지고 개발할 수 있는 사람, 최소한 5년 이상 존속할 제품의 아키텍처를 잘 설계하여 탁월한 성능과 안정성을 갖게 개발하는 사람, 수없이 부딪히는 어려운 문제들을 후배들을 지도하면서 해결해 나가는 사람, 시장의 요구에 따른 지속적인 업그레이드를 통해 제품을 일취월장시키는 사람, 치열한 경쟁이 벌어지는 업계나 표준화 문제 등을 다루는 글로벌 커뮤니티에서 회사를 기술적으로 대표할 수 있는 사람, 우리 제품의 구조와 기술뿐 아니라 경쟁사 제품의 그것들도 꿰차고 있어서 제품의 발전 방향을 이끌 수 있는 사람, 많은 연구원들이 기술적으로 배우고 존경하는 사람, 그런 고급 개발자들이 참 부족하다.

안철수연구소는 2004년에 ‘강호 무림의 고수를 모아 글로벌로 나가자’는 기치 아래 대대적으로 ‘글로벌 인재’를 뽑은 적이 있다. 주로 경력 5년 이상의 인력을 모집했는데, 경력이 좀 모자란 분들까지 포함하여 1500명 정도가 지원했다. 이 때 많은 지원자들이 밝힌 지원 동기가 채용 문안에 지금도 있는, 실리콘밸리처럼 “백발을 휘날리며 개발에 몰두하는 전문가”가 되고 싶다는 것이었다. 계속 개발을 하면서 성장하고 싶어하는 개발자들의 열망을 읽을 수 있었다.

하지만 그 많은 지원자들 중에서 우리는 10여 명밖에 뽑을 수 없었다. 국내뿐 아니라 해외의 유명한 대학을 졸업한 분들도 많았지만, 대부분이 취업한 이후 회사에서 배운 실력들이 그리 뛰어나지 않았기 때문이다.

이를 계기로 고급 개발자들은 어느 날 갑자기 하늘에서 떨어지는 것이 아니라 훌륭한 개발 업체에서 업무를 통해 배출될 수밖에 없다는 것을 알게 되었다. 앞 글에서 설명한 바와 같이 기업이 개발 프로세스, 개발 시스템(인프라), 개발 문화를 갖추고 사람에 투자하여 인력을 양성해야 할 또 하나의 이유가 여기에 있다.

기업에서는 고급 개발자들이 계속 역량을 발휘할 수 있도록 제도적인 장치를 갖춰야 한다. 우리가 해외 컨퍼런스에 나가서 많이 만나는 머리가 희끗희끗한 엔지니어들을 국내에서 찾기 어려운 것은 회사 내부에 그러한 제도가 없거나 있다 하더라도 개발자들보다는 관리자들을 우대하는 현실 때문일 것이다.

'조엘 온 소프트웨어'(

www.joelonsoftware.com/)로 우리나라에서도 유명한 조엘 스폴스키는 최근 국내에 번역된 '똑똑하고 100배 일 잘하는 개발자 모시기'에서 기업이 높은 수익을 실현하기 위해서는 최상의 개발자가 필요하다는 점을 강조하며, ‘숨어 있는’ 그들을 찾고, 채용하는 방법을 여럿 소개한다. 우리 현실에 들어맞지 않는 점도 있지만, 고급 개발자들을 확보 유지하기 위한 조엘의 이야기를 읽다 보면, 미국이 왜 세계의 소프트웨어를 장악하면서 엄청난 부를 벌어들이고 있는지 그 배경을 이해할 수 있게 된다.

고급 개발자들이 자신의 분야에서 자신의 브랜드를 갖고 활동할 수 있게 해 주는 것도 필요하리라 생각된다. 관련 분야 컨퍼런스에서 발표도 하고, 국내외 커뮤니티에서 도움을 주고받으면서 제품의 문제를 해결하며 기술적으로 발전시켜 나간다면, 개발자 개인의 성장뿐 아니라 개발자 그룹의 성장, 좋은 제품을 개발하는 데에도 큰 도움이 될 것이다. 그 뛰어난 개발자와 일하고 싶어서 회사에 지원하는 좋은 개발자들을 뽑는 것도 부가적으로 얻을 수 있는 이점이다.

◆초급 개발자의 양성

어느 보고서를 보니, 우리나라에 초급 개발자가 넘친다는 내용이 있었다. 대학교, 전문대학, 컴퓨터 학원에서 졸업생들이 쏟아진다는 얘기다. 하지만 초급 개발자들도 초급 개발자 나름이다. 개발자에서 엔지니어로 범위를 넓혀 접근해, 정부 차원에서 전문대학을 특정 분야의 전문성을 살려 집중 육성하는 것이 어떨까 싶다.

예를 들어 시스템 관리나 네트워크 관리는 이론과 함께 실습이 매우 중요한데, 이러한 분야는 전문대학 컴퓨터공학과에서 이론과 실습을 통해 인력을 집중적으로 육성하면 효과가 있을 것 같다. 관련 기업과 연계해 추진할 수도 있을 것이다. 웹 개발 인력과 같이 SI 사업에서 대규모로 필요한 인력들도 이와 같은 방식으로 양성할 수 있으리라 생각된다.

사회적으로 본다면 엄청난 사교육비를 들여 대학에 입학하고, 비싼 학자금을 내며 졸업했는데, 컴퓨터 학원에서 다시 수백 만원씩 사교육비를 들여 단편적인 지식을 배우지 않아도 될 것이고, 기업 측면에서는 충분한 기초 없어 단기적으로 몇 가지 프로그래밍 언어나 몇 가지 장비 기능을 배워 초급 엔지니어로 입사하는 사람들보다는 훨씬 나을 것 같다.

◆개발자가 희망이다

제품 개발 회사의 핵심적인 경쟁력은 훌륭한 개발 인력에게서 나온다는 점은 아무리 강조해도 결코 지나치지 않다. 한두 명의 뛰어난 개발자로 좋은 제품을 만들 수 없는 소프트웨어 개발 업체에서는 더욱 그렇다. 기초가 튼튼한 초급 개발자, 회사의 개발 문화와 제도 안에서 실력을 쌓아 성장한 고급 개발자들을 키우기 위해 기업과 대학, 정부가 힘을 기울이면 좋겠다. 이들을 통해 세계적인 소프트웨어가 개발되고, 우리나라가 세계의 소프트웨어 강국으로 우뚝선다면 소프트웨어가 우리나라의 차세대 성장 동력이 될 수 있을 것이다.

/강은성 안철수연구소 상무







alert

댓글 쓰기 제목 [강은성의 안전한 IT세상]좋은 소프트웨어를 개발하기 위하여(2)

댓글-

첫 번째 댓글을 작성해 보세요.

로딩중
포토뉴스