Thoughts2008.01.06 18:58

"프로그래밍 심리학"이라는 유명한 책(원제: The Psychology of Computer Programming)이 이번에 인사이트에서 번역되어 나왔습니다. 워낙 오랫동안 인기있었던 책이지만, 국내에는 잘 알려지지 않은 책입니다. 출간된지 25년이 지났는데도 말입니다. 이 책의 한 부분을 인용해 보겠습니다.

최소의 비용으로 최고의 프로그래밍을 원한다면, 가능한 한 최고의 프로그래머들을 구하고 그들에게 최소한의 인원으로도 문제가 없을 만큼 충분한 시간을 주어야 한다. 이것이 프로그래밍 팀의 크기와 구성에 대해 언제나 통용되는 기본 원칙이다. 일을 더 빨리 해야 하거나 덜 숙련된 사람들과 일해야 한다면 비용과 불확실성은 더 증가하게 된다. 어쨌든, 프로그래밍 프로젝트를 수행하는 최악의 방식은 초보자들만 고용한 뒤 스트레스만 많이 주고 감독은 하지 않으면서 일을 시키는 것이다. 불행하게도 오늘날 가장 흔히 볼 수 있는 광경이기는 하지만 말이다. (148페이지)

사용자 삽입 이미지

이 부분을 읽으면 어쩐지 이집트 피라미드 한쪽 벽에서 발견되었다는 "요즘 애들 버릇없어"라는 낙서가 생각납니다. 사람들이 천공카드 대신 PC에서 프로그래밍을 하게 된지 꽤 오랜 시간이 흘렀는데도, 소위 '이 바닥'의 현실은 많이 바뀌지 않았음을, 이 고전적인 책에서 느낄 수 있습니다. 다른 부분도 한번 살펴볼까요?

우리는 물리적 환경이 프로그래밍 작업의 양과 질에 영향을 끼침을 모두 알고 있다. 그러나 산업심리학에서와 달리 이때의 물리적 환경은 소움이나 빛, 온도 등의 요소를 말하는 것이 아니다. 작업 공간의 배치를 말한다. 프로그래들의 자리를 한군데로 모아 놓으면 분명 중요한 이점이 생긴다. (사무실에 일반적으로 설치하는 파티션이 프로그래머의 생산성에 미치는 악영향은 누군가가 연구해 봐야 할 주제다. 파티션은 방해가 되는 소음이나 움직임은 그대로 놔두고 효율적인 의사소통만 방해한다) 그러나 우리가 관심을 가져야 할 부분은 작업 공간의 배치가 사회적인 상호작용에 미치는 영향이다. 그 상호작용이 다시 작업 결과에 영향을 주기 때문이다. (114페이지)
이런 구절도 있습니다.
여기까지 읽은 독자 대부분이 프로그래머들 사이의 사회적 상호작용을 강조함에 놀랐을 것이다. [중략] 아마도 대부분의 프로그래머는 고정된 장소에서 다른 사람의 방해를 받지 않고 혼자 일하는 편이 더 좋다고 대답할 것이다. 그런 생각이 프로그래밍을 향상시키는 데에 가장 무서운 장벽이다. (117페이지)

이런 이야기들이 실제로 나오기 시작한 것이 25년 전이라는 뜻입니다. XP나 Agile 방법론이 각광받기 시작한 것이 실로 최근의 일이고 보면, "개발자들 사이의 상호작용"과 "의사소통을 통한 기민성"이라는 개념이 프로그래머들 사이에 통용되는데 이십년 가까운 세월이 걸린 셈입니다.

"시간이 지나서 그 가치를 인정"받거나, "시간이 지날 수록 그 가치가 더 빛나는" 책이어야 비로소 '고전'이라는 딱지를 달 수 있다고 사람들은 생각합니다. 그렇다면 "프로그래밍 심리학"이야 말로 그런 기준에 걸맞는 책이라 할 만 합니다. 프로그래밍에 관한 여러 책을 읽어보았습니다만, "인용문이 서평을 대신할만한 책"은 실로 오랫만에 만나는 듯 합니다.

해서, "프로그래밍에 필요한 성격"에 대한 부분을 인용하는 것으로 이 글은 맺으려고 합니다. 타이핑 치면서 어쩐지 좀 뜨끔하더군요. ㅋㅋ


[전략] 프로그래밍에 필요한 성격으로 가장 쉽게 깔끔함을 떠올릴 수 있다. [중략] 조금은 강박증에 가까우리만치 문서를 잘 정리하는 성격을 말한다. 어떤 컴퓨터 회사에서는 시험을 쳐서 프로그래머 인턴을 뽑는데, 최고득점자가 아니라 답안지를 제일 깔끔하게 작성한 사람을 뽑는다.

프로그래밍에 꼭 필요한 성격에는 겸손함도 있다. 겸손함이 없는 프로그래머는 고대 그리스 희곡의 전형적인 패턴을 답습한다. 즉, 작은 성공에 자만하다가 결국 자멸하게 된다. 프로그래머가 몇 가지 간단한 기술을 익히고 스스로 전문가라 자만하다가 그로서는 어쩔 수 없는 컴퓨터의 힘 앞에 박살이 나는(데우스엑스마키나) 이야기는 소포클래스가 쓴 비극에 못지않게 눈물겹다.

겸손함과 동전의 양면처럼 대를 이루는 성격이 자신감이다. 프로그래머의 업무는 뭔가를 되게 만드는 것이라 할 수 있다. 그 과정에서 때때로 장애물을 만나면 그것을 피하거나 넘거나 타파해야 한다. 그러나 겸손함이 지나쳐 자기비하를 쉽게 하는 사람은 자신이 택한 방법이 틀릴 수도 있다는 비판 정신을 지나치게 발휘해 자신감을 상실한다. 물론, 비판정신이 없는 자신감은 브레이크 없는 기관차만큼이나 위험하다. 그러나 자신감 없는 비판 정신은 기관차는 없고 브레이크만 있는 형국과 마찬가지다. 사고의 위험도 없겠지만, 뭔가를 이루는 건 더더욱 없다. (281~282 페이지)

신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. 저도 읽으면서 뜨끔...

    2008.01.06 21:03 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. 비밀댓글입니다

    2008.01.07 13:38 [ ADDR : EDIT/ DEL : REPLY ]
  3. 일찍 다 보셨군요.
    이제 엉금엉금 보고 있습니다.
    글 잘 읽었습니다.
    트랙백 겁니다. ^^

    2008.01.15 19:36 신고 [ ADDR : EDIT/ DEL : REPLY ]