마음의 안정을 찾기 위하여 - 훌륭한 프로그래머의 딜레마 그리고 묵묵히 추구하는 삶!
1776668
133
660
관리자새글쓰기
태그위치로그방명록
별일없다의 생각
dawnsea's me2day/2010
색상(RGB)코드 추출기(Color...
Connection Generator/2010
최승호PD, '4대강 거짓말 검...
Green Monkey**/2010
Syng의 생각
syng's me2DAY/2010
천재 작곡가 윤일상이 기획,...
엘븐킹's Digital Factory/2010
훌륭한 프로그래머의 딜레마 그리고 묵묵히 추구하는 삶!
사는 이야기/읽을거리, 볼거리 | 2008/09/23 13:42
훌륭한 프로그래머는 가난하다. 그가 가난을 벗어나려면 그 "훌륭함"부터 벗어나야 한다.

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

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

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

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

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

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

--김창준 [이 이야기는 SE계의 잘 알려지지 않은 명작 Wicked Problems, Righteous Solutions 에 나온(원래는 CACM 기사였던) 일화를 직접 각색한 것이다]


사용자 삽입 이미지
DOS 운영체제 사용시절 타자 연습 프로그램으로 널리 사용되었던 "한메타자" 프로그램의 장문연습에서 다음과 같은 글이 있다. "묵묵히 추구하는 삶"이라는 제목의 이 글은 내가 세상을 살아가면서 내 삶의 지표로 삼고자 했던것으로, 나는 아직도 이 짧지만 깊은 내용의 글을 가슴 깊이 새겨놓고 있다.

하지만 세상은 위에서 언급한 "훌륭한 프로그래머의 딜레마"라는 이야기처럼 묵묵히 일하는 사람에게 많은 기회를 주지 않는다. 혹시라도 이 글을 읽는 분이 회사에서 인사권에 영향을 미치는 사람이라면, 당신은 당신 회사에 편작과 같은 사람이 많아지길 바라는가? 아니면 그의 첫째형이나 둘째형처럼 묵묵히 자신의 일을 처리해내는 사람을 원하는가?


위나라의 임금이 편작에게 묻는다.
"그대 삼형제 가운데 누가 제일 잘 병을 치료하는가?"

큰 형님의 의술이 가장 훌륭하고 다음은 둘째 형님이며 저의 의술이 가장 비천합니다.

임금이 그 이유를 묻자 편작이 대답한 내용은 이러했다. '큰 형님은 상대방이 아픔을 느끼지 전에 얼굴빛을 보고 그에게 장차 병이 있을 것임을 안다. 그리하여 그가 병이 생기기도 전에 원인을 제거하여 준다. 그러므로 상대는 아파보지도 않은 상태에서 치료를 받게 되고 따라서 그간 자기의 고통을 제거해 주었다는 사실을 알지 못한다. 큰 형이 명의로 소문나지 않은 이유는 여기에 있다.

둘째는 상대방이 병세가 미미한 상태에서 그의 병을 알고 치료를 해준다. 그러므로 이 경우의 환자도 둘째형이 자신의 큰 병을 낫게 해주었다고 생각하지 않는다.

그러나 나는 병이 커지고 환자가 고통속에 신음할 때가 되어서야 비로소 병을 알아 보았다. 환자의 병이 심하므로 그의 맥을 짚어야 했으며 진기한 약을 먹이고 살을 도려내는 수술도 했다.

그런데 사람들은 나의 그러한 행위를 보고서야 비로소 내가 자신의 병을 고쳐주었다고 믿게 되었다.

"내가 명의로 소문이 나게 된 이유는 여기에 있다."


 


2008/09/23 13:42 2008/09/23 13:42
Article tag list Go to top
View Comment 26
Trackback URL :: 이 글에는 트랙백을 보낼 수 없습니다
From. 위즈군의 라이프로그 - 2M Story 2008/09/23 21:56삭제
프로그램 개발자의 연봉 기준은?
개발자의 가치(연봉) 책정의 기준은 무엇일까? 일반적인 회사에 개인의 업무능력을 평가하는 기준이 있다면, 아마 인사 담당자에게 제출되는 개인업무 성과를 수치화 하는 문서가 전부라고 생각 된다.(내가 경험한 대부분의 회사가 그랬다.) 이 기준은 어떤 프로젝트를 참여해서 어떤 결과를 냈고, 어떤 문제점이 있었는가 하는 내용을 수치화하는 것 뿐이다. 과연 이런 내용으로 개발자 평가가 가능할까? (편의상 앞에 말한 평가 기준 혹은 자료를 "일반평가기준"라고..
From. updong's me2DAY 2008/09/25 02:16삭제
updong의 느낌
아 오랫만에 보는 htt 화면... 그 하늘에서 떨어지는 단어 맞추는것도 여기에 있었나? 재밌었는데...
From. jeongsw's me2DAY 2008/09/27 00:08삭제
승원의 생각
훌륭한 프로그래머는 가난하다. 그가 가난을 벗어나려면 그 '훌륭함'부터 벗어나야 한다.
From. 구차니 2008/09/23 15:12
답글달기삭제
프로그래밍을 하고 있긴하지만, 저런 상황을 맞딱뜨리게 되면 참..
해결을 하면서도 어의가 없기도 하고 해결한 당사자 오히려더 진이 빠지는데
주변 사람들은 오죽할까 라는 생각을 하긴합니다.

그래도 그걸 해결함으로서 내가 한단계 업그레이드 된걸 위안삼아 산답니다.
문득 콜롬버스의 달걀 세우기 라는 문제가 떠오르는군요

좋은글 잘 보고 갑니다~ 내용 퍼가도 될까요?
From. 그리움(복분자주) 2008/09/23 15:34
삭제
제가 인용한 두개의 글 모두 원 저작자가 따로 있는 글입니다.
다만 저는 두개의 글에 제 의견을 추가한 것일뿐 ^^;

많은 분들이 다시 한번 생각할 수 있는 계기가 되었으면 좋겠네요.

블로그에 가져가신다면! 대 환영입니다. ^^
From. A2 2008/09/23 15:36
답글달기삭제
의사 이야기도 와닿네요. ^^
From. 그리움(복분자주) 2008/09/23 15:46
삭제
현실과 이상은 많이 다르다는것을 사회생활을 하면서 많이 느끼게됩니다.

상대방의 수고를 알아주고 그에 상응하는 댓가를 지불하는게 당연한것임에도 불구하고 그렇게 하기가 쉽지 않죠.

상대방이 일을 쉽게 해결한다고 해서 그 일의 가치가 가벼워지는것은 아닐진데... 현실은 그렇지 않기에 사람들은 쉽게 해결할 수 있는 문제도 어렵게 돌아가려고 하는걸 많이 보게되요.

A2님! 방문 감사합니다. ㅎㅎ
From. bookworm 2008/09/23 15:53
답글달기삭제
저는 이 이야기를 좀 더 확장해서 생각합니다.

진정으로 훌륭한 개발자라면 두번째 이야기처럼 아예 복잡한 문제가 생기기도 전에 문제 자체를 단순한 문제로 바꾸어버립니다. 사람들은 그 개발자가 복잡한 문제를 풀지 않음으로서 실력도 없고 게으르다고 생각해버리지요.

가만히 보면 인정받는 개발자는 단순한 문제를 복잡하게 만들어서 수 없이 밤샘과 삽질을 통해 구현해놓는 사람이더군요.

정말 아이러니가 아닐 수 없습니다.
From. 그리움(복분자주) 2008/09/23 16:09
삭제
회사생활을 하면서 정말로 실력있는 분들은 묵묵히 개발을 진행하시고, 문제가 생길만한 요소는 문제가 생기지 않도록 선 조치를 합니다.

하지만 대부분 회사에서 인정받는 분들은 문제가 생길만한 부분을 알아서 조치를 취하지 않는건지, 아니면 몰라서 안하는건지...

일단 문제를 발생시킨 후에 해당 문제를 해결합니다.

발생한 문제의 리스크가 크면 클수록 그 문제를 해결한 사람은 회사에서 그 능력을 굉장히 인정받게 되더군요. -_-;

정말 아이러니~ ^^
From. greenfrog 2008/09/23 19:10
답글달기삭제
올블 타고 놀러왔어요 ~ 첫 방문에 이렇게 좋은 글을 감사합니다 ^^
사회 생활 하면서 느끼는 건 일 잘하는 사람보다는 사교성(어찌보면 엄청난 내공의 아부 ^^) 좋은 사람들이나 아님 처세에 능한 사람들인 것 같습니다. 정말 뒤에서 땀흘리며 묵묵히 일하는 사람들은 대게 인정 받기 힘들죠 ;; 하지만 남들에게 인정받는 허울보다는 묵묵히 자신의 신념대로 한걸음 한걸음 나아가는 삶이 더 값지지 않을까요?

글 잘보고 가구요 ~ 자주 놀러 올께요 :)
From. 그리움(복분자주) 2008/09/23 22:02
삭제
과분한 칭찬이신듯 싶네요.

블로그를 방문해보니 자바 개발을 주로 하시나 보군요.

저도 자주 방문하도록 하겠습니다. 감사합니다.
From. neojzs 2008/09/23 19:21
답글달기삭제
무슨 내용을 말씀하시고자 하는 건 알겠습니다만 예로 드신 내용중에

예상 소요 시간 3개월의 첫 2달 반을 빈둥거리며 지냈다. 와 묵묵히 일하는 사람에게 많은 기회를 주지 않는다. 는 좀 매치되지 않는 군요. ^^
From. 그리움(복분자주) 2008/09/23 22:05
삭제
처음에 예로 든 글은 아마도 관리자의 관점에서 바라본 시각이 아닌가 합니다.

관리자 입장에서 봤을때 열심히씨는 3개월이라는 기간동안 밤을 세워가며 열심히 일을 하는데, 훌륭한씨는 밤샘 작업도 하지 않고 놀기만 하는것처럼 보였다는 얘기겠죠.

열심히씨의 산출물은 2000줄의 소스코드.
훌륭한씨의 산출물은 겨우 150여줄의 소스코드.

관리자 입장에서는 2000줄의 산출물을 만들어내는 열심히씨가 더 훌륭한 직원으로 평가받는 한국 개발자 사회를 빗댄 글로 보시면 될것 같습니다.

^^
From. -_-v 2008/09/23 19:34
답글달기삭제
회사에서 원하는 인재는 역시 "열심히""훌륭한" 일을 해내는 사람이겠죠. ^^;
From. 그리움(복분자주) 2008/09/23 22:05
삭제
회사에서 원하는 인재상은 열심히 훌륭한 일을 해 내는 사람.

그리고 그 인재가 원하는 회사의 모습은

열심히 땀흘려 일한만큼 응당한 대우를 해주는 회사! 가 아닐런지요 ^^
From. 넷물고기 2008/09/23 20:01
답글달기삭제
한글타자가 아니고, 한메타자 였군요. 저도 저걸로 손에 키보드 익혔는데, ㅎㅎㅎ 반갑네요
From. 그리움(복분자주) 2008/09/23 22:06
삭제
DOS 시절에 키보드 연습 프로그램은 거의 한메타자가 주를 이루었지요.

저도 한메타자로 키보드 연습을 했었습니다. ^^

혹시 넷물고기님도 DOS세대?
From. 지나가다가 2008/09/23 20:30
답글달기삭제
모든것은 사람을 위해서 사람에게 하는 일인데, 사람에게 너무 무관심한게 문제입니다.

그리고 중간, 중간 리포트를 안한게 문제입니다. 관리자입장에선 어케 돌아가는지 일일이 알수가 없거든요.

첫째달에, " 아 문제가 어렵네요. 현재 이를 분석하고 있습니다" 한 마디 하고
둘째달에, " 아 이제 분석이 끝나고 문제가 거의 해결되어 가고 있습니다. 진짜 어렵네요" 한마디 하고
셋째달에, " 어려웠지만 겨우 해결했습니다"

이 세마디면 되지 않을까요?
이 세마디도 귀찮으면 남의 밑에서 일하지 말아야지요.
From. 그리움(복분자주) 2008/09/23 22:10
삭제
위의 글에서의 핵심은 의사소통의 문제라기보다는 한국사회에서의 중간관리자가 개발자를 평가하는 시스템의 문제점을 지적하는 것 입니다.

앞서 "neojzs"님의 글에도 댓글을 달았지만,

한국에서의 소프트웨어 개발자는 밤샘을 기본 미덕으로 삼고 있는 형태이기 때문에 그러한 부조리를 꼬집고자 하는 것 입니다.

한국 소프트웨어 개발은 대기업을 중심으로 하는 SI 하도급의 형태이고, 분석/설계 이전에 개발기간을 산정한 다음에 그 기간에 개발내용을 짜맞추는 형태이고 그런 시스템으로 인해서 개발자들은 당연히 밤샘을 해야하는것으로 알고 있는 중간관리자들.

그리고 그런 사람들 밑에서 붕어빵 찍어내듯이 만들어지는 또다른 중간관리자들... 그런 사람들은 직원의 능력평가를 "얼마나 늦게 퇴근하는가?"를 기준으로 하고 있거든요.

제가 다녀본 회사들 대부분이 그러했구요.

이 글에서 다루고자 한 이야기는 바로 그것입니다. 정당한 평가의 기준!!!
From. 위즈 2008/09/23 21:58
답글달기삭제
저도 한때 이 문제에 대해서 생각해본적이 있습니다.
저는 참 어렵게 썼는데 명쾌하게 쓰셨네요. 트랙백 남겨봅니다.
언젠가 열심씨가 인정받을 수 있을 때까지..^^
좋은 하루 되세요.
From. 그리움(복분자주) 2008/09/23 22:11
삭제
^^ 그런 날이 과연 올까요?
From. Ruud 2008/09/24 00:35
답글달기삭제
지적하시려는 부분은 백번공감합니다. 다만 예제로 제시해주신 내용은 약간 100%공감을 받기에는 무리가 있지 않나 하는 생각도 드네요. '훌륭한'씨가 좀 더 빠른 시일내에 '놀지 않고' 프로젝트를 끝내버렸다면 좀 더 좋은 평가를 받을 수 있을 것 같은 데 말입니다. :)
이래나 저래나 프로그래밍 코드의 줄 숫자로 평가를 받는다는 것은 확실히 문제가 있다고 믿어요. 일이란 모름지기 '효율적'으로 해야하는 건데 말입니다.
From. 그리움(복분자주) 2008/09/24 09:21
삭제
저는 훌륭한씨가 놀았다고 생각하지 않습니다.
최적의 알고리즘/최적의 코드를 생성하기 위해 자신 스스로 노력을 하는 과정과 그 기간동안 중간관리자의 입장에서는 산출물도 없고 밤샘작업도 하지 않는 훌륭한씨는 노는 사람으로 밖에 보이지 않을겁니다.

