새로운 개발자 문화-두번째이야기

지난 글에서는 새로운 개발자 문화의 필요성에 대해 말했다.
정리하면 개발자들은 현재 처한 상황 및 처우에 대해서 많은 불만을 가지고 있으며 이러한 문제로 인해 프로젝트, 유지보수 시스템의 품질에도 영향을 미친다고 할 수 있다. 하지만 현재의 개발자 문화는 누군가가 해결해 주기만을 기다리고 있다라고 했다.

이번글에서는 왜 이런 문화가 형성되어 있는지에 대해서 생각해 보았다.

1. 개발자들은 너무 순진하다.
개발자들은 거짓말 하는데 익숙하지 않은 것 같다. 프로그램 자체가 논리적인 사고를 많이 요구하는 일이다 보니, 훌륭한 개발자들은 아주 논리적이다. 따라서 거짓말을 거의 하지 못한다. 예로 영업사원의 경우 밤에 접대로 인해 술을 많이 마시고 다음날 출근하면 아침에 잠깐 인사만 하고 고객 또는 거래처를 만나러 간다고 한다. 하지만 팀장부터 맨 아래 개발자까지 어디 가는지 알고 있다. 잠깐 눈 붙일데를 찾아 가는 것이다. 그래도 다들 눈감아 준다.
하지만 개발자는 이것을 잘 못한다. 한다고 해도 관리자들이 인정하지 않는다. 전날 아니 그날 새벽 1 ~ 2시에 퇴근하고다 다음날 정시 출근해야 하고 프로그램 만들어야 한다.
개발자와 영업맨들의 차이가 무얼까? 영업맨에 대한 사회에서 인식하는 문화는 술 마신 날은 오전에 잠깐 사우나를 가도 허용하는 것이다. 이런 것이 어떻게 만들어 졌을까? 처음에는 물론 관리자로부터 많은 질타를 받았을 것이다. 하지만 과거의 영업맨 선배들은 어떤 핑계를 대서라도 잠깐 나가서 눈을 붙였다. 그것이 오랜 세월에 걸쳐 관례화 된것이라 추측해본다.
그럼 개발자들은 어떤가? 영업맨들이 하는 것과 같은 눈에 보이는 거짓말은 잘 못한다. 순진하기 때문이다.
다른 사례를 들어 보자. 개발자들은 고객 또는 PM으로부터 업무 지시를 받을 때 "이거 언제까지 끝낼 수 있습니까?" 라는 질문을 받으면 자신이 다른 업무를 하지 않고 야근을 했을 때 처리 가능한 기간을 말한다. 그리곤 "이 일에만 전념했을 때 일정입니다."라고 전제 조건을 말한다. 하지만 이를 받아들이는 관리자는 그럼 그 기간 또는 일정을 더 당겨서 끝내라고 지시한 후 다른 업무는 주지 않겠다고 말한다. 절말 그럴까... 고객으로부터 오는 전화, 회사 인사부서로 부터의 인사카드 수정, 인터넷 서핑, 잠깐의 신기술 공부 이런 것들은 관리자의 지시가 없어도 매일 일어나고 있는 일이다.
필자의 경우 이런 것들을 모두 고려하여 일정을 수립한다. 예를 들어 2 ~ 3일 열심히 하면 처리할 수 있는 일의 분량이면 1주일 정도를 말한다. 보통 2배 정도로 말한다. 물론 처음에는 많은 고객, 관리자의 반발이 있었지만 그들이 나를 어떻게 하겠는가? 그들도 나의 실력을 인정하고 있는데... 그리고 그들이 개발을 하는것도 아닌데!! 이것이 지속적으로 1년 이상 계속되면 영업맨의 눈에 보이는 거짓말처럼 일정 역시 당연한 것이 된다. 그러면 필자의 경우 평상시 업무 보는 것과 같은 일정을 가지고 자기 개발도 하고, 잠깐의 여유도 가지면서 개발을 할 수 있는 여유를 가지게 되었다.
물론 SI 프로젝트 같은 경우에는 D-day가 정해져 있기 때문에 이렇게 하는 것은 무리이다. 하지만 애초 프로젝트 계획 수립시 또는 제안 단계에서 프로젝트 투입 인력 및 일정 계획 수립시에 시니어 개발자 또는 아키텍트, PM 중에 한명이라도 이러한 요소들이 반영되도록 참여하여야 한다. 이런 회의에 참여할 수 있도록 적극적으로 요청해야 한다. 이것은 필자와 같은 경력 수준의 개발자들이 해야할 역할이 아닌가 생각하면서 다시 한번 반성해 본다.

어느 블로그에서 본 글인데 다음글과 같은 맥락이다.

"열심히"씨와 "훌륭한"씨는 각각 "엄청난소프트웨어회사"와 "허벌난소프트웨어회사"의 두 직원이다. 우연치 않게 두 회사에 정확히 똑같은 내용의 주문이 들어왔다. "열나어려운문제" 해결을 위한 프로그램을 작성해 달라는 것이었다.

열심히씨는 처음 예상 소요 시간인 3개월 동안 정말 열심히 일했다. 하지만 일을 하면서 예상 외의 장애를 직면했고, 밤샘 작업까지 해가면서 3개월의 마지막 날 매니져에게 이런 말을 할 수 있었다. "정말 열나게 프로그램을 짰슴다. 밤샘도 하고요. 제가 지금까지 작성한 프로그램은 2000줄입니다. 그런데, 새로운 문제가 기술적으로 불가피하게 발생했습니다. 복잡한 버그(프로그램의 오류)도 몇 가지 해결해야 하고요. 한 달 가량이 더 필요합니다." 그러고 한달 후 열심히씨는 몇 개의 버그와 더불어 나름대로 작동하는 프로그램을 매니져와 고객에게 자랑스럽게 보여줄 수 있었다. 벌겋게 충혈된 눈과 미쳐 깎지 못한 수염, 무지무지 어렵고 복잡해 보이는 2500여 줄의 프로그램과 함께. "예상보다 훨씬 더 복잡한 문제였군요. 정말 수고하셨습니다."라는 칭찬을 들으면서.

훌륭한씨는 매니져가 "의무적으로" 잡아놓은 예상 소요 시간 3개월의 첫 2달 반을 빈둥거리며 지냈다. 매니져는 훌륭한씨가 월말이 되어서 "정말 죄송해요. 아직 한 줄도 못짰어요. 너무 어려워요. 좀 봐주세요."라고 처량하게 자비를 구할 날을 손꼽아 기다렸다. 웬걸, 마지막 날 훌륭한씨는 예의 "너무도 태연스러운" 모습으로 나타났다. 150여 줄의 프로그램과 함께. 그 프로그램은 멋지게 "열나어려운문제"를 해결했다. 하지만, 매니져가 그 코드를 들여다 보자, 한마디로 "너무도 쉬웠다." 초등학생도 생각해 낼 정도였다. 매니져와 고객은 이름을 "열나쉬운문제"로 바꾸는 데에 전적으로 동의한다. 훌륭한씨는 "이렇게 간단한 문제를 3개월 씩이나 걸려서 풀었습니까? 왜 이렇게 성실하지 못하죠?"라는 비난을 들어야 했다.

둘 중에 누가 승진을 했을까?

열심히씨는 승진하고, 급여인상을 받았다. 훌륭한씨는 급여삭감을 직면하고는 퇴사해 버렸다.

훌륭한 프로그래머는 가난하다. 훌륭한 프로그래머의 딜레마인 것이다.


이제 훌륭한 프로그래머들도 정당한 평가를 받기 위해서 열심히 하는 척은 해야 하지 않을까? 그것이 양심에 조금 찔리더라도...
남는 시간에는 후배를 키우고 집필하고, 연구하는데 시간을 좀 더 투자하는 것이 어떨까.


2. 개발자 수준의 하향 평준화.

