Mixed bag/기타....잡동사니들...

뉴욕의 프로그래머 (Programmer in New York) 中 ...

JJun ™ 2008. 11. 15. 23:51

 


---------------------------------------------------------------------------------

프로그래머가 자기 보스의 신뢰를 받는 일은 대단히 중요하다.

 

승진이나 보너스 같은 구체적인 당근은 둘째로 치더라도 보스의 신뢰는 프로그래머의 성장에

큰영향을 끼치기 때문이다. 보스의 신뢰를 받는 프로그래머는 점점 어렵고 중요한 일을 맡으면서

아키텍트나 관리자로 성장을 하게 되지만, 신뢰를 받지 못하는 사람은 사무실 구석에

앉아서 평생 키보드를 두드리는 코더가 될 가능성이 높다. 신뢰의 정도로 인해서 벌어지는 간격은

처음에는 눈에 보이지 않을 정도로 미미하지만 시간이 흐르면 돌이킬 수 없는 큰 차이가 된다. 

---------------------------------------------------------------------------------

 

---------------------------------------------------------------------------------

프로그래머 중에는 코딩이 끝나는 시점을 자기가 키보드를 두드려서 소스 코드를 변경하는 일이

끝나는 시점으로 여기는 사람이 있다. 엄청난 착각이다.

코딩이 끝나는 시점은 소스 코드의 변경이 끝나는 시점이 아니라 자신의 코드를 확인하기 위한

유닛 테스트 코드의 작성이 끝나고, 요구사항이나 버그 리포트에 적힌 내용을 한 줄씩 확인하면서

철저하게 기능적 테스트를 수행하고, 필요한 부분이 있으면 다시 한 번 수정하고, 최종적으로

코드리뷰가 끝나는 시점을 의미한다. 이 모든 것은 '코딩'의 기본 조건이다.

 

키보드를 두드리는 것은 코딩의 일부에 지나지 않는다. 이상한 일이지만 프로그래밍 실력 솜씨가

뛰어난 사람일수록 자신의 코드를 믿지 못하여 반복해서 테스트를 수행하고, 프로그래밍 솜씨가

떨어지는 사람일수록 자신의 코드가 완벽하다는 순진한 믿음을 갖는다.

수준이 높은 사람은 자기가 구워낸 도자기가 마음에 들지 않아서 깨뜨리기를 반복하고,

수준이 낮은 사람은 도자기가 나오자마자 시장에 내다 파는 것과 같은 이치일 것이다.

---------------------------------------------------------------------------------

 

---------------------------------------------------------------------------------

현대 미술을 하는 사람들은 자기 자신도 이해하지 못할 정도로  아무렇게나 그려 넣은 그림에

 '추상' 이라는 멋진 이름을 붙인다. 그러면 화가와 공범자인 미술 평론가와 상인이 나서서

그 안에 엄청나게 미학적인 요소가 숨어있기라도 한 것처럼 사기를 쳐서 대중을 기만한다.

이와 마찬가지로 프로그래머들은 자기도 이해하지 못하는 복잡한 알고리즘을 조합해서

소위 프로그램이라는 것을 '창조' 한다. 한 달 정도의 시간이 지나면 그들은 자기가 직접

타이핑한 코드의 내용조차 기억하지 못한다. 사기를 쳤기 때문이다.

 

추상화를 그리는 화가라고 해서 모두 사기꾼이 아닌 것처럼 프로그래머라고 해서 모두 사기꾼인

것은 아니다. 그렇지만 콜린은 프로그래머는 자기가 사기꾼이 될 가능성이 농후하다는 사실을

정확히 인식하고 항상 겸허해야 한다고 주장했다. 그 사실을 망각하는 순간 프로그래머는

사기꾼이 되기 때문이다. 예술은 텅 빈 허공이 아니라 현실의 벽, 새의 알을 부수고 무너뜨릴 때

탄생한다. 그래서 프로그래머는 자기가 처한 상황의 한계를 날카롭게 의식하고,

새로운 돌파구를 열기 위해서 언제나 자유 분방한 사고를 해야 한다. 이러한 점을 고려했을 때

틀에 박힌 규율과 규정은 창조적인 프로그래머에게 불필요할 뿐만 아니라 해롭기까지 하다.

프로그래밍은 단순 노동이 아니기 때문에 정해진 시간에 정해진 장소를 시계추처럼 왕복하는 것은

 의미가 없다. 프로그래밍에서는 평균적인 수준의 노동력을 유지하는 것보다 영감이 샘물처럼

솟아나는 소중한 순간을 놓치지 않는 것이 중요하다.

 

그래서 프로그래머에게 자유는 생명이다.

---------------------------------------------------------------------------------

 

---------------------------------------------------------------------------------

다른 사람들 틈에 섞여서 일을 열심히 하는 '시늉'만 잘해도 버틸 수 있는 직종이 있다.

하지만 "프로그래밍"이라는 직업에는 그런 측면이 전혀 없다.

달리지 못하는 사람이 축구 선수를 할 수 없고, 아름다운 소리를 만들어 내지 못하는 사람이

첼로 연주자가 될 수 없는 것처럼, 품질이 뛰어난 코드를 생산할 수 없는 사람은 프로그래머라는

직업을 유지 할 수 없다.

 

프로그래밍은 소설이나 논문처럼 온 힘을 다해서 만들어낸 지적활동의 결과물을 다른 사람에게

보여주는 일이다. 그렇기 때문에 진정한 실력 없이 흉내만 내는 사람은 숨을 곳이 없다.

이력서 상의 직장 경력이 아무리 풍부한들, 나이가 많은들, 일류 대학을 나왔다고 한들,

튼튼한 연줄을 붙잡고 있다고 한들, 서류상의 화려함은 그가 작성한 코드의 구조와 성능 앞에서

거짓을 말할 수 없다.

프로그래밍에서는 무엇보다도 옆에서 함께 일하는 동료들의 눈을 속일 도리가 없다.

 

그래서 프로그래머들은 자신의 리더를 오직 실력만으로 결정한다.

---------------------------------------------------------------------------------