본문 바로가기
나의 서재

[책]소프트웨어, 누가 이렇게 개떡같이 만든 거야

by esstory 2008. 6. 10.

소프트웨어, 누가 이렇게 개떡같이 만든 거야 - 10점
데이비드 플랫 지음, 윤성준 옮김/인사이트


개발자 간에도 늘 의견 합치가 쉽게 이뤄지지 않는 것 중 하나가 프로그램 사용성입니다.

 

이 화면에 배치는 이렇게 하면 좋지 않을까?

사용자의 대부분은 이 데이터를 같이 보는 걸 좋아하지 않을 텐데 분리하면 어떨까?

프로그램 동선이 매끄럽지 못한데 이 버튼과 차트를 옆으로 옮기고 리스트를 위로 옮기면 어떨까?

탭이나 엔터 키가 눌러졌을 때 자동으로 다음 액션을 취하도록 해 줘야 하지 않을까?

설정 대화상자가 너무 복잡한데 분류 별로 구분해서 깨끗하게 정리하면 좋지 않을까?

이 정보는 아주 유용하긴 한데 1024 * 768 고객에게는 화면이 너무 커서 제대로 보이지 않는 단점이 있는데 화면 해상도에 따라 필요한 사람에게만 적절히 보여지게 하면서 사용자를 귀찮게 하지 않는 묘안은 없을까?

경쟁사에서 이번에 새로 만든 인터페이스는 정말 멋지던데 우리가 만든 게 너무 뒤쳐져 보이지 않을까? 어떻게 하면 경쟁사를 뛰어 넘을 좋은 인터페이스를 만들 수 있을까?

 

프로그램도 프로그램이지만, 코딩의 실력과는 상관없이 어떻게 하면 사용자가 좀 더 편하게 쓸 수 있는 소프트웨어를 만들까 하는 것은 대부분 프로그래머의 골치 아픈 숙제일 것입니다. – 사용자의 사용성을 제대로 꾀 뚫는 것도 아주 중요한 프로그래머의 자질중 하나이겠네요.

 

늘 이런 문제를 겪어 왔기 때문에 제목부터 프로그래머인 저를 가슴 아프게 하는 이 책 소프트웨어, 누가 이렇게 개떡같이 만든 거야를 읽지 않을 수 없었습니다.

 

하지만 결론부터 얘기하지만, 사용성에 관심이 있어 이 책을 보게 되는 개발자라면 금방 실망하게 됩니다.

 

책의 목차를 잠깐 살펴보시면 왜 제가 이 책을 개떡같이 생각하는지 공감할 수 있을 겁니다.

 

1,2장은 그나마 프로그램과 웹의 어떤 사용자 인터페이스가 문제가 되는지 알려주기 때문에 읽어 볼 가치가 조금은 있습니다.

 

1: 바보를 부르는 그대는 누구인가?

2: 웹에 얽혀 들다.

 

그러나 이어서 나오는 3,4,5장은 쓸데 없이 보안관련 얘기로 엄청난 분량의 책을 허비합니다. 사용자가 패스워드를 어떻게 정해야 하는지, 보안이 얼마나 전문분야인지, 뭐 이 딴 얘기로 책을 허비하니까요. 누가 소프트웨어를 개떡같이 만드느냐고 묻기 전에 누가 이 따위 책에 이런 제목을 붙였는지 묻고 싶습니다.

 

3: 나를 안전하게 지켜줘

4: 대체 넌 누구야

5: 누굴 보고 있는 거야?

 

책은 갈수록 더 합니다.

6장은 마이크로소프트에 Tech Ed 에 모인 괴짜 프로그램 광들의 습성을 자세히 설명해 줍니다. 이 장 어디에서도 사용성에 대한 얘기는 전혀 안 나오죠.

 

6: 졸트 콜라에 환장하는 만 명의 컴퓨터괴짜들

 

7장은 6장에서 보인 괴짜 프로그래머들이 일반인과 얼마나 차이가 나는지, 그들이 생각하는 사용성이 왜 일반인과 동떨어져 있는지 설명합니다. 아 쓰다 보니 또 열 받네 --;

 

