리뷰: 소프트웨어, 누가 이렇게 개떡같이 만든거야

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=2000590

원제는  “Why Software Sucks”.

표지에서 보이는 장면처럼 상당히 유쾌(?)하고 읽기 편한 책이었다.

저자가 컨설턴트/연사/엔지니어이긴 하지만 SW 엔지니어 관점이 아니라 일반 사용자의 관점에서 “왜 소프트웨어가 이렇게 사용하기 힘든가?” 에 관해서 분석하고, SW 엔지니어들이 흔히 착각하는 것, 실수하는 것, _그리고 하지 말아줬으면 하는 것_들에 관해서 설명하고 있다.

우선 사용자 인터페이스에 관해서 설명한 부분이 맘에 들었는데,

  • 사용자가 뭔가 하려고 한다면 그게 뭔가 엄청난 문제를 불러일으키는 / 혹은 파괴적인 행동 이 아닌 이상 바로 할 수 있게 하라 — 즉 pop-up 같은 거 띄워도 물어보지 말아
  • 사용자의 행동에 대해서 undo / 되돌리기 기능을 지원하라.1

자동화하기 쉽지 않은 기능을 하고/스스로가 써야하는 프로그램을 짜는 프로그래머치고 undo 비슷한 기능 안 만드는 사람들은 드물텐데 왜 실제 프로그램 중엔 이런 기능이 없는게 가끔 나오는지는 의문. 저자의 말처럼 “이미 그런 상태로 받아들이기 때문” == “너무나도 많이 상처받아 흉터 조직이 엄청 두꺼워져 더 이상 고통을 느끼지 못하는 사람”2

부족한 상태를 _현재의 완성된 상태_로 인지하는 사용자의 무지가 원인이기도하고, 이걸 피드백 받지 못해서(=다수는 침묵하니까) 개선하지 못하는 SW 엔지니어들에게도 문제라는 언급.

비슷한 방식으로 웹의 사용성3이 나쁜 점, 그리고 잘 하고 있는 회사와 그렇지 않은 회사 — 예를 들어 간결한 구글의 웹페이지. 찾기 쉬운 Fedex/Kinkos의 페이지 vs. 알 수 없는 UPS 페이지, 매장도 찾기 힘든 스타벅스 홈페이지 — 를 비교하고 있다.

SW엔지니어들이 보안같이 고도로 전문화된 부분에 대해서 제대로 인지하지 못하고 있는 점도 지적하고 있으며, 졸트 콜라나 여러 서브컬쳐(geek스러운 것들)에 빠져있는 SW 엔지니어들이 사용자와의 교류가 필요하다는 점을 계속 해서 강하게 주장하면서 책을 진행한다.

읽다 보면 “그래서 이게 편하지 / 그래서 이게 불편하지” 라고 되뇌이게 되는게 많긴 했고, 전반~2/3 부분 정도까지는 거의 한 큐에 읽을 정도로 재미있었다. 하지만 후반부의 주제는 좀 진부하기도 했고, 좀 재미가 적은듯도.

“초난감 기업의 조건"을 읽었을 때도 그렇지만, 왜 안좋은지에 관한 설명은 있는데, 그렇지 않으려면 어찌해야하는가에 관한 가이드라인은 좀 부족한듯 — 즉 개발자에게 하는 얘기보다는 사용자들에게

“이런게 불편한 것이란걸 인지하고, 우리의 권리(?)를 획득하자!” 라는게 주라서, 개발자가 읽고나서 좀 뒷맛이 안좋을지도 모르겠다.

총평을 내자면, 재미있지만 2번 볼 것 같지는 않다 — 이게 “정신병원에서 뛰쳐나온 디자인"에 대비해서 내가 내리는 평가.


  1. 아래아 한글이 815버젼까지도 undo가 없었던 걸로 기억한다. 텍스트 편집기인 vim은 컴퓨터가 다운되거나 해당 서버와의 접속이 끊겨도 다시 접속하면 이전 상태로 시작해서/이전에 시작했던 위치까지 되돌아갈 수 있다 — 그래서 프로그래머들의 사랑을 받는다. ↩︎

  2. 두번째 인용은 책에서도 언급하고 있지만 “정신병원에서 뛰쳐나온 디자인"의 저자인 앨런 쿠퍼의 말. ↩︎

  3. 원래 웹은 CERN의 물리학자들이 정보 교환을 편리하게 하기위한 목적으로 시도된 것이었다. 컴퓨터를 일부 수학자/물리학자/엔지니어들만 만지던 것에서 만인의 도구가 된거랑 비슷함. ↩︎