옮긴 회사에서도 마찬가지였습니다. 예전부터 C를 파고든 중견 개발자 선배들은 자바 진영의 기술들(자바, 객체지향, CVS, Ant, JUnit, 이클립스, 모델2 프레임워크)에 대하여 의문을 표시했고, C로 저수준의 기술을 직접 파고드는 것에 자부심을 가진 듯 싶었습니다.
지금에 와서는 당시 개발자 선배들도 맞기도 하고, 제가 생각하는 것이 틀린 것도 있다는 것을 느끼고 있습니다.
여기서 보수적인 프로그래머는 C등의 자신이 파고든 핵심 기술과 경력을 가지고 있는데 신기술 습득은 여러가지 안 좋은 경험으로 '부정적'으로 생각하는 사람들이고, 진보적인 프로그래머는 자신이 잘 알든 모르든 신기술 습득을 '긍정적'으로 받아들이는 사람들이라고 정의해 보았습니다.
> 보수적인 프로그래머, 주로 고참 개발자, 최신 기술이라고? 또 다른 삽질이 등장했군 흠냐~ ; 그런데 우리나라 IT 현실에서는 이럴 수 밖에 없다.
IT개발자 생활을 하다 보면 여러 가지 난관을 만나게 됩니다. 그 중 하나가 ‘팀원간 기술 습득의 가치 공유’ 의 문제입니다. 이 문제는 자주 발생된다고 생각합니다.
‘팀원간 기술 습득의 가치 공유’란 문장을 다시 정리하겠습니다. 팀원 중에 누군가 특정 신 기술이 훌륭하여 우리팀에 도입을 강력하게 주장하지만 과연 나머지 팀원들이 거부감 없이 ‘기술 습득을 통한 팀의 새로운 가치 창출’에 동의해 줄 것인가의 문제를 말합니다.
프로그래밍 세계는 신기술이 해일처럼 밀려옵니다. 그리고 IT개발자는 천재거나 기술 습득의 ‘불타는 열정’을 가지고 있지 않은 이상은 필요 이상의 신기술 습득에 거부감을 나타냅니다.
특히 이 현상은 어느 정도 자신의 분야에 실력과 경력을 갖추고, IT개발자 말고 다른 생활(결혼, 가족 챙기기, 취미생활 등)에 신경써야 하는 고참 개발자에게 잘 나타납니다.
여기에 한가지 더해서 우리나라 IT환경의 좋지 않은 환경을 수도 없이 경험한 고참 개발자라면 고개를 절레절레 흔들면서 더욱 더 ‘신기술 습득’에 거부감을 느낄 것입니다.
그리고 ‘신기술’이 좋다고 하여 막상 써보면 탁상공론으로 만들어낸 헛 방망이라서 또 다른 삽질을 만들어 내기도 합니다.
위의 모든 ‘푸석푸석한 조건과 경험’들은 새로운 기술을 우리 팀에 도입하는데 큰 방해 요소가 될 것입니다.
> 진보적인 프로그래머, 주로 한창 열정 넘치는 초중급 개발자, 다만 맹목적인 기술 추종은 조심하자.
곰곰히 생각해 보니 보수적인 프로그래머도 자기 분야에 일가를 이루었다면 해커스러운 포스(=고수 개발자의 포스)가 느껴지는 것 같습니다.
그런데 프로그래밍이 재미있어서 열심히 공부하고 좋은 기술 있으면 열심히 도입하려고 하는 진보적인 프로그래머야 말로 진정 해커스러운 포스가 있다고 생각합니다.
다만, 이런 개발자는 프로그래밍에 대한 열정과 지식이 풍부한 대신에 고객이나 직장동료간의 대인관계나 프로젝트 경험등의 중요한 요소를 잘 인식하지 못하는 경우도 있을 것 같습니다.
사실은 제가 해당되는 경우인데요. 저는 사실 발군의 프로그래밍 실력을 가진 것도 아니면서 다양한 프로젝트 ‘경력’ 이라던가 직장동료와 고객과의 ‘의사소통’ 등의 대인관계를 소흘하게 대하는 면이 있었습니다.
내가 진보적인 프로그래머라고 생각한다면 좋은 기술 습득에 소흘히 해서도 안되지만, 맹목적으로 프로그래밍 기술에만 집착하여 사람 사는 우리 세상의 기본적인 중요한 요소인 ‘경험(그것이 삽질 경험일 지라도..)’ 과 ‘대인관계’ 등에도 관심을 기울여야 될 것입니다.
> 프로그래머 진보와 보수 그 바른 지향점은.
정치를 진보와 보수로 쪼개는 것을 극도로 싫어하는 분들이 계시는것처럼, 사실 프로그래머도 진보와 보수로 쪼개는 것 자체가 좋아 보이지 않습니다. 그러나 저는 사실 개발자 생활 하다 보니 이렇게 둘로 나눌 수 있다고 판단하게 되어 쓰게 되었습니다. 좋아보이진 않더라도 사실은 사실이라고 생각했습니다.
제 생각은 개발자들이 항상 진보였으면 좋겠지만, 보수도 나쁘게 생각하진 않습니다.
그런데 그 이유는 보수 개발자 자체가 나쁘지 않다기 보다는 우리나라 IT 현실이 개발자가 신나게 공부하면서 일할수 있는 환경을 만들어주지 않기 때문입니다.
저는 언젠가는 우리 IT 환경이 개발자가 신나게 공부하면서 일할 수 있는 환경이 되었으면 좋겠습니다.
그러나 우리나라 IT일터가 쉽게 바라는대로 될 것 같진 않기에, 우리 개발자들이 스스로 나서서 우리 개발자들의 삶을 윤택하게 해주는 기술을 연구하고 도입해야 된다고 생각합니다. 그래서 진보적인 개발자들이 많았으면 좋겠습니다.
덧1) 진보와 보수의 사전적인 정의
진보 : 1 정도나 수준이 나아지거나 높아짐. 2 역사 발전의 합법칙성에 따라 사회의 변화나 발전을 추구함.
보수 : 새로운 것이나 변화를 반대하고 전통적인 것을 옹호하며 유지하려 함.
덧2) 사실 이 글은 전에 완성한다 해놓고 미뤄놓았던 ‘객체지향 토론’을 마무리 하려고 쓰게 되었습니다. 원래 이번 하나의 포스팅에 '실제 기술 도입과 관련하여 토론한 내용'까지 쓰려고 했는데 내용이 너무 길어지고 주제가 중복되어, ‘중복된 코드를 제거하라~’ 는 리팩토링 규칙을 충실하게 따라서, 실제 토론한 기술적인 내용은 다음 포스팅에 꼭~! 올리겠습니다. (이게 핵심인디~) ^ ^
'내맘대로 포스팅 > 프로그래머' 카테고리의 다른 글
| Apache Jmeter를 활용한 부하테스트 (8) | 2008/06/23 |
|---|---|
| 데이터 추상화에 대한 IBM developerWorks의 좋은 기사 (0) | 2008/05/31 |
| IT개발자 관점의 진보와 보수 (25) | 2008/05/13 |
| 사람을 위한 자동화, 코드 자동화 관련 이클립스 플러그인 (IBM developerWorks) (10) | 2008/04/29 |
| 자바 NIO 네트워크 프로그래밍 공부 (11) | 2008/04/17 |
| 에러 잡는 마음가짐 (8) | 2008/04/09 |