7: 그래서 이 미친 놈들은 뭔데?

 

8장은 제목만 보시면 알 수 있을 겁니다. 마이크로소프트와 작가가 얼마나 친분이 있는지, 그래서 그 속을 내가 잘 알고 있다 뭐 이런 뻔한 얘기로 50페이지를 갉아 먹습니다.

 

8장 마이크로소프트: 같이 살 수도 없고, 없애버릴 수도 없고

 

물론 누군가에게는 분명 도움이 될만한 내용이겠지만(이 책의 추천사를 쓴 정유진씨를 포함한 몇분들 등) 저에게는 낚시성 제목과 전혀 어울리지 않는 내용으로 가득찬 이상한 책으로 기억에 남을 것 같습니다.

 

본의 아니게 낚였지만 책에서 구한 몇 가지 생각할 거리들입니다. – 늘 그렇듯 책 내용 중 한 장이라도 읽는 이에게 생각할 여지가 있다면 그 책은 구입할 가치가 있다고 생각합니다.

 

그들은 사용 편의성보다는 제어에 더 많은 가치를 두어, 단순한 것을 단순하게 만드는 대신 복잡한 것을 가능하게 하는데 집중합니다.  – P37

 

여기서 그들은 당연히 프로그래머들입니다. 저 같은 경우 프로그램을 복잡하게 만드는 것을 좋아하지 않습니다. 머리가 그다지 좋지 않기 때문에 저 자신도 간단한 인터페이스로 사용하길 선호하는데요. 많은 사용자가 쓰는 프로그램일 경우 간단치가 않게 됩니다. 사용자들은 개발자보다 더 제어에 관심을 가지고, 프로그램을 이렇게 저렇게 자기가 원하는 대로 변경하고 싶어합니다. 물론 이들 사용자들도 일종의 geek 들인지도 모르겠습니다. 수 많은 사용자의 서로 다른 의견을 받아 들이려면 프로그램 곳곳에 이를 제어할 설정창이  들어가고, 점점 더 복잡해 지고, 상호 모순도 생겨나고 하더군요.  저는 이 책에서 기술하는 geek들처럼 개발자가 일반 사용자와 전혀 다른 세계에 사는 사람이라고 생각하지 않습니다. 저는 커피광도 아니거니와 수동 변속기 차를 몰 줄도 모르거든요. 일반 사용자와 비슷한 생각을 하고 있지만, 제 생각과 사용자의 생각 사이에 교집합이 얼마나 크냐에 따라 개떡같은 프로그램이냐, 쓸만한 프로그램이냐가 결정되지 않나 생각됩니다.

사용성관련 가장 충격을 받았던 일 중에 하나는 민장님이 올려주신 Office 2007 에서 붙여넣기가 왜 맨 앞에 놓여졌는지 하는 얘기였습니다.


왜 Paste
버튼이 앞에 있는가?


놀랍게도 오피스 사용자가 가장 많이 사용하는 버튼 10개 중 11%가 붙여넣기 버튼이었다고 합니다.  일반 개발자의 머리로서는 도저히 생각도 할 수 없는 곳에 가끔씩 진리가 숨어 있곤 하는데 사용성 테스트를 위해서는 마이크로소프트가 취한 방법 오피스 환경 개선 프로그램 참여 같은 처럼 수 많은 사용자가 실제로 프로그램을 어떤 방식으로 사용하는지, 어떤 기능으로 접근할 때 불편을 느끼는지 연구하는 것이 선행되어야 한다고 봅니다.

그런 면에서 이 책의 전체 내용보다 오피스 리본바의 탄생 비화를 다룬 Jensen Harris씨의 블로그 에서 훨씬 좋은 정보가 많다고 생각합니다.

 

 

구글 홈페이지의 경우 언어 설정은 거의 모든 사용자에 대해 거의 항상 정확하여, 사용자가 생각을 하거나 노력을 기울일 필요도 없습니다. 또한 잘못된 경우라도 이를 수정하는 데는 보통 한번에서 최대 세 번의 클릭이 필요할 뿐입니다. 이런 식의 자동화는 모든 사용자의 웹 경험을 개선시킵니다.  – p77

