Record/IT Diary

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

범데이 2021. 7. 11. 15:39

 

바로 이 책의 이름이다.

 

천안 알라딘 도서관 서점에서 책좀 둘러보다가 제목이 눈에 띄어서 샀다 ㅋㅋㅋ

비록 2008년에 지어진(무려 13년전...) 책이지만, 참 배울점이 많아 몇가지 적어보았다.

 

 


제어와 사용 편의성

저는 회사에서 강의를 할 때면 항상 수동변속기어 자동차를 모는사람(저처럼)이 얼마나 되는지 물어봅니다.

보통 수강생의 반 정도가 손을 듭니다. 그러면, 저는 부인이 동의한다거나 또는 저처럼 늙다리 퇴물이 되어 미니밴을 몰아야 할 처지가 되면 수동 기어 자동차를 몰 생각이 있는지 물어봅니다. 처음에 손을 들지 않았던 나머지 수강생들 중 대략 반 정도가 손을 듭니다. 이제 너는 다음과 같은 질문을 합니다. "수동 기어가 자동 기어에 비해 배우기도, 사용하기도 어렵지만 제대로만 조작한다면 마음대로 제어할 수 있고 성능도 낫지 않습니까?" 수강생들은 유도심문에 걸려들었다는 것을 깨닫지만 이쯤되면 보통 옴짝달싹 못하게 되어 마지못해 동의하고 맙니다. "자, 그럼 미국에서 수동 변속기어를 장착한 자동차가 판매되는 비율은 얼마나 될 것 같습니까?" 그들은 당황항 기색을 감추지 못하며 "분명 낮을 거에요. 한 30%정도?"하고 대답합니다. 그들의 바람일 뿐이죠. 보통은 10~14% 정도로 추산합니다. 비교를 쉽게 하기 위해 12.5% 또는 1/8이라고 해봅시다. 

 

이는 8명중 6명의 프로그래머가 자동차를 선택할 때 제어와 성능을 조금이라도 향상시키는 데 매우 높은 가치를 두고 있고, 이를 위해 기꺼이 지속적인 수고를 더할 의향을 가지고 있다는 의미입니다. 그러나 일반인은 8명중 1명만이 이와 같은 결정을 합니다. 그리고 그 한 명 중에는 앞의 컴퓨터 괴짜들의 포함되어 있을 수도 있으므로 실제로 그 비율은 그보다도 훨씬 낮을 것입니다. 일반인이 성능과 제어를 위해 별도의 노력을 기울여야 한다는 것을 수용할 확률은 거의 0에 가깝습니다. 여러분의 사용자는 여러분과 다릅니다.

 

 

위의 내용을 읽고 나서 사용자의 입장을 한번 생각할 수 있는 계기가 된 것 같다. 어떤 프로그램을 개발할 때에, 프로그래머의 시각을 가지고 제어와 성능을 중시 생각하여, 결과물은 어떻게 되던지 그저 "좋은 제어와 성능을 가져야 좋은 소프트웨어이다" 라고 선입견을 가질 때가 종종 있었던 것 같다.

 하지만 어쩌면 (너무 압도적인 제어와 성능의 차이가 아니라면) 사용자들의 입장은 이에대해 관심이 없다는것이다.

그저 사용하기 편리하고 명확한 것이 장땡이라는 것이다.

 

이러한 소프트웨어의 사용성에 관한 내용을 중점으로 지어진 이 책 가운데에서는 사용자가 소프트웨어를 사용할때의 입장을 생각하여 "좋은 소프트웨어란 무엇인가?" 하는 질문에 여러 의견을 제시해주고 있다.

 

 

아래에 이어지는 내용도 함께 보자. 


개떡같은 소프트웨어의 실체

1. 여러분은 바보가 아닙니다. 사실은 사용자 인터페이스가 개떡 같은 겁니다.

2. 사용자 인터페이스가 개떡 같은 이유는 프로그래머가 설계했기 때문입니다. 프로그래머는 사용자가 자신과 다르다는 것을 깨닫지 못하고 있습니다.

3. 2와 같은 이유로 사용자 인터페이스는 의도적으로 복잡하게 되어 있고, 프로그래머는 여러분이 복잡한 것을 다루길 좋아한다고 생각합니다. 실제로는 안 그런데 말이죠(1번 참조).

 

 

그렇다. 새로운 소프트웨어를 접할때에, 우리는 가령 "내가 갖고있는 쿠폰으로 커피를 주문하기 위해서 어딜 타고 들어가서 어떻게 주문을 해야하지?" 라고 헷갈린 적이 종종 있을 것이다. 근데 책에서 기술한 바로는 이는 명백히 잘못 만들어진 소프트웨어이기 때문이라는 것이다.

 보통 이럴때에 사용자는 "내가 이해력이 달리거나 멍청한가 봐. 커피 하나도 제대로 주문을 못하네" 라고 생각하기 일쑤인데, 이는 사용자의 잘못이 아니라 소프트웨어가 잘못 만들어졌다는 것이다. 소프트웨어가 사용자에게 설명이 충분하지 않았고, 인터페이스가 명백하지 않았으며, 어쩌면 설계 자체가 아예 잘못된 소프트웨어라는 것이다. 

 

 개발을 하다보면 개발자의 관점에서만 생각하는 이기적인 마음을 갖게 될 때가 있다.

"고객이 이런 요구사항을 내게 주었고, 나는 동작을 하게끔 개발을 다 했어. 그런데 이걸 제대로 사용을 못한다고? 그건 사용자의 문제지" 이런 마인드로 개발을 한다면 정말 이만큼 악질의 개발자가 따로 없을것이다. 

 

개발자의 사명을 조금은 다시 생각하게 만든 책인것 같다. 내가 만드는 소프트웨어로 인해 많은 사람들이 편리함을 느낄 것인데, 정말 그사람들을 생각하고 배려한다면, 개발을 하면서 사용자의 입장을 꼭 짚고 넘어가야하는 것은 가볍게 여기지 않고 거쳐야 할 과정인 듯 하다.

반응형

'Record > IT Diary' 카테고리의 다른 글

[일기] 아는 만큼 궁금하다.  (0) 2022.09.05
코드 리뷰 -1-  (0) 2022.04.06
2021년 상반기, KT에서 과제를 마치며..  (0) 2021.07.11
오늘 배운것  (0) 2021.03.10
프로그래머는 두가지 트랙이 있어야 한다.  (0) 2020.11.16