[프로그래밍 심리학 이야기/조상민]
자식은 내가 낳았으되 내 소유는 아님을…..
어떤 소프트웨어의 테스트를 그것을 개발한 프로그래머에게 전적으로 맡긴다면 어떻게 될까요? 따지고 보면, 어떤 프로그램의 겉과 속을 그 개발자만큼 완벽하게 아는 다른 사람은 존재하기 어렵습니다. 그렇다면 테스트 역시 그 개발자가 하는 게 가장 효과적이진 않을까요?
그러나 실상은 전혀 그렇지 않지요. 다들 아시다시피 혹은 스스로 느끼시다시피, 프로그래머는 자신이 만든 프로그램에서 버그를 찾아내는 데 잼병입니다.
왜냐? ‘사람은 보고 싶지 않는 것을 보지 못하는 데에 거의 무한한 재능을 가졌기 때문’입니다. 긍정적으로 바꿔 말하면, 사람의 눈에는 ‘보고 싶은 것만 보이기 때문’입니다.
내 자식은 마냥 착하고 예쁘게만 보이는 거죠. 애초에 버그를 찾을 마음이 없단 뜻입니다.
그냥 ‘몰래한 사랑’ 정도로 끝난다면 그나마 다행입니다. 실제로는 증상이 더 심해서, 남이 내 프로그램의 버그를 찾아내는 것도 싫을 수 있습니다. 하물며 다른 프로그래머가 내 코드를 보고 좋네 나쁘네 왈가왈부한다면, 더 기분 나쁘겠죠.
프로그래밍 심리학의 저자 와인버그는 프로그래머가 자신의 프로그램에 애착을 갖는 것은 지극히 당연하다고 말합니다.
작가는 책을 자신의 것으로 여긴다. 건축가는 건축물을 자신의 것으로 여긴다.
그렇게 귀속시킴으로써 훌륭한 프로그래머, 화가, 작가, 건축가는 사람들에게서 존경을 받고
실력이 조금 떨어지는 사람들은 그 훌륭한 작품을 모방해 발전하지 않는가?
그러나 당연함과 옳고 그름은 전혀 다른 문제죠. 프로그래머들이 각자 ‘영역 표시에 열을 올리는’ 상황에서 그 프로젝트가 제대로 굴러가겠습니까?
그렇다면 왜 유독 프로그래밍 세계에서만 자신의 창조물에 애착을 갖는 게 문제가 될까요? 와인버그는 그 원인으로 컴퓨터의 존재를 꼽았습니다.
우리가 어떤 그림이나 소설, 건물이 열등하다는 생각은 취향의 문제다.
그러나 어떤 프로그램이 열등하다는 생각은 적어도 잠재적으로 객관적인 증명 또는 반증이 가능하다.
최소한 우리는 프로그램을 컴퓨터에서 실행해 나오는 결과를 볼 수 있다.
화가는 경우에 따라 비판을 수용하지 않을 수도 있다.
그러나 프로그래머가 컴퓨터의 판단을 무시할 수 있을까?
표면상 컴퓨터의 판단에는 의심할 여지가 없다.
그렇다면 자기 프로그램에 대한 프로그래머의 애착은 자화상에 심각한 손상을 남길 수 있다.
컴퓨터 앞에서는 변명이고 뭐고 안 통한다는 거죠. 따라서 ‘내’ 프로그램에 너무 집착하는 프로그래머는 스스로도 괴롭고 동료들까지 불편하게 만들 수밖에 없습니다.
‘지극히 정상적이지만 바람직하지는 않은’ 이런 현상에 대한 대책은 무엇일까요?
이 시점에서 와인버그가 최초로 주창한 비자아적 프로그래밍(egoless programming)이 등장합니다.
그에 대한 자세한 얘기는 이어지는 글에서… ^^
프로그래밍과 심리학과의 만남은? 하나만으로도 엄청 머리 아플 것 같은 두 분야가 만나 과연 어떤 폭탄 같은 이야기를 풀어놓을지 궁금하지 않으세요.^^
‘프로그래밍 심리학’을 번역해주신 조상민 님께서 직접 저희 블로그에 책에 실린 재미있고 통찰력 있는 이야기를 일부 소개해주실 예정입니다.^^
왠지 어마어마할 것 같고, 몰라도 일하는 데 별 지장은 없을 것 같은 ‘프로그래밍 심리학’이 실제로는 얼마나 우리 가까이에서 흔히 볼 수 있고 얼마나 프로젝트 곳곳에 깊숙이 내재되어 있었는지, 살짝 맛보실 기회가 될 듯!
ps) 예스24에서 현재 ‘프로그래밍 심리학’의 리뷰어를 모집하고 있답니다^^. 책장을 덮을 때쯤이면 프로그래밍 심리학이 털어놓는 폭탄 같은 이야기에 압도되어 있을까요? 네. 폭탄이라고도 할 수 있겠죠! 다만 그것은 유쾌한 웃음을 불러일으키고, 그동안 사람의 마음을 소홀히 한 배움의 자세를 일깨워줄 멋진 폭죽이 아닐는지..^^