현재의 개발 문화의 또 다른 면은 개발자 커뮤니티 전체의 실력이 너무 저하되어 있다는 것이다. 대학의 공식적인 교육절차에 의해 배출되는 인력은 턱없이 부족하고 3 ~ 6개월 정도의 교육기관을 통해 배출되는 인력이 너무 많다. 물론 정규 교육을 받은 개발자가 비전공자에 비해서 실력이 뛰어나다고 평가할 수는 없다. 학원과 같은 교육기관을 통해 배출된 개발자들 중에도 뛰어난 실력을 발휘하고 있는 개발자들도 많이 보았다. 필자가 말하고 싶은 것은 전산전공자이든 비전산 전공자이든 소프트웨어 개발을 너무 쉽게 보고 있다는 것이다. 앞의 글에서도 말했지만 필자는 10년이 지난 지금에도 아직도 제대로 된 개발을 하고 있지 않고, 계속 공부하고 있다. 아직도 많은 개발자들은 필자의 생각에 동의하지 않거나, 동의하지만 더 나은 수준으로 올라가려는 시도를 하지 않고 있다.
물론 이것은 실력있는 개발자에 대한 보상 문제와도 관계가 있을 수 있다. 아무리 실력이 뛰어나봐야 기껏 받는 월급이 많아야 300 ~ 500만원 정도이고, 아무리 실력이 없어도 100 ~ 300만원 정도는 받을 수 있는 현재의 평가 및 보상 시스템에는 문제가 있다. 또한 정통부 소프트웨어 개발 인력에 대한 보수 체계가 실력이 아닌 단순히 년차로만 구분되는 현실에서는 더욱이 개발자들의 자기 개발 의지는 부족할 수 밖에 없다.
지금까지는 외부에서 이것을 해결해 주기를 바랬지만 지금부터라도 개발자 커뮤니티에서 스스로 해결하는 노력도 필요하지 않을까 생각한다. 현재 우리 개발자들이 제대로 평가 받지 못하고 있는 것도 어떻게 보면 하향평준화 되어 있는 개발자의 수준이 또 다른 원인이 될 수도 있다.
소프트웨어 개발에서의 생산성은 다른 산업 분야에서의 생산성과는 다른 양상을 보인다고 할 수 있다. 많은 외국의 소프트웨어 공학 관련 서적에서도 잘하는 개발자와 그렇지 못하는 개발자들 사이에는 약 20배 정도의 차이가 난다고 한다. 이것은 공식적인 수치이고 필자의 의견은 무한대라고 본다. 필자와 같이 프로젝트를 수행한 개발자 중 일부는 2주동안 단순한 데이터 조회하는 하나의 웹 화면 조차도 만들지 못하였다. 그동안 다른 개발자는 4개 정도의 화면을 개발하였다. 0:4, 다시 말해 무한대이다.
이것은 프로젝트 계획서 또는 비용 청구서에 개발인력 00명이라고 적혀있는 내용을 만족시키기 위해 전혀 도움이 되지 않는 개발자를 투입시키기 때문에 발생하는 문제이다. 고객 또는 PM, 관리자는 한명이라도 더 많은 개발자가 투입되면 아무래도 더 빨리 또는 더 많은 프로그램을 만들수 있다고 생각하겠지만 실제로는 그 반대일 수도 있다. 프로젝트 구성원이 많아 질수록 서로 커뮤니케이션 해야 하는 채널은 기하 급수적으로 증가하게 되고, 더 좋은 생산성을 낼 수 있는 개발자들도 이런 커뮤니케이션 또는 관리의 늪에 빠져 평균 수준의 생산성만을 낼 뿐이기 때문이다.



그리고 프로젝트 막바지에는 이러한 실력 없는 개발자들이 만들어낸 코드에서 발생하는 오류를 해결하기 위해 더 많은 시간을 투입해야 한다.
필자는 아직 "The Mythical Man-Month" 라는 책을 읽어 보지는 못했지만 몇몇 서평과 요약된 글에서 보면 이와 같은 내용들이 많이 나타나고 있다. 이 책은 출판된지 벌써 20년 이상이 지났다. 아직도 이런 문제를 해결하고 있지 못한 것은 무한대의 생산성 차이를 인정하지 않으려는 문화에서 비롯된 것이 아닐까 하는 생각도 해본다.
우리 개발자들은 너무 순진하여 이런 생산성 Zero 개발자들의 몫까지 모두 자신이 가져와 개발하기 때문에 이런 악순환이 반복되는 것이 아닐까? 이해할 만한 수준의 품질과 납기를 맞추지 못하는 개발자들을 우리 개발자 스스로가 퇴출시켜야 하지 않을까? 그들의 짐을 우리가 모두 짊어지고 가기에는 현재의 우리 개발자들에게는 너무 무겁게만 느껴진다.
프로젝트에 투입될 개발자들을 인터뷰하는데 있어 PM, 관리자에 의한 인터뷰 뿐만 아니라 반드시 기술 인터뷰 절차를 지키게 하고 기술 인터뷰에서는 적당한 수준의 실습을 병행하여 어느 정도 수준인지 판단한 후 등급을 결정하고, 자신의 등급에 대해 개발자가 인정하지 않을 경우에는 옵션 조항으로 프로젝트 완료 시점에 다시 평가하여 적절하게 보상해주는 체계는 어떨까? 프로젝트 도중에라도 다른 개발자에 비해 현저하게 생산성에서 차이가 나는 개발자는 조금 야속하지만 관리자에게 건의하여 퇴출 시키는 것이 어떨까?
보상에 대한 부분은 민감하기 때문에 다음에 고민해본다 하더라도, 투입전 기술 인터뷰와 실습은 개발자의 전반적인 수준 향상을 위해서는 반드시 필요하다고 생각한다.


