2014년 5월 6일 화요일

프로그램과 도박과 골프





도박을 해보면 그 사람의 진짜 인간성을 알 수 있다고 한다. 골프도 마찬가지다. 그런데 프로그램도 또 그렇다. 세가지 다 모두 인간이 받는 유혹을 뿌리치기 힘들다는데 있다. 도박은 인간의 물질에 대한 욕심을 적나라하게 보여준다. 액수가 크고 작고를 막론하고 도박에 들어가면 자기 성격을 감추기가 힘들다. 치사한 사람, 속이는 사람, 무모한 사람, 허풍치는 사람, 너무 솔직한 사람등 성격이 그대로 나타난다. 나는 한국에서 대학생활의 많은 시간을 포카 같은 카드게임 하는데 보냈다. 오락시설도 많지 않았던 시절 카드게임이 어떻게 보면 지금의 PC게임 같은 것이었다. 한번 시작하면 끝내기도 힘들다. 돈 잃은 사람이 끝내려고 하지 않으니까.



반면에 골프는 어떻게 보면 혼자의 게임이다. 다른 사람이 바로 옆에서 지켜 볼 때도 있지만 대부분이 혼자서 치게 된다. 골프는 신사 운동이라고도 한다. 서로가 자발적으로 신사답게 룰을 지켜가면서 해야 한다는 것이다. 그런데 룰이라는 것이 아무도 안보는 곳에서 나 혼자 룰을 꼭 지키기는 웬 만큼 소신 있고 정직한 사람이 아니면 쉽지 않다. 나는 나 스스로 룰을 잘 따르는 사람이라고 생각한다. 하지만 나도 편의상 룰을 안 지킨다. 밤 늦게 집에 갈 때 건너야 하는 길이 있다. 밤에는 교통량도 없고 한적하다. 신호등 있는 횡단보도로 가려면 200미터이상 우회하게 된다. 그래서 그냥 무단횡단 한다. 속으로 생각은 아무한테도 피해를 안 주는데 어떠냐는 생각이다. 물론 이게 잘못된 생각인 것이다. 내 마음대로 해석하는 것이다. 죄를 지었을 때 합리화하는 것은 인간의 본능이다. 아주 어려운 자기 양심과의 싸움이다. 한편에서는 잘못된 행동에 대한 합리화추구를 끊임없이 하고 다른 한편에서는 남들이 보면 창피한데 하는 양심에 거리낌을 동시에 느끼면서.



다시 골프로 돌아와서 골프를 하다 보면 많은 경우에 아무도 모르게 이익을 볼 수 있는 경우가 많다.  슬쩍 공을 몇 센티만 옮겨 놓으면 타구가 훨씬 쉬워질 수 있다. 특히 내기라도 할 경우에는 이 얼마나 큰 유혹인가. 그런데 완전범죄가 없듯이 이상하게도 다른 사람이 그런 행동을 하는 것을 언젠가는 알게 된다. 당사자들은 지금도 완전범죄를 저질렀다고 생각할 것이다. 아무도 그런 것을 일부러 지적해서 말을 해주지 않으니까. 모른 척 그냥 넘어가고 다시 같이 안치면 그만이지 그걸 뭘 민망하게 지적해서 인간관계 나빠지게 해. 다 이렇게 그냥 넘어간다. 그런데 고의가 아니고 룰의 해석을 다르게 해서 오해를 살 수가 있다. 실제 그런 경우가 많다. 옛 속담에 선비는 배나무 밑에서는  갓 끈을 고쳐매지 않는다고 했다. 룰에 의해 공을 유리한 자리로 옮길 수 있어도 혹시 다른 사람이 오해할까 해서 그냥 손해보고 말지 하는 정직하다 못해 고지식한 사람도 있다. 골프룰은 하도 많아서 다 아는 사람은 거의 없다. 워낙 많은 룰이 있으니까 모르고 실수하는 사람도 많다. 잘 모를 때 자기에게 유리하게 해석하는 사람도 있고 불리하게 해석하는 사람도 있다.



프로그래밍은 어떤가. 가끔 모여서 회의를 하기도 하지만 많은 시간을 혼자서 프로그램하는 데 보낸다. 혼자서 자유롭게 자기의 능력을 펼칠 수 있는 많은 자유시간이 주어진다. 물론 마감시간도 주어지고. 학교에서 아무리 작은 프로그래밍 숙제를 주어도 결과가 다 다르다. 모두가 정답이라도 다를 수 있다. 그래서 프로그래밍은 예술에 가깝다. 많은 부분이 창조적이어야 한다. 그런데 문제가 이 창조적이고 자율적인 시간에 하는 일에 각자의 인간성이 노출된다는 것이다. 하드웨어를 만드는 산업에서는 규칙적이고 반복적인 일을 동일하게 하는 경우가 많기 때문에 소프트웨어와는 경우가 다르다. 조립공장에서 일하는 데는 인간성이 별로 중요하지 않다. 인간성이 끼어 들 여지가 별로 없기 때문이다.  프로그래밍에도 골프와 마찬가지로 지켜야 할 많은 규칙이 있다. 그것을 다 기억하는 사람은 없다. 이게 문제의 시작이다. 자기 나름대로 자기 규칙대로 일을 한다. 그러다가 시간에 쫓기기라도 하면 편법이 등장하기 시작한다. 제대로 규칙에 맞게 하려면 시간이 많이 걸릴 수 밖에 없다. 쉽게 쉽게 근시안적인 처방들이 등장할 수 밖에 없다. 이 책의 후반부에서 지적하지만 무수한 편법들이 있다. 편법과 정통파와의 갈등이 시작되고 당연히 당사자의 인간성에 따라 이 결정을 하게 된다. 이에 따른 결과는 불행하게도 금방 나타나지 않는다. 대부분 미래에 나타난다. 이 모든 것이 소스코드에 증거로 남는다. 그래서 범인은 나중에 잡히기는 한다.



도박에서의 물질에 따르는 유혹, 골프와 프로그램에서의 편법사용시의 이득과 자기자신과의 싸움. 이 모두 인간의 본능과 자제력을 시험하는 것이다. 내가 무척이나 즐겼던 이 세가지 모두에서 같이 상종하지 말아야 하겠다는 사람들을 꽤 많이 접했다. 미국과 한국의 회사를 비교해 보면 한국 소프트웨어회사에서 훨씬 더 많은 편법적인 코드를 발견할 수 있다. 내가 지금 당장 한국의 어떤 소프트웨어 회사든지 소스코드만 보여주면 이런 문제점을 수도 없이 지적해 낼 수 있다.

댓글 없음: