Oct 17 2007

개발자 부족이 낳은 기이한 현상? 당연한 현상인 것 같은데요

분류: Dev.Think 태그: ,, , Heart @ 1:11 오전

Trackback : http://dev.heartsavior.net/archives/78/trackback/

@ 개발자 부족이 낳은 기이한 현상

아무리 머리를 쥐어뜯고 생각해 보아도 이 분의 의견에 동의할 수 없네요.
CEO의 관점만으로 현재의 현상을 읽으신 결과라고 생각합니다.

5throck 님의 현재의 ‘현상’ 에 대해 지적하신 세 가지 문제는 문제가 아닌 것도 있고, 궁극적으로 개발자가 조장하지 않은 것도 있습니다.

먼저, 첫 번째 지적하신 부분입니다.

실제로 프로젝트를 수행하기 위해 개발자를 구하다 보면, 프로젝트에서 요구하는 경력이나 능력을 가진 분들을 찾기가
상당히 어렵습니다.
하지만, 개발을 해야 하는 PM이나 회사의 입장에서는 일단 개발자를 구하면 쓸 수 밖에 없는 형편인데,
개발을 진행함에 있어서 능력이 안 되는 사람을 투입했을 때의 진척관리상의 문제점이 너무나 많습니다.

이 문제는 교육 측면과 인력 측면(경력에 비해 능력이 안되는 경우 혹은 경력이 안되는 경우)으로 나누어 생각할 수 있을 것 같네요.

교육 측면을 먼저 살펴보겠습니다.
프로젝트에서 요구하는 경력이나 능력을 가진 분들이 적다는 것은 그만큼 대학이나 필드에서 교육이 제대로 이루어지고 있지 않다는 것으로 해석할 수 있습니다. 결국 필드에서 주먹구구 식으로 배워 왔고 일해 왔기 때문에 프리랜서 시장에도 제대로 된 능력을 가진 개발자를 찾기 어려운 것이고, 이는 개발자 개인의 게으름도 있을 수 있지만 회사에서 지원을 하지 않은 측면이 더 크다고 할 수 있습니다.(1차적으로 시간을 주지 않고, 2차적으로 금전적, 교육적인 지원을 하지 않았겠죠. 물론 전체 회사가 다 그렇다는 것은 아닙니다.)

다음으로 인력 측면을 살펴보겠습니다.
초급, 중급, 고급을 막론하고 인력이 상당히 부족한 것은 사실입니다.
(제가 다니고 있는 회사 또한 그런 문제로 상당한 문제를 겪고 있고, 지인들의 회사들도 사정은 마찬가지입니다.)
특히 초급보다는 중급이, 중급보다는 고급이 인력이 부족합니다. 이는 지금 잠깐 일어나는 일시적인 현상이 아니라 이전부터 그래 왔던 것으로 알고 있습니다.
그럼 왜 이렇게 인력 부족을 겪고 있는 것일까요? 분명 해는 지나 경력은 점점 쌓여 가고, 초급 인력은 중급 인력으로, 중급 인력은 고급 인력으로 발전해야 되는데, 그들은 대체 어디 있나요?
개발자 사이의 사회 현상을 살펴보면 답은 멀리 있지 않습니다.
능력 있는 개발자는 아주 대우 좋은 회사에서 근무하거나, 공무원, 공기업, 금융, 개인 사업 등의 업종 갈아타기를 하거나, 아예 해외 취업을 합니다. 일반 중소기업에서 근속년수 채우기엔 미래도 불분명하고 페이는 낮으며 회사에서는 관리직으로의 전향을 요구합니다. 그렇다고 프리랜서를 하자니 프리랜서야말로 ‘젊은 시절에 빡세게’ 벌고 빠지는 수단으로써의 메리트가 더 강하지, 안정성 면에서는 어떤 보장도 없습니다. 프리랜서로 정년까지 안정적으로 일할 수 있다면, 제가 먼저 프리랜서 시장에 뛰어들겠습니다.