다음 글은 어떤 기사에서 본것이다.
소프트웨어는 기술이 아니라 문화이다.
- 웹2.0은 집단 지능을 이용한다. 국내 개발자 커뮤니티도 이런 모습들을 보여 주고 있지만 조금은 소극적이고 이렇게 모인 집단 지능을 이용하여 비즈니스로 전환하는 선순환이 만들어지고 있지 않다.
이것을 뛰어 넘기 위해서는 국내 소프트웨어 산업 전체가 변동해야 하지 않을까 생각해 본다. 이것의 주체는 정부나 회사 경영진이 아닌 개발자들에 의해서 되어야 하지 않을까???


다음글에서 계속...

* 생산성이 떨어지는 개발자 등은 운운하며 일부 개발자들을 비화한 부분에 대해서는 미리 사과의 말씀을 드립니다. 물론 "이런 글을 쓰는 당신은 얼마나 잘 하길래" 라고 손가락질을 할 수도 있습니다. 이런 비판 모두 수용하겠습니다.
필자는 저희 아버님 세대에게 매우 감사하고 있습니다. 우리 아버지들이 땀을 흘려 만들어 놓았디 때문에 우리나라 대한민국이 이정도 살 수 있다고 생각합니다. 우리 아버님들은 땀과 열정으로 공업국가를 만드셨습니다. 그럼 우리는 제 옆에 잠들어 있는 제 딸들에게 어떤 나라를 만들어 줄지 고민해 보았습니다. 지식국가만이 미래의 대한민국 모습이 아닐까요? 그중 소프트웨어는 지식국가의 핵심입니다. 소프트웨어 강국을 우리 다음 세대에게 물려주기 위해서 저는 이보다 더한 컬럼을 적을 각오를 하고 있습니다. 물론 저 자신도 끊임없는 학습과 연구 활동을 계속해 나갈 것입니다.

** 본 글에서 말하는 개발자는 단순히 프로그래머를 의미하는 것이 아니라 단순 프로그래머부터, 분석/설계, 아키텍트와 같이 실제적으로 프로젝트에 투입되어 QA, 사업관리 등의 업무가 아닌 개발과 관련된 업무를 수행하는 개발자를 말한다.
마틴파울러, 켄트벡 이런 사람들을 우리는 개발자라 불러야 할까 아니면 뭐라고 불러야 할지...
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


Trackback URL : http://www.jaso.co.kr/trackback/39