한국 소프트웨어는 말 나오면 바로 무언가 산출물을 조금이라도 보여주어야 하는 시스템으로 이루어져 있어서, 훌륭한씨처럼 프로젝트 기간 막바지까지 자신만의 업무 스타일로 분석/설계를 하고 해당 내용을 기반으로 최적화된 산출물을 만들어내는 사람은 노는 사람으로 평가됩니다.

반면 분석/설계 과정보다는 당장 어떤 결과물을 보여주기 위한 행동을 하는 열심히씨는 중간 관리자 입장에서는 사랑스럽게 보이겠지요.

좋은 말씀 감사합니다. 즐거운 하루 되세요. ^^
From. 골빈해커 2008/09/24 12:03
답글달기삭제
지나가나님의 말씀에 한 표 ^^ 물론 관리자는 그 사람이 어떤 일을 하고 있는지를 늘 지켜보고 관심가져야 하는 것이 의무지만, 개발자는 본인이 어떻게 하고 있다는 것을 리포트 하는 것도 분명 일에 포함되어있는 것이죠.(관심가지면 귀찮아하면서도..-_-) 그게 없다면 당연히 노는 것 처럼 보일테고, 아무리 훌륭하게 해결했다고 하더라도 "간단하게 해결할 수 있는걸 두달이나 놀다가 이제야 보여주다니.." 라는 말이 나올 수 밖에 없다고 생각합니다. 뭘 했는지는 본인만 아는데, 타인의 입장에서는 당연한거잖아요 ㅎㅎ
처음 봤을 때도 똑같은 생각이었지만, 그래서 위의 예문은 100% 공감할 수는 없는 내용입니다(이 글을 쓴 이유는 알겠지만). 저는 첫번째 사람보다는 두번째 사람을 더 좋아하지만, 그 차이는 미묘합니다. 혼자 일한다면 모를까, 회사는 혼자만을 위한 것이 아니니까요. 만일 지나가다님의 말씀처럼 최소한 일주일에 한 번이라도 이러저러한 과정이 있었다는 것을 간단하게라도 말해줬다면 이런 얘기는 안나오지 않았을까요? 세달 뒤에야 뭔가 나왔다는 것은 그 과정이 쉽지는 않았다는거니, 얘기할 거리는 많았을거라 생각됩니다만.. ^^
그리고, 만일 사회가 진짜로 두번째 사람이 우대 받는 세상이었다면 불평할 사람은 더 많았을껄요? 열심히 해봐야 소용이 없어. 라면서.. ^^
From. 그리움(복분자주) 2008/09/24 12:13
삭제
이런 얘기가 나오는것은 아마도 자신의 한 일에 대해 회사에서 정당한 평가를 내려주지 않기 때문에 나오는것 같습니다.