아무튼 이런 복합적인 측면에 의해 프리랜서 시장에 능력 있는 개발자는 적을 수 밖에 없습니다.

두 번째로 지적하신 부분입니다.

현재 초급 개발자 단가가 비상적으로 왜곡되어 있습니다. 고급이나 중급개발자를 구하기 힘들다 보니 초급 개발자를 어쩔 수 없이 써야 할 수 밖에 없는데, 이분들이 중급 혹은 고급의 개발자 단가를 요구하는 경우가 많습니다. 사람마다 능력의 차이는 있겠지만, IT경력이 1-2년 정도밖에 되지 않고 그나마도 프로젝트 경험이 전무한 인력들조차도 이런 요청을 한다는 이야기를 들을 때면 좀 심하다는 생각이 듭니다.

첫 번째 지적에서 너무 많은 이야기를 했으니 짧게 쓰겠습니다.
프로그래머가 박봉인 원인은 어디까지나 시장 원리에 의했을 가능성이 큽니다. 공급이 많았기 때문에(정부의 IT 인력 양성화 정책 및 IT 인식 뻥튀기) 개발자에 대한 희소성이 별로 없었고, 이는 자연스럽게 박봉으로 연결되었겠죠.
그리고 지금 상황은 역전됐습니다. 개발자에 대한 인식은 바닥에 가깝습니다. 개발자 구하기가 하늘의 별따기입니다. 개발자에 대한 희소성이 엄청나게 상승했습니다. 당연히 대우나 페이가 상승하는 게 맞습니다.
물론 별별 사람 다 있을 것입니다. 말씀하신 대로 능력도 경력도 되지 않는데 페이를 말도 안되게 요구하는 사람도 있겠죠.(저도 개발자이지만 그런 사람들 좋은 눈으로 안보게 됩니다. 단적으로 싫어합니다.) 그럼 그 사람을 안쓰면 됩니다. 모든 사람이 그렇게 하나요? 그럼 시장 원리를 따르셔야겠죠. 개발자들이 이전에 어쩔 수 없이 박봉을 선택한 것 처럼요.

세 번째로 지적하신 부분입니다.

일에 대한 프로페셔널리즘이 너무 떨어지는 것 같습니다. 제 생각에 이 부분이 가장 큰 문제라고 생각을 하는데, 제 주변의
PM들과 이야기를 하다 보면 프리랜서 개발자분들을 인터뷰를 할 때 야간근무나 주말에 일을 하는 것에 대해 굉장히 까칠하게 생각을
하는 경우가 많습니다.
저도 제 직종이 컨설팅이다 보니 업무가 많은 경우 야근이나 주말근무를 좋아하지 않지만 부득불 할 수 밖에
없는 경우가 존재하는데, 자신에게 주어진 일에 대한 완성도보다는 근무여건의 정도나 업무의 난이도에 대해서 질문을 받으면 좀
당황할 수 밖에 없습니다.

접근 방법 자체가 잘못되었다고 생각합니다.
컨디션 좋은 날의 1~2시간 일하는 분량이 컨디션 나쁜 날 하루 종일 일하는 분량보다도 많은 게 개발의 특성입니다. 이를 핵심으로 놓고 현상을 보셨어야 하지 않았나 생각합니다.
야근과 주말근무는 오히려 프로페셔널리즘을 해하게 됩니다. 당장 자고 싶고 쉬고 싶은데 일에 대한 완성도가 눈에 보일까요? 시간적 여유가 없을 때 사람은 극단적인 선택을 하기 마련입니다.
마찬가지로, 근무여건이 좋지 않으면 당연히 효율성이 떨어질 것인데, 이에 대해 질문하는 것이 당연하죠.
업무의 난이도 또한 마찬가지입니다. 프리랜서로 뛰게 되면 공부할 시간을 따로 주는 일은 없을텐데, 당연히 자신이 업무를 감당할 수 있을지 먼저 파악하는 것이 우선 아닌가요? 오히려 저에게는 이 쪽이 더 프로페셔널해 보이는군요. 리스크 감당을 전적으로 개인이 해야 되니까요.

일에 대한 완성도는 억지로 쪼아서 만들어내는 게 아니라, 프로젝트에 흥미를 갖게 하면 저절로 따라오는 선물입니다. 개발자들이 ‘내 일이다’ 라고 생각하면 그 일 만큼은 정말 열심히 합니다. 그렇게 생각하도록 프로젝트 환경을 만들어 주셔야 할 것으로 보입니다.

마지막으로, 해외 개발 아웃소싱에 대해서는 언젠가는 있을 일이고, 이 또한 시장 원리대로 흘러갈 것으로 생각합니다. 다만 아웃소싱으로 주력 모듈이나 상품을 개발하는 것은 문제를 유발할 여지가 있습니다. 이는 조엘이 엄선한 소프트웨어 블로그 베스트 29선 에 언급된 이야기이기도 합니다.
이를 고려한다면 국내 개발자들 전부가 도태되는 일은 없을 것이고(그런 상황이 생긴다면 능력있는 개발자들은 해외 취업으로 살아남겠죠.) 그 변화의 소용돌이에서 살아남은 개발자들은 그만한 대우를 받게 될 것이라고 생각합니다.
(개인적으로는 개발자 하향 평준화라는 이야기가 공공연한 것을 보더라도 당장이라도 그런 변화의 과정을 한 번쯤은 거쳐야 된다고 생각합니다.)


Aug 12 2007

자격지심…

분류: Dev.Think 태그: ,, , Heart @ 2:53 오전

Trackback : http://dev.heartsavior.net/archives/87/trackback/

왠지 시간이 지날수록 프로그래머라는 직업에 대해서 내가 느끼는 자격지심이 커지는 것 같다.

내가 프로그래밍이라는 것을 처음 알았던 초등학교 2학년 때부터 지금까지를 돌아보면 나의 위치를 재는 비교대상이 점점 커져가고 있음을 느낀다.

그때는 컴퓨터학원에서 진도가 가장 빨랐던 것만으로도 자신감을 가지고 살 수 있었는데, 초등학교 6학년때 교육청 경진대회, 서울시 경진대회를 나가면서 날고 기는 사람들이 많다는 것을 처음으로 실감했다.

그리고는 대학 때까지 학업 때문에 프로그램을 접하지조차 못했다. 비교를 할 데가 없으니 자신감이랄 것도 없었다.

그렇게 학창시절을 보내고, 컴퓨터학부로 대학 입학을 하고, 당분간은 동기들에게 인정을 받았다. 어쩌면 당연했다. 먼저 해 놓은게 있으니…
하지만 그것은 동기들이 평가한 나였을 뿐이고, 학교 생활을 하다 보니 잘 나가던 학부 선배들이 눈에 들어오기 시작하고, 그게 전 대학으로 확장되니까 나 자신을 ‘그저 그런’ 정도로 생각하게 되었다.

그러다가 산업기능요원으로 취직을 하게 됐고, 실무에 발을 들이니 다른 프로그래머 이야기들이 관심이 가게 된다. 외국 프로그래머와 한국 프로그래머 모두…
비교 대상이 모든 프로그래머가 된 것이라고 해야 될까…
그렇다보니 정말 어떤 포스트를 봐도 대단해 보이고, 그러면서 ‘난 이정도가 되려면 어떻게 해야 되나…’ 좀 심한 경우는 ‘난 안될라나…’ 까지 생각하기도 한다.
즉, 자격지심을 넘어선 열등감도 많이 느끼곤 한다.
그런가 하면, (전체적으로나, 혹은 경력에 비해) 미숙한 프로그래머들도 많이 보기도 해서 나 자신에 대한 자만심도 들 때도 생긴다.

아이러니하다.
이제는 내 실력이 어느 정도인지, 나의 위치가 어느 정도 되는지도 잘 모르겠다.

아무튼 최근에 계속 머릿속에 박히는 건 ‘평범’ 이라는 두 글자이다.
‘평범’하게 하다 끝내려고 시작한 게 아닌데, 왠지 그 쪽으로 가고 있는듯한 불안감이 든다.