훌륭한 프로그램 설계란 이런 것을 고려해 가능한 모든 것을 자동으로 보완하는 것입니다. – p135


게으름은 모든 것을 능가한다.” 어떤 것이 하기 쉽다면 사람들은 그것이 옳든 그르든 자주 할 것입니다. 어떤 것이 하기 어렵다면 그것이 해야 하는 것이든 아니든 잘 안 할 것입니다. 따라서 똑똑한 프로그램 설계자는 안전하고 좋은 것은 쉽게 할 수 있고, 위험하고 나쁜 것은 하기 어렵게 만들 것입니다.  – p138

 

사용자 인터페이스에서 자동화에 대한 고려는 개발자가 참 많이 고민해야 할 부분 중에 하나입니다.  개발자는 너무나 익숙해져서 전혀 불편하게 생각하지 않지만 사용자 입장에서는 몇 가지 과정을 거치는 것이 불합리해 보일 수 있기 때문에 작은 불편도 놓치지 않는 것이 늘 중요하다고 생각됩니다. 다만 오피스의 Personalized Menu 같이 어설픈 자동화는 프로그램을 더 개떡같이 만들 수 있다는 것도 잊지 마세요~.

 

 

플래시터베이션이란 용어는 이런 종류의 사이트를 가리키기 위해 생겼습니다. 그 회사는 분명 스플래시 페이지를 만드는 데 엄청난 돈을 썼을 테고, 고위 관리자 중 누군가는 오 훌륭하군. 사람들이 즐길 수 있게 거기 계속 두게하고 말했을 겁니다.

 

이런 경우는 워낙 많아서.. 저희 회사 홈페이지도 얼마 전 플래시로 도배를 했는데 어찌나 느린지 --;; 접근성은 전혀 고려치 않고 단순히 남들이 하니까 우리도 화려하게 이쁘게, 역동적으로 보이기 위해 잘못된 플래시 도배를 하는 경우가 얼마나 많은지 생각해 봤으면 좋겠습니다.

 

구글은 2MB를 제공하는 핫메일이나 4MB를 제공하는 야후와 달리 훨씬 큰 1GB의 저장공간을 제공했습니다. 일부 사용자는 발표일자 때문에 이를 믿지 않았지만, 결국 사실임이 밝혀졌습니다. 이런 웹기반 메일 서비스는 모두 광고의 지원으로 운영됩니다. 차이점이 있다면, G메일서버는 메시지를 화면에 표시하기 위해 페이지를 구성할 때, 메시지를 스캔한 다음 거기서 찾은 키워드에 기반해 광고를 선택합니다… - P212

 

여기서 나오는 구글메일 사례는 일반적인 프로그램 사용성과는 다른 얘기이긴 하지만 차별화된 서비스는 어떠해야 하는지 모범답안을 제시한다고 생각합니다. 다른 서비스들이 겨우 10-20MB 를 제공하던 시절에 1GB 라는 믿기 힘든 용량을 제공해서 순신간에 웹 메일 서비스의 강자로 자리 잡았습니다. 고객 메일을 스캔한 광고이긴 하지만 텍스트 기반 광고는 거의 눈에 띄지 않아 번쩍거리는 플래시 광고보다 오히려 착한 편이더군요. 게다가 제가 구글 메일을 사용하는 가장 큰 이유중에 하나는 스팸이 없다는 점입니다.  저희 회사에서도 돈을 주고 구입한 스팸 제거 프로그램을 운영 중이지만 여전히 대출 광고 메일이 하루에도 서너개씩 꼭 들어와 짜증나게 만드는데요. 지메일에는 그런 스팸이 없어서 보고 싶은 메일만 볼 수 있다는 큰 장점이 있습니다.  남들과 다른 서비스라는게 이렇듯 쉽지는 않지만 누군가는 이미 구현하고 있으니 좋은 모범답안이라고 생각합니다.

 

 