Comments List

  1. 이동국 2006/01/24 08:10 # M/D Reply Permalink

    개발자들의 하향평준화는 이미 많은 곳에서 지적이 되고 있는 부분이라고 보여집니다. 저도 커뮤니티를 하나 관리하고.. 그 외 많은 커뮤니티를 방문해 보지만.. 사실 이런 질문만은 안 했으면 하는 종류의 질문이 너무 많습니다. 이런것으로 인해 커뮤니티의 글이 개발에 크게 도움이 될만한 정보를 전달하지 못하고 있다는 결과를 낳게 되지요.. 하지만 아직도 자기 개발에 땀을 흘리는 많은 개발자들에게 형준님의 글이 실례가 되는 글이 될지도 모르겠습니다. 그래도 많은 능력있고 열의가 대단한 능력있는 개발자분이 이런 현실을 직시한 글을 이해해 주시리라 믿습니다.

    1. 김형준 2006/01/24 08:32 # M/D Permalink

      비평 감사합니다. 저도 휴일에 도서관까지 찾아가서 공부하시는 개발자도 본적이 있습니다. 그렇게 열심히 공부하시는 분들에게는 제 마음 모두를 담아 찬사를 보냅니다.

  2. 흐흐 2006/01/25 12:00 # M/D Reply Permalink

    뛰어난 개발자가 많은 급여를 받아야 하는건 당연하겠습니다만... 대부분의 중/대형 프로젝트에서 개발자의 위치란 큰 공장의 부품하나에 지나지 않습니다. 부실하면 교체의 대상이 되지만... 어느정도 수준만 된다면 크게 무리없이 사용이 되죠.
    그렇게 될수있는 이유는 대부분의 대형 SI회사들이 자체 프레임웤을 사용하여 개발자가 복잡한 부분은 신경쓰지 않고 비지니스 로직만 해결하면 될 수 있게 해놓았기 때문입니다.
    앞으로 개발자로서 그만큼의 대접을 받으려면 핵심부분을 개발할 수 있는 노하우가 있어야 가능한것이지 단순히 랭귀지를 사용하는 능력이 있다던가 빨리 개발을 한다던가 하는 부분이 아니라는 것입니다. 군대에서 사병은 능력이 뛰어나도 사병일 뿐입니다. 대우가 크게 달라지지는 않죠.
    업계에 오래 몸담으신분들은 잘 아시겠지만...
    개발하는 능력도 중요합니다. 하지만 더중요한 부분은 설계 및 컨설팅입니다. 장교가 될것인지 사병이 될것인지는 본인이 판단할 문제겠지요.

  3. 흐흐 2006/01/25 13:08 # M/D Reply Permalink

    1.개발자는 순진하다 및 그아래 사례에 관한 반대의견입니다.
    1~2일 걸리는 개발물량을 1~2일 걸린다고 대답하는 사람들은 대부분 일명 '초짜'입니다. 단순히 개발하는데 필요한 시간만을 계산하죠. 테스트도 완벽하지 않습니다.
    반면 고수들은 예상 작업시간의 3배정도를 말합니다.
    물론 프로그램의 성격에 따라 다릅니다.
    누가 보아도 너무 쉬운 업무를 그렇게 말하긴 힘들겠죠?
    전체 업무량을 고려하지 않은 경우이니 엄밀히 말하면 남의 탓만 할일은 아닙니다.
    또, PM이 모든걸 고려해줄 수는 없습니다.
    무한경쟁 사회에서 프로젝트를 수주한다는것은 참 어려운 일입니다. 기술력 뿐만 아니라 원가 절감이 아주 중요한 부분을 차지합니다. 프로그래밍에서 원가 절감의 가장 큰 부분은 인건비죠. 빠른 시일안에 개발이 끝나야 인건비를 줄일 수 있겠죠? 일부 회사는 예정계획보다 빨리 일이 종료가 된경우 인센티브를 주기도 합니다. 개발인력 비용외에 운영인력의 비용도 절감되기 때문이겠죠?
    비록 프로그래머의 일이 아닐지라도 같은일을 한사람은 10일안에 마치기로 하고 7일걸렸고, 다른 사람은 6일안에 해주기로 해놓고 7일 걸렸다면, 같은 시간이 걸렸음에도 고객의 평가는 자명한 것입니다.
    아래의 열심히씨와 훌륭한씨의 사례를 봤을때 프로그래머의 능력만 따지고 본다면 열심히씨는 아주 평범한 능력의 소유자이고 훌륭한씨는 천재급입니다. 그러나 고객의 입장이라면 훌륭한씨 같은 사람은 탈락입니다.
    프로그램의 완성을 기다리는 고객은 늘 불안하죠.
    제시간에 안되면 자신도 책임을 져야하니까요.
    바로 전날까지도 개발의 진행이 순조롭지 못해 보이는 사람을 믿고 일하기는 어렵습니다. 또한, 그가 천재인지 여부도 알수 없죠. 그렇기 때문에 성실한씨가 더 뛰어나 보이는 겁니다.
    비록 천재이지는 못하지만... 같이 일을 해나감에 있어서 일의 진행 상황이라든가 이런것이 컨트롤 가능하다는 겁니다.
    만약 훌륭한씨가 3개월 예상시간을 한달만에 끝냈다면 얘기는 엄청 달라지겠죠. 절대 딜레마가 아니라는 겁니다.

    두번째 개발자의 하향평준화는 위에 대강의 내용을 썼기때문에 약간만 덧붙이겠습니다.
    위에 언급한 내용처럼 프레임웤을 사용하는 경우 대단한 능력의 소유자는 100명중에 5명정도면 됩니다. 이들이 키맨이죠. 나머지는 성실하고 적당한 능력의 소유자이면 됩니다.
    너무 잘난 사람은 말도 잘안들으니 관리하기 어렵겠죠.
    그리고 개인적인 평가문제... 평가하기 어렵습니다.
    PM은 늘 변화하는 개발툴에 대해 잘 알지도 못합니다.
    공정한 평가는 기대하기 어렵죠. 그 근거를 찾기도 쉬운일은 아니구요.
    결과는 프로젝트 진행후 알게되겠죠. 그다음은 입소문...
    현재 상황은 그렇습니다.
    대부분 인터뷰 할때 적당히 합니다. 물론 키맨은 그렇지 않습니다. 핵심인물들은 잘뽑아야죠.
    0:4 무한대라는 말도 처음 한달은 그럴 수 있죠. 그러나 대부분 익숙해진 3~4개월때도 그럴까요? 물론 능력이 뛰어난 사람은 빨리 합니다. 하지만 쳐지는 사람도 70~80%의 업적은 달성합니다. 팀단위의 일을 맡기는 것도 능력있는 사람과 없는 사람을 적당히 섞어서 일하는것이 전체적으로 효율적이라는 것이죠. 잘하는 사람만 한팀에 모아놓으면 일이 빨리 됩니까? 서로 저 잘났다고 우기느라 막상 일은 하나도 못합니다.
    이것이 현실입니다.
    우리나라에서 프로그래머가 되는 길은 쉽습니다.
    그러나 오래 살아남긴 어렵죠. 그만큼 자신만의 특별한 노하우를 가진 사람은 많지 않습니다.
    프로젝트는 프로그래머가 혼자 할 수 있는 일이 아닙니다.
    자신이 프로젝트의 어느부분을 맡아서 일을 할지 앞으로 어떤 역할을 하는 사람이 될지는 스스로 잘판단하여 결정하여야 합니다.
    평생 프로그래머로 남을 수 있을것이라는 어리석은 생각은 하지 마시기 바랍니다. 그정도의 능력이 되는 사람은 많지 않습니다.
    프로그래머의 길은 쉬워 보이지만 참 어렵습니다.
    어느덧 프로그래머 생활이 10년됬네요. 저도 변신을 할때가 됬습니다. 어쩌면 지났죠.
    이글이 앞으로 뭐가 어떻게 되어나가는지 모르는 초보자들에게 작게나마 도움이 됬으면 해서 남겨 봅니다.
    새해 복 많이들 받으시구요 ^^*

    1. 김형준 2006/01/25 13:45 # M/D Permalink

      의견 감사합니다. 매우 동감합니다. 위에서 작성된 글은 저와 제 주변 환경만 보고 생각한 것을 글로 작성한 것이기 때문에 전체 개발자 상황을 대변한다고는 할 수 없을 것 같습니다. 제가 이런 글을 작성하는 이유도 지금과 같이 온라인, 오프라인으로 계속해서 토론을 하면서 서로의 의견을 공유하자는 취지도 있습니다. 저도 10년차 입니다. 저도 프로그램만으로 살아나갈 수 없다는 것을 잘 알고 있습니다. 새로운 성장 모델을 찾아야 하는데 좋은 모델로 성장한 선배를 주변에서 찾기 어려워 더욱 답답합니다.
      궁금해서 그러는데 흐흐님은 어떤 모델 또는 비전을 가지고 계시는지요?

  4. JameDean 2006/01/31 10:52 # M/D Reply Permalink

    제 사견입니다만, 개발의 하향 평준화 뿐 아니라 개발 마인드에 대한 하향 평준화 역시 문제라고 생각합니다. 개발팀을 이끄는 리더의 마인드가 단순히 순간 순간을 넘기기 위한 앞가림식이라면 더 큰 문제라고 생각합니다. 물론 이것은 제 환경과 밀접한 관련이 있기에 보편적이라고 보기는 힘들지만 개발 리더들이 조금 더 적극적이고 미래 지향적인 사고 방식으로 현재의 좋지 않은 문화를 변화시켰으면 하는 바람입니다.
    좋은 글 진심으로 감사드립니다.

    1. 김형준 2006/01/31 11:09 # M/D Permalink

      저역시 과거 SI 프로젝트 진행 시 일정에 ㅤㅉㅗㅈ겨 성능, 유지보수성, 코드의 가독성 등을 무시한 채 정해진 테스트 시나리오만 통과하도록 프로그램을 많이 만들었습니다. SI프로젝트를 떠나 전산실에서 근무하는 지금 시스템의 라이프 사이클에서 개발은 10%, 유지보수는 90%라는 말을 절감하고 있습니다. 이제 개발 단계에서부터 시스템의 라이프 사이클에서 90%를 차지하는 유지보수에 대한 방안을 고려한 설계 및 구현이 고려되어야 합니다. 따라서 프로젝트의 개발방법론에서도 이러한 내용을 검증할 수 있는 액티비티가 포함되어야 할 것입니다. 물론 개발자 역시 이런 마인드를 가지고 있어야 하고요.
      개발자들은 의사들과 같은 강한 윤리의식 수준까지는 필요없을지 몰라도 사회의 인프라를 구축한다는 정도의 윤리의식이 있어야 하지 않을까 생각합니다. 본인이 탈 비행기를 제어하는 소프트웨어를 만들때에도 그렇게 만들것인지 반문해 봅니다.

  5. 쿠키 2006/02/01 18:29 # M/D Reply Permalink

    위의 글을 읽고 있자니 참 공감가는 부분이 많습니다. 정말 요즘 프로그래머들 중에는 문제 있는 친구들이 꽤 있습니다.
    저는 그런 친구들은 프로그래머가 아닌 프로구해머 라고 자조하곤 하는데.. 현실적으로 그런 개발자들은 늘어만 갑니다.
    새로운 걸 시도 하는 사람을 보면.. 누군가이렇게 말합니다. '그런건 좀 지나면 다 블로그에 나오고, 발표되는 프레임웍에 포함되어 있다, 그러니 우리는 쓰기만 하면 된다' 뭐 틀린 말은 아닙니다. 그래도 그런 얘기를 들으면 한구석이 씁쓸해 지는건 어쩔 수가 없네요..
    그런일에 지치다보니 시간이 지날수록 개발에서 점점 멀어지고 대신 일정관리하고, 시간 스케줄만 짜고 있는 위치가 되더군요..
    전 앞으로 우리 개발자 들은 좀더 난해해 져야만 한다고 생각합니다. 지금까지 낮았던 진입장벽을 스스로 좀 더 높이는 길만이 현재보다 나은 대우와 노력하는 개발자를 생산할 수 있지 않을까요?

    1. 김형준 2006/02/02 08:10 # M/D Permalink

      신입 개발자들에 대한 소프트웨어 개발 업계로의 진압장벽을 높이기 보다는 개발자들의 영역을 세분화하여 다양한 계층 또는 능력을 가지고 있는 개발자들이 자신의 역량에 맞는 업무와 보수를 받으며 일하는 분위기를 만들어야 한다고 봅니다. 지금은 자신이 능력에 상관없이 단순히 연차로 보수가 정해지고 있습니다. 이렇게 단순히 연차로 정할 것이 아니라, 화면계층 개발, 비즈니스 계층 개발, 테스터, 컴포넌트 개발, 아키텍트 등 자신이 실제 수행할 수 있는 업무와 이 업무의 수행경험, 능력에 따라 보수가 정해져야 겠죠... 이렇게 되면 화면 개발과 같은 기술 수준이 다소 떨어지는 업무를 수행하는 개발자들은 초기에는 프로젝트 수행과 동시에 학습을 수행하면서 높은 보수를 받을수 있는 업무가 수행하도록 스스로 역량을 높일 것이며, 이런 노력을 하지 않는 개발자는 스스로 도태될 것이라 생각합니다. 따라서 이제는 개발자라고 애매모호하게 말하기 보다는 전문 분야로 자신을 소개하는데 익숙해져야 할 것입니다. 영화나 건축분야에서처럼 말입니다.

  6. 지나가던 이 2006/02/03 12:28 # M/D Reply Permalink

    김형준님글 많이 공감합니다. 현재 일하고 있는 프로젝트에서도 이런 문제들이 발생하고 있습니다. 경력이 꽤 된 개발자에게 일을 맡겼는데 종료일자가 며칠 안남았는데도 아직 절반도 끝마치지 못했습니다. 경력만으로 능력을 판단한다는게 얼마나 위험한 일인지 뼈저리게 느끼고 있습니다. 할 수없이 야근을 하면서 같이 해나가고 있지만 프로젝트를 시작하기 전에 이런 문제에 대해서 인지를 하고 적절한 대처를 하지 못한게 후회됩니다. 제가 비록 PM은 아니지만 주먹구구식이 아닌 체계적인 검증시스템이라든가 개발자에 대한 최소한의 능력점검의 필요성에 대해서 많이 생각하게 됩니다.

  7. 양병석 2006/02/07 10:49 # M/D Reply Permalink

    휴.. 읽고나니, 4년여간의 대학생활, 이제 1년의 직장생활동안 제 위치는 어디인가 싶어 문득 겁이나네요. 형준님이 말씀하신 그 끌려가는 개발자는 아닐른지. 정신 좀 바짝 차려야겠습니다.

    1. 김형준 2006/02/07 22:25 # M/D Permalink

      아직 많은 시간이 남아 있습니다. 저는 10년 되었습니다. 하지만 아직도 멀었습니다. 지금까지의 10년은 배우는 과정이었고, 앞으로의 10년은 심화하는 과정이고 그 다음 20년 동안 그동안 생각했던 모든 것을 이루고자 합니다.

      양병석님도 처음 가졌던 자신의 비젼을 끝까지 가져가시기 바랍니다.

  8. A2 2006/02/11 16:36 # M/D Reply Permalink

    공감하는 부분이 많습니다.
    구글을 통해 Ajax에 대한 자료를 찾다가 이곳에 들리게 되었습니다. :)
    XMLHttpRequest를 예전에 공부해놨던건데 자료로 남겨놓지 않았더니 역시나 다 잊어버려서 새로 공부했습니다. ㅎㅎ

    개발일정을 예상보다 2~3배 늘려서 잡는다던지, 하향평준화라던지 공감가는 부분이 많습니다.

    최근 모업체에서 해결하지 못한 버그가 있는 프로그램을 저희 회사가 맡게 되었습니다.
    처음 프로그램을 만든 업체는 만든 사람이 회사를 그만뒀기 때문에 버그를 못잡고 있었다고 했습니다.
    만든 업체에서도 못잡는 버그를 저희회사에게 넘긴다는게 참 어이없더군요.
    그래서 소스를 받아서 분석해보니 모듈의 내용 결합도가 상당했습니다.
    덕분에 소스 분석에 상당한 시간을 소모했지만 버그는 정말 별거 아니었습니다.
    정말 이런거 하나 못고치면서 어떻게 개발자이고 팀장인지 싶더군요.
    물론 저도 많이 배워야 하는 입장인데 이건 좀 심하다 싶었습니다.

    예전에도 프리랜서 프로그래머가 개발한 프로그램이 너무 느리다고 해서 손을 좀 보는데 인덱스 하나 없는 DB 테이블을 만들어놨습니다.
    인덱스 추가해줬더니 속도가 배이상 빨라졌습니다.

    디자이너가 자바스크립트 소스 하나 만들어 달라고 하니까 인터넷에 찾아보면 많으니까 가져다 쓰면 된다는 개발자도 있구요.

    실력을 떠나서 마인드가 없는 개발자가 너무 많은것 같습니다. 물론 마인드가 없으면 실력의 향상이 없을테지만요.

Leave a comment
« Previous : 1 : ... 358 : 359 : 360 : 361 : 362 : 363 : 364 : 365 : 366 : ... 388 : Next »