호모로지쿠스의 흥망성쇠

등록일: 2014. 09. 11

소프트웨어 개발자들에게서 관찰한 온갖 종류의 직업적 오만함 가운데 아마도 최고의 것은 우리가 스스로를 전형적인 유형의 사용자라고 생각하는 것일 것이다. 우리는 컴퓨터를 한 순간도 멈추지 않고 사용하고, 그것이 어떻게 동작하는지 알고 있고, 심지어 친구나 친척에게 컴퓨터와 관련된 조언을 하기도 한다. 우리 같은 슈퍼사용자가 아니라면 도대체 누가 소프트웨어를 설계할 수 있겠는가? 그렇지만 대부분의 개발자가 깨닫지 못하고 있는 사실은 우리가 일반인의 분포에서 얼마나 멀리 떨어져 있느냐다. 우리는 평균에서 멀리 떨어져서 완전히 경계선 상에 놓여있는 사람들이다. 나는 종종 프로그램 관리자에게 이렇게 말하기도 한다. ‘나한테 소프트웨어 디자인을 맡긴다면 그 프로젝트는 이미 실패한 것이다’라고 말이다.

『정신병원에서 뛰쳐나온 디자인The Inmates Are Running the Asylum』’에서 앨런 쿠퍼는 이러한 현상을 호모로지쿠스Homo Logicus라고 명했다.

호모로지쿠스는 관심을 끄는 일에 대해 통제권을 갖기를 욕망한다. 그런데 그들이 관심을 두는 대상은 복잡하고 결정론적인 시스템이다. 사람들은 복잡하지만 그들은 기계처럼 논리적이고 예측 가능한 방식으로 행동하지 않는다. 최고의 기계는 디지털이다. 디지털은 가장 복잡하고, 정교하고, 프로그래머에 의해 쉽게 변경될 수 있기 때문이다.

통제에 드는 비용은 언제나 더 많은 노력과 더 높은 수준의 복잡성이다. 대부분의 사람은 적당한 수준의 노력을 기꺼이 기울이지만, 프로그래머를 보통 사람들로부터 구분 짓는 결정적인 요인은 바로 그들이 극단적인 수준의 복잡성을 통달하기를 조금도 주저하지 않는다는 점이다. 서로 상호작용하는 여러 힘들로 구성된 시스템을 통달하고 관리할 수 있게 되는 것은 프로그래밍이라는 직업이 가진 만족스러운 부분에 속한다.

비행기를 조종하는 것은 전형적인 프로그래머의 취미활동이다. 조종실의 계기판은 여러 개의 게이지, 손잡이, 레버 등으로 구성돼 있는데, 프로그래머들은 그와 같은 무시무시한 복잡성을 즐겁게 견뎌낸다. 호모로지쿠스는 수개월에 걸친 학습이 필요한 일이라고 해도(혹은 바로 그렇기 때문에!) 그러한 복잡성을 통달하는 과정이 즐겁고 몰두할 만한 일이라고 생각한다. 호모사피엔스는 아마도 그러한 비행기에 승객으로 탑승하기를 더 즐기는 편일 것이다.