그래도 나라는 사람이 유일하게 제대로 할 줄 아는 건 프로그래밍밖에 없는데, 이걸로 누구한테 밀리고 싶지는 않다.

내게 남은 마지막 자존심이랄까?


Mar 26 2007

나를 위한 코딩을 해 보자.

분류: Dev.Think 태그: ,, , , Heart @ 11:44 오후

Trackback : http://dev.heartsavior.net/archives/105/trackback/

# Help yourself! programmer…

포스트 내용이 구구절절 공감이 된다.

프로그래머로 사회생활을 시작한 지 1년 반 정도 되었는데, 종종 코드들을 돌아보면 엄청난 양의 중복이 존재함을 깨닫는다.
하지만 그 놈의 ‘귀차니즘’이 뭔지, 퇴근이 뭔지…
최대한 시간을 줄이기 위해 소스를 통째로 찾아서 갖다 붙이는 작업을 하게 된다.
그 때 당시에는 라이브러리로 만드는 것보다 시간이 덜 걸린다. 하지만 그걸 여러 번 반복하게 되니 이 작업 자체가 만만하지 않음을 깨닫는다.
프로그램을 모두 뒤져가면서 소스 떼어내고, 컴파일 에러 나는지 확인하고, 컴파일 에러를 고치기 위해 또 소스를 뒤져서 붙이거나 필요없는 소스를 제거하고, 또 에러 확인하고…

입사때 부터 이걸 깨닫고 조금만 고생해 두었으면 지금쯤 라이브러리 조합만으로도 엄청난 코딩을 줄일 수 있었을텐데… 내일부터 시간 날때마다 정리를 해 둬야겠다.

라이브러리와는 조금 다른 이야기이지만, 비슷한 이야기를 하나 더…

대학교 연구실 교수님께서 자주 하시는 말씀이 있다.
“매크로 작업이 있으면, 손으로 할 때 걸리는 시간과 프로그램을 만드는 시간을 예상해 보고, 손으로 하는 게 빠르면 손으로 하고, 비슷하기라도 하면 프로그램을 만들어라.”

학생 때는 나도 매크로 작업이 필요할 때는 되도록이면 간단한 유틸리티라도 작성해서 사용했는데, 입사하고 나면서 점점 귀찮아지면서 ‘손으로 하고 말지’ 라는 생각이 앞서는 것 같다.
(물론 회사 입사 이후로도 몇 가지 만들긴 했는데, 엄청 귀찮아하면서 만들었다.)

그런데 작업을 하다 보면 매크로 작업은 한 번 하면 보통 나중에도 여러 번 하게 되는 것 같다.

그래서, 교수님 말씀에 개인적인 생각을 한 가지 더 추가해야 될 것 같다.
“두 번 이상 사용할 것 같다면 프로그램을 만들어라.”

정리하자면, 자신을 위해 이런 작업은 ‘귀차니즘’을 극복하고 긴 안목을 두고 해야 되지 않을까 싶다.
(생각해보니 역으로 생각하면 ‘귀차니즘’을 위하여 해야 되는 것일 수도 있네…)

1. 라이브러리화 할 수 있는 것들은 모두 라이브러리화 하고 API 스타일의 문서를 만들자. 그리고 추가되는 클래스를 잘 분류해서 라이브러리를 자주 업데이트하자.

2. 매크로 작업을 유틸리티로 작성하자.

라이브러리야 뭐 회사에서 사용하는 언어를 따라가면 되니…
리팩토링과 클래스 디자인, 디자인 패턴, 그리고 ‘귀차니즘’을 공부해야 할 것 같다.

매크로 작업은 C/C++로 코딩하기에는 좀 비효율적인 것 같고… 스크립트 언어를 하나 공부해보면 좋을 것 같다. 미뤄두고 있는 파이썬 언어를 시간날 때 마다 공부해보아야겠다.

공부할 게 무궁무진하구나…


뒷 쪽 »