개발자는 개발자일 뿐…
오늘의 post를 진행하기 위해서 앨런 쿠퍼의 정신병원에서 뛰쳐나온 디자인(안그래픽스 출판)에 나온 구절을 인용하겠다.
1997년 9월, 미 해군의 신형 이지스급 유도 미사일 순양함 중의 하나인 USS Yorktown호가 대서양에서 해군 기동 연습을 지휘하던 도중 바다 속에서 완전히 정지해 버렸다. 해군 기술자 중 한 사람이 연료 밸브를 조정하다가 함정 관리 컴퓨터들 중 하나인 Windows NT 를 탑재한 펜티엄 프로 컴퓨터에 ‘0′을 입력했다. 프로그램은 수학적으로 정의되지 않은 연산인 ‘0으로 나누기’를 시도했고, 그 결과 전체 함정 통제 시스템이 완전히 멈추어 버렸다. 컴퓨터가 멈추자 함정의 엔진이 정지했으며, 이 전함은 항구로 예인되기 까지 2시간 45분 동안 파도 속에서 허우적거리며 떠 있었다. 교전 지역이 아닌 것이 천만다해이었다.
컴퓨터를 전함과 결합시키면 무엇이 될까? 니미츠 제독이 무덤에서 돌아누울 일이다! 이러한 실패에도 불구하고 해군은 인건비 절약을 이유로 모든 함정의 컴퓨터화를 추진하고 있으며, 이 계획에 가해지는 비난을 회피하기 위해서 ‘사건’의 책임을 인간의 실수 탓으로 떠넘겼다.
윗 구절은 컴퓨터 + 전함 = 컴퓨터가 된다는 주장을 한다. 전함을 만든 목적은 적을 공격해서 무찌르는데 있다. 컴퓨터 기술이 발전하자 전함 본래의 목적을 잘 수행하기 위해서 전함을 컴퓨터와 결합 시켰다. 그러나 전함과 컴퓨터가 불완전하게 결합되면서 전함 본래의 목적을 수행하는 일은 뒷전이고, 승무원들에게 컴퓨터를 오작동하지 않도록 다루는 일이 더욱 중요해졌다. 따라서 원래 전함과 컴퓨터를 결합할 때 의도했던 컴퓨터 + 전함 = (효율적인) 전함 이 되는게 아니라 컴퓨터 + 전함 = (멍청한) 컴퓨터 가 된다는 뜻이다.
(내 생각에) 누구나 사용하는 핸드폰도 이미 오랜 전에 컴퓨터가 되어 버렸다. 물론 핸드폰을 귀신처럼 사용하는 사람들이 있기에 컴퓨터 + 핸드폰 = 핸드폰 이라고 주장하는 사람도 있겠지만, 핸드폰을 상당히 잘 쓰는 사람은 천천히 진화해 온(?) 핸드폰 인터페이스에 익숙해진 것이다. 이와 반대로 핸드폰 사용자의 일부는 아직도 오는 전화만 받을 수 있거나 단축번호에 저장된 곳에만 전화를 할 수 있는 사람도 존재한다. 즉, 핸드폰에도 컴퓨터 + 핸드폰 = 컴퓨터 공식을 적용할 수 있다.
인간 중심적이지 않은 인터페이스가 유비쿼터스된 기기에 적용되다 보니, 컴퓨터의 복잡한 인터페이스가 본래 기기가 지닌 목적을 가려 버린다는 앨런 쿠퍼의 주장이다. 앨런 쿠퍼의 컴퓨터 + 사물 = 컴퓨터 공식을 말하는 이유는 며칠전에 어떤 분과 나눈 대화 때문이다.
대화를 나눈 그분은 본인의 직업과 관련된 프로그램 하나를 만들어 달라는 요청을 했다. 물론 나한테 한 부탁이다. 그러나 현재 직장을 다니는 입장이고 비전과 관련되지 않는 일은 사양하기 때문에 그분에게 정중히 거절을 했다. 그리고 괜찮은 개발자를 소개시켜 드릴테니까 합당한 금액을 지불하고 프로그램 제작을 부탁해 보라고 조언했다.
그런데 그분이 말하길
“지금 당장은 금전적인 여유가 없기 때문에 일단 개발을 해서 결과가 나오면 사업을 해 볼 생각이거든.”
다소 황당한 대답을 하셔서 난 이렇게 말했다.
“개발자는 자기 시간이 재산이기 때문에 그런 위험부담을 안고 개발할 사람은 없을 거에요.”
다시 그분이 말하길
“그렇게 소심한 이야기를 하니까 개발자가 개발자라는 이야기를 듣는거지…”
어떻게 보면 마음을 터놓고 개인적인 이야기를 할 수 있는 친구도 나이 서른이 넘어서 감정 싸움을 하면 소원해진다. 하물며 사회 생활을 하면서 이익과 이익으로 만난 사이에 감정이 끼어들면 이득보다 손해가 많다는 사실을 지난 7년간의 회사 생활로 깨달았다. 따라서 왠만한 일에 감정을 드러내지 않을려고 노력한다.
But
그분이 하신 “개발자가 개발자라는 이야기를 듣는거지…”라는 말에 가슴 깊이 잊고 있던 감정의 도화선에 불이 당겨졌다. 그렇다고 무턱대고 감정 싸움을 하지는 않았지만 논리 정연한 논조로 말하는 내 목소리에 상당한 감정이 실려 있음을 느낄 수 있었다. 논박을 하면서도 개운하지 않았다. 아무튼 대화는 어떻게 잘 마무리 했지만 이 대화를 통해서 한가지 잊고 있던 사실을 깨달게 되었다.
전문성의 몰인정이 Professional을 막는다.
아마도 그분이 생각하신 개발자는 비즈니스 마인드와 상당한 여유 자금이 있어서 그분의 아이디어를 실현시켜 줄 프로그래머였나 보다. 즉, 앨런 쿠퍼의 공식을 변형하자면 그분이 생각하는 개발자는 개발자 + 사업가 = 개발자 가 된다. 그런데 문제는 이런 인식을 지닌 분이 그분 혼자만이 아니라는 사실이다. 개발이 내업무에 차지하는 비율은 매우 적기 때문에, 개발자를 두둔할 생각은 없다. 하지만 지금의 내가 있게 한 뿌리는 개발이었음을 애써 부정할 생각도 없다. 프로젝트를 성공적으로 마무리하기 위해서 개발자만을 감싸거나 반대로 개발자를 착취하지도 않는다. 그렇지만 일을 하면서 만나는 사람들이 개발자에 갖는 인식은 다음 공식 중에 하나다.
개발자 + 디자이너 = 개발자
개발자 + 기획자 = 개발자
개발자 + 테스터 = 개발자
개발자 + 유지보수자 = 개발자
…(개발자 + 디자이너 = 디자이너 같은 반대 공식도 가능하다. 다만 내가 가장 잘 이해하고 사랑하는 일 가운데 하나가 개발이기 때문에 이런 공식을 만들었다.)
예산이 부족해서 디자이너 없이 개발을 하는 프로젝트에서 종종 개발자에게 디자이너 역할을 시킨다. 하지만 개발자는 개발자일 뿐이다. 간혹 디자인도 잘하는 개발자가 있을 수 있지만 그건 옵션이다. 하지만 디자이너 역할을 강요 받은 개발자에게 디자이너의 품질을 원한다. 물론 그렇다고 해서 개발자로써 책임이 줄어드는 것이 아니다.
그러나 개발 프로젝트를 떠나서 어떤 프로젝트라도 성공적인 결과를 얻기 위해서는 자신의 업무만을 챙겨서는 안된다. 부서간의 벽없는 의사 소통을 해야 하면, 자신의 업무가 중심이 아닌 공통의 목표에 집중했을 때 평균 이상의 결과를 얻을 수 있다. 하지만 전문성을 넘나드는 협업을 하기 위해서 선행되야 하는 게 한 가지 있다. 바로 상대방의 전문성을 이해하고 그 전문성을 공동의 목표에 맞추도록 서로 돕는 것이다.
예를 들어 iPod과 같은 MP3를 개발한다고 가정해 보자. 만약 팀장이나 관리자가 개발자에게 MP3 디자인을 개발자에게 시켰다고 해보자. 어떤 디자인이 나올까? 며칠을 고생해서 개발자가 만들어 온 디자인을 본 팀장은 이렇게 말했을 것이다.
“이렇게 디자인 하니까 개발자라는 소리를 듣는 거야”
하지만 전문성을 지닌 디자이너가 iPod과 같은 인터페이스와 디자인을 한 후 인터페이스에 맞는 사용성을 지니고 안정적인 S/W를 만들어 달라고 개발자에게 부탁을 한다면 결과는 어떨까? 며칠 밤을 새서 일하는 개발자는, 노력의 결과가 어떤 모습일지 예측 가능하고 가장 잘하는 일이기 때문에 즐거운 마음으로 개발에 몰입할 것이다. 그렇다면 결과는 뻔하지 않을까?
이 사회는 너무나 전문화되고 어떤 사람은 고도의 전문성은 인간 관계를 파편화 시킨다고 주장한다. 그러나 어떻게 보면 그런 전문성 속에서 인간이 단순한 먹고 싸고 자는 동물이 아닌 자신만의 가치관을 실현하는 진짜 인간이 되는게 아닐까? 이런 자아 실현은 잘 나지도 않은 각자의 전문성을 인정하는 진짜 전문가다운 마음에서 출발할 것이다.

