2004년 3월 14일 일요일

프로그래머와 화가

어떤 사람이 초상화를 그리고 싶다고 하자.
그래서 그는 피카소를 고용했다.
피카소가 말하길.
"당신의 초상화를 그리는 데는 한 달이 소요됩니다. 그리고 제 월급은 5,000만원입니다."
그리고 보름간 피카소는 그의 초상화를 열심히 그렸다.
보름 뒤 그 사람은 옆 동네에서 소문을 듣게 되었다.
옆 동네에 피카소만큼 뛰어난 레오나르도 다빈치가 살고 있는 데. 그 사람은 초상화 그리는 데 3주밖에 걸리지 않고 월급도 3,000만원만 받는 다고 했다.
그래서 그는 피카소가 절반 그린 그림을 빼앗고 2,500만원을 준 뒤 해고 시켜버렸다.
그리고는 레오나르도 다빈치에게 가서 말했다.
"이봐 레오, 내 초상화를 그려주지 않겠나? 월급은 3,000만원인데. 절반반 그려주면 되니 1,500만원을 주겠네."
"피카소가 이미 절반을 완성해놨으니 자네가 나머지 절반을 완성하기만 하면 돼. 어때 쉽지? 그리고 기간은 적응기간도 있어야 하니까. 2주를 줄께. 원래 당신은 절반 그리는 데 1.5주 밖에 안 걸리잖아. 그럼 부탁하네~"

이런 말도 안되는 고용주를 화가들은 어떻게 받아들여야 할까?
과연 화가가 그린 그림이 절반의 시간을 주면 절반이 완성되고 남이 반 그리다가 넘겨주면 다른 화가도 그대로 이어서 그릴 수 있을 까?
피카소와 레오나르도 다빈치의 독특한 특성과 화풍, 창의성, 개성이 다른 데 이어 그릴 수 있을 까?

모차르트가 절반 만들다가 포기한 음악을 베토벤이 구해다가 완성시킬 수 있을 까?
모차르트가 절반 만들때 들인 시간만큼만 주면 베토벤이 완전한 하나의 음악을 완성해 줄까?

프로그래머도 그렇다. 남의 절반짜다가 버린 프로그램, 남이 디버깅하다가 만 프로그램을 다른 사람에게 넘겨줬다고 해서 그렇게 쉽게 문제를 해결할 수가 없다.
스타일이 비슷하고 설계, 제작과정에 같이 참여한 사람이라면 모르겠지만 그렇지 않다면 그 절반을 이해하는 데도 절반보다 더 긴 시간이 소요될 수 있다. 어쩌면 다 버리고 처음부터 다시 만드는 게 빠를 수도 있다.

고용주들은 프로그래머를 공사장에서 벽돌 나르는 사람이나 나사 끼우는 사람처럼 생각하는 것 같다. 오늘 10개 끼우고, 내일 또 10개 끼우면 제품 하나 나오니까. 내일 봐서 더 싼 노동자가 있으면 그 사람 데려다가 남은 10개 끼우면 무조건 완성.

"당신의 코드 생산성은 1월에 100줄, 2월에 110줄, 3월에 120줄이었으니, 다음달에는 과학적 기법인 외삽을 통해 추정해 보건데 130줄이 되겠지요? 그리고 혁신을 통해서 150줄을 해내도록하세요. 그러면 인센티브를 주겠어요."
뭐가 과학적, 수학적, 분석적이고 합리적인 추론이란 말인가? 이게 말이 되는 소린지 모르겠다.

물론 프로그래밍은 소프트웨어 공학적인 design pattern, module화, component화 등을 통해 화가보다 해결책을 더 제한하고 정량적으로 만들 수 있기는 하다.
그렇다고 해도 프로그래머는 짐꾼과 화가 중에서 화가에 더 가깝다고 할 수 있다.

짐꾼------------------------프로그래머-----화가
단순노무자--------기능자-----기술자--------예술가
간호보조원-간호사-약사---의사-------의학자-생물학자

단순성 <--------------------------------> 복잡성
반복성 <--------------------------------> 창의성

댓글 없음:

댓글 쓰기