남자는 기술 자체를 좋아해서 모여있으면 서로 하드 디스크 용량이나 모뎀 속도를 비교하곤 한다. 그들의 말처럼 그런 것은 남자들의 것이다. 반면 여자들은 하이테크 세상에 완전히 다른 접근 방법을 취한다. 그들은 기술을 수용해 이를 가전제품으로 바꾸어 버린다. 그들은 그 유용성을 확인하기 위해 이해할 수 없는 전문용어로 둘러 쌓인 껍데기를 벗겨 버린다. 여자는 기술을 보고 그 목적과 이유, 즉 그 기술이 자신들에게 어떻게 도움이 될지를 생각한다. – P 252

 

남자들이여 각성하자 ^^;

 

그들은 글쎄요. 아직까지는 아무도 거기에 불평하지 않던데요”. 하고 변명했습니다 – P 274


사람들이 와서 어떤 것이 개떡 같은지를 알려주면 우리는 그걸 더 좋게 만들기 시작합니다”. “우리가 어떤 것이 개떡 같고 어떤 것이 그렇지 않은지를 알아내는 것은 당신이 상상하는 것보다 훨씬 어렵습니다.” - p310

 

저도 고객들이나 동료, 상사에게 자주 하게되는 말인데, 이번 기회에 반성하고 싶습니다. 누군가 불평을 하지 않았다고 해서 프로그램이 문제가 없거나, 불편하지 않다는 변명이 될 수는 없습니다. 언제나 개선할 것들이 있고 누가 먼저 이를 알아채서 개선하느냐의 싸움이다.

 

사람들이 선호하는 희생양이 국내와 국외에서 어떻게 변해왔는지를 말하는 내용입니다. “ ‘왜요? 저는 사람들이 모든 것을 루즈벨트 씨의 탓으로 돌리던 때를 기억합니다. 앤디 라슨은 그의 앎탉이 병에 걸리자 루즈벨트 씨에게 화를 냈습니다하고 그는 점점 더 흥분하며 말했습니다….” – P 294

 

사용성과는 전혀 무관한 내용이긴 하지만, 예전에는 모든 것이 노무현 때문이다라는 유행어가 한국에도 꽤 돌았으니, 뭔가 안주거리로 삼으려는 자들은 한국이나 미국이나 마찬가지인가 봅니다.

 

 

첫째, 새로운 제품을 만들 때나 기존 제품을 수정할 때, 기존 사용자 때문에 엄청난 제약이 따릅니다. 사용자가 이미 익숙하게 사용하는 어떤 것을 깨고 새로운 제품을 출시하는 것은 매우 어렵습니다. 오래된 괴짜 농담에 다음과 같은 것이 있습니다. “Q: 신이 어떻게 6일만에 세상을 창조했지? A: 기존에 설치된 게 아무것도 없으니 하위호환성을 걱정할 필요가 없잖아.” – P 301

 

오늘 내가 작성한 코드가 내일 레거시 코드가 되어 나를 얼마나 괴롭힐 지 늘 걱정하고 있습니다. 마이크로소프트입장에서도 어제의 표준이었던 것들이 앞으로 나아갈 길을 방해하는 일들이 비일비재할 것이고 이 때문에 많은 사람들로부터 욕을 먹고 있습니다. 비스타의 UAC 같이 방향은 맞지만 기존과 호환성 문제 때문에 많은 사람들로부터 원망을 듣는 것도 있을 것이고, 이런 것들이 쌓이다보면 앞으로 나아가지도, 뒤로 돌아갈 수도 없는 진퇴양란을 많이 겪을 거 같습니다. 사용자가 많다는 것은 그만큼 쉽게 개혁을 가하기가 어렵다는 뜻이겠지요.

 

어떤 사용자 부류에게 좋고 적절하며 필요한 것이 다른 부류의 사용자들에게는 완전히 잘못된 것일 수도 있습니다. – P303

 

사용성이 아무리 좋다고 하더라도 모든 사용자를 만족시킬 수는 없습니다. 이 때문에 사용성은 단순히 몇몇 사람들의 감에 의존해서는 안되고 충분히 납득할 만한 자료를 바탕으로 설계되어져야 합니다. 다만 충분히 납득할 만한 자료를 어떻게 모으느냐와, 반대 의견까지 포용할 수 있는 좋은 사용성은 전문적으로 이를 연구하는 사람들의 천재적인 머리로부터 나와야겠지만요.

 

 

댓글