코드로 얘기하는 사람과, 몸으로 얘기하는 사람의 차이? 랄까..
From. 낭만고양이 2008/09/25 17:37
답글달기삭제
IT 업계에서의 문제 '단면'을 보여주는 글이군요. 이런 문제가 생기지 않으려면 그 '훌륭한' 프로그래머는 자신이 문제를 '쉽게' 해결하기 위해 어떤 일을 했는지를 설명해야 해요. 그렇지 않으면 '빈둥거린' 것으로 보일 수 밖에 없죠. 설명할 기회를 얻었는데 제대로 어필하지 못했다면 그건 프로그래머 문제고, 설명을 했는데 인정을 안해줬다면 그건 관리자의 문제겠어요. 설명할 기회도 주지 않았다면 그건 더 말할 나위가 없겠죠. 그런데 제 주변에서는 보통 "훌륭한" 프로그래머가 정말로 대우를 받는데, 다른 회사에서는 어떨지 모르겠군요. 보통 이런 글들은 한번 읽으면 공감은 가는데, 어쩐지 문제를 지나치게 단순화해서 과장하고 있다는 생각도 들거든요.
From. 그리움(복분자주) 2008/09/26 09:37
삭제
좋은 의견 감사드립니다. ^^
From. 마앙 2008/09/26 11:56
답글달기삭제
개발자는 개발자일뿐입니다.
훌륭한 개발자와 열심인 개발자, 그리고 아무것도 할줄 모르는 개발자 모두 별거 아닌 존재들입니다. 회사에서 인정받고 승진하고 돈도 많이 벌려면 개발을 버리세요.
그리고 관리자가 되려고 노력하세요. 만일 여러분이 개발을 잘 하지 못한다고 한다면 보고서 작성하고 관리감독하는 방법을 문서화하고 보고하는 일들을 스스로 찾아 많이 하세요. 조금 있으면 여러분은 개발자가 아니라 관리자, 의사결정권자, 컨설턴트(학벌이 된다면), 아키텍트등 좀더 많은 보수를 받는 역할을 수행하고 있을 것입니다.
개발은 아무나 머리수만 채우면 됩니다. 프로젝트가 실패했다고 여려분의 책임이 아닙니다. 아웃소싱된 개발자가 자질이 부족해서입니다. 물론 페널티도 개발자 또는 아웃소싱 회사가 먹게 됩니다.
쉽게 사세요 이런것에 아무리 열내도 세상은 그렇게 쉽게 바뀌지 않습니다. 문과가 왜 이과를 통치하는지 아나요??
From. ㅇㅇ 2008/09/29 00:25
답글달기삭제
문과가 왜 이과를 통치하냐면... 마앙님 같이 생각하는 사람들이 아직도 많기 때문이죠

왜 우리나라 IT산업이 발전 못하는지는 아세요?
PREV : [1] : NEXT
 
 
 
 
: [1] ... [457][458][459][460][461][462][463][464][465] ... [849] :
«   2020/09   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      
전체 (849)
출판 준비 (0)
My-Pro... (41)
사는 ... (492)
블로그... (22)
My Lib... (32)
게임 ... (23)
개발관... (3)
Smart ... (1)
Delphi (76)
C Builder (0)
Object... (0)
VC, MF... (9)
Window... (1)
Open API (3)
Visual... (0)
Java, JSP (2)
ASP.NET (0)
PHP (4)
Database (12)
리눅스 (28)
Windows (21)
Device... (1)
Embedded (1)
게임 ... (0)
Web Se... (2)
Web, S... (19)
잡다한... (5)
프로젝트 (0)
Personal (0)
대통령... (9)
Link (2)