호모로지쿠스에게는 통제가 목표고, 복잡성은 통제를 손에 넣기 위해 기꺼이 지불하는 비용이다. 일반인에게는 단순함이 목표고, 통제를 포기하는 것은 그들이 기꺼이 지불하는 비용이다. 소프트웨어에 기초한 제품에서 통제는 기능으로 번역된다. 예를 들어 윈도우 95에서 ‘찾기 - 파일 또는 폴더’라는 기능은 나에게 해당 절차에 대한 많은 통제권을 부여해준다. 나는 디스크 상의 검색 영역, 파일의 종류, 파일명 또는 파일의 내용 검색 여부, 그리고 그밖의 다양한 매개변수를 결정한다. 프로그래머의 관점에서 보면 이러한 기능은 상당히 훌륭하다. 약간의 노력을 통해 이를 이해하고 나면 검색을 더 빠르고 효율적으로 수행할 수 있기 때문이다. 하지만 평범한 사용자의 관점에서 보면 이 같은 기능이 별로 매력적이지 않다. 어느 영역을 검색할지 언제나 일일이 지정해야 하고, 검색할 파일의 종류도 지정해야 하며, 이름으로 검색할지 내용으로 검색할지도 알려줘야 하기 때문이다. 호모사피엔스는 검색이 어떻게 동작하는지 굳이 알지 않아도 된다면, 약간의 추가적인 계산 시간을 기꺼이 견뎌낼 준비가 돼 있다. 그들의 입장에서는 검색과 관련한 매개변수를 하나 더 입력해야 한다는 사실은 뭔가를 부정확하게 입력할지도 모르는 대상이 하나 더 늘어난다는 것을 의미할 뿐이다. 유연성이 확장되는 것은 그들이 실수를 저지르거나 해서 검색이 실패할 확률을 낮춰주는 것이 아니라 오히려 높인다. 그들은 자신이 수행할 일을 더 단순하게 만들 수만 있다면 불필요한 복잡성, 통제, 그리고 동작 방식에 대한 이해를 기꺼이 포기할 준비가 돼 있다.

호모로지쿠스는 사물이 어떻게 동작하는가를 알고 싶어 하는 참을 수 없는 욕망을 느낀다. 이와 반대로 호모사피엔스는 성공을 위한 강력한 욕망을 느낀다. 프로그래머도 성공을 원하긴 하지만 그들은 이해라는 성취를 위해 실패라는 비용을 지불하는 것을 받아들인다. 이해하고자 하는 욕구에 대해 약간의 통찰을 주는, 엔지니어와 관련된 오래된 농담이 하나 있다.

세 사람의 사형수에게 집행이 예정돼 있다. 그들은 성직자, 변호사, 그리고 엔지니어다. 우선 성직자가 교수대에 올라갔다. 집행인이 칼날을 떨어뜨리기 위해 손잡이를 당겼지만 아무 일도 일어나지 않았다. 성직자는 신이 개입해서 자신의 석방을 명령한 것이라고 주장했다. 그래서 그는 풀려났다. 두 번째로 변호사가 단두대에 올랐다. 집행인이 손잡이를 당겼지만 역시 아무 일도 일어나지 않았다. 변호사는 손잡이를 한 번 더 당기는 것은 일사부재리의 원칙에 어긋나기 때문에 자신을 석방해야 한다고 주장했다. 그래서 그는 풀려났다. 마지막으로 엔지니어가 교수대에 올라갔다. 그리고 그는 사형대를 꼼꼼하게 살펴보기 시작했다. 집행인이 손잡이를 당기려고 하자 그는 위를 보면서 외쳤다. ‘아하, 여기가 문제였구나.’

쿠퍼는 호모로지쿠스가 가진 특징에 대해 몇 가지 더 이야기했다.

  • 통제와 단순함을 맞바꾼다.
  • 이해와 성공을 교환한다.
  • 그럴 듯해 보이는 것 중에서 배제할 수 있는 부분에 초점을 맞춘다.
  • 사물에 통달한 사람처럼 행동한다.

컴퓨터나 복잡성에 아무런 관심이 없는, 단순히 호모사피엔스에 불과한 사용자들을 가엾게 여겨라. 그들은 그저 자기 일이 빨리 끝나기만을 바랄 뿐이다.

사용법을 아무도 알 수 없는 복잡한 애플리케이션은 누구나 만들 수 있다. 그건 쉽다. 반면 누구나 쉽게 이용할 수 있는 애플리케이션을 만드는 것은... 바로 그것이 실제 기술을 필요로 하는 것이다. 이러한 목표를 달성하기 위해 급여 수준이 높은 인터랙션 디자이너가 필요한 것인지는 잘 모르겠다. 하지만 잠시 손을 멈추고 호모로지쿠스처럼 생각하는 틀에서 벗어나 호모사피엔스처럼 생각하는 것은 반드시 필요하다.