버릇없는, 교양 없는, 거친, 무례한, 시끄러운, 공격적인, 불쾌한…
버릇없는, 교양 없는, 거친, 무례한, 시끄러운, 공격적인, 불쾌한…
  • 윤진근 기자
  • 승인 2015.03.30 11:11
  • 댓글 0
이 기사를 공유합니다

자동화 소프트웨어!

Real Time Automation의 회장인 존 S. 리날디는 최근의 소프트웨어를 ‘무례하다’고 비판한다. 실제로 오늘날 사용자에게 특화되어있거나 사용자 친화적인 소프트웨어를 만나기란 쉬운 일이 아니다. 사용자 맞춤형이라고 홍보하는 것 중 진정한 ‘예의 바른’ 소프트웨어는 어디에 있을까? ‘예의 바른’ 소프트웨어의 조건은 무엇일까? 어떻게 하면 사용자가 더 쉽게 소프트웨어를 사용할 수 있을까?
글 | 존 리날디(John Rinaldi), Real Time Automation 회장

 

이 글은 일종의 선언문(Manifesto)이다. 나는 항상 선언문을 작성하고 싶었다. 티머시 맥베이나 시어도어 카진스키처럼 정치적인 것이 아닌, 내가 정말 관심을 가지고 좋아하는 것에 대한 선언문을 말이다(티머시 맥베이와 카진스키는 연쇄살인마이다. 편집자 주).

나는 뿌려진 간격이 부적절한 페퍼로니를 싫어한다. 어떤 피자조각에는 단 하나의 페퍼로니도 없는데 옆 조각에는 세 개나 놓여있는 것 말이다. 이런 것에 대한 선언문을 작성하고 싶다.

나는 또한 신발끈 선언문을 작성하고 싶다. 함께 구입한 신발에 필요한 것보다 두 배나 긴 신발끈을 주는 숨겨진 이유를 알고 싶다. 사용자가 길이를 일일이 맞춰야 하는 의무라도 있는가? 신발 길이에 맞춰 끈을 잘라내야 하나? 만약 신발과 별개로 끈을 구입했다면 이해할 수 있겠지만, 신발에 기본으로 딸려 나오는 묶음상품인데 말이다. 왜 신발끈 주제에 신발 구멍에 다 쑤셔 넣어도 길이가 한참 남거나 모자라는가?

위에서 든 예시는 실로 매우 중요하고도 무게감 있는 주제다. 내가 굳이 이런 이야기를 꺼낸 것은 소프트웨어에 대해 이야기하기 위해서다. 여기서 소프트웨어란 일반적으로 컴퓨터 소프트웨어를, 특히 자동화 소프트웨어를 말한다. 

산업자동화 시장에서 종사하는 많은 프로그래머 친구들의 불쾌를 유발하는 위험을 무릅쓰고 감히 말하건대, 당신이 만드는 다목적 소프트웨어 및 자동화 소프트웨어는 모욕적이고 공격적이며 무례하고 둔감하며 몰이해하다. 나는 수많은 날들을 소프트웨어와 싸우고, 소프트웨어에 대해 배우고, 특징과 특성을 익히고, 녀석을 구슬려가며 내가 반드시 수행해야 하는 작업을 완수할 수 있도록 꼬드길 수 있길 바라고 기도해왔다.

나는 최근 카메라를 한 대 샀다. 동영상과 사진을 모두 촬영할 수 있는 캐논 카메라는 내가 필요로 하는 모든 기능을 수행할 수 있었다. 

하지만, (당연한 이야기이지만) 카메라는 촬영 기능 이외에도 약 9천 가지의 다른 기능을 탑재하고 있다. 이 카메라를 가지고 영상에 음악을 덧입힐 수 있다. 사진에 색을 덧입히거나 장식할 수도 있다. 사진을 무선으로 페이스북으로 전송할 수도 있다(이 기능은 나를 전율하게 만들었다). 카메라에는 이 외에도 사진계의 광신도(Fanatic)들만이 진가를 알아볼 수 있는 수많은 다른 괴짜 기능들이 잔뜩 들어있다.

나는 상자를 뜯고, 카메라를 충전한 뒤, 사진을 찍어서 컴퓨터로 전송하고자 했다. 몇 분 정도가 걸리긴 했지만, 나는 비교적 손쉽게 사진 촬영 방법에 대해 알 수 있었다. 하지만 내가 이해할 수 없었던 것은 사진을 컴퓨터로 전송하기는커녕 카메라의 작은 화면을 통해 사진을 볼 수 없었다는 점이었다. 내게는 이것이 극복해야 할 것으로 보였는데, 아마 카메라 설계자에게는 그렇게 안 보였을 것이다.

나는 인내심을 가지고 계속 작업에 임했다. 새로운 만트라(진언)가 나를 계속 작업케 했다. “캐논사의 프로그래머가 날 이기도록 가만 두고 있지 않을 거야”. 나는 결국 4주가 지난 늦은 밤, 168쪽짜리 매뉴얼을 독파한 뒤에야 사진을 컴퓨터로 전송할 수 있었다. 여기에는 오랜 시간과 질 나쁜 커피가 일등공신을 했다.

이러한 사례는 결코 드물지 않다. 윈도우 및 윈도우 응용프로그램은 항상 이런 종류의 정신이상을 불러온다. 커서들은 무작위로(그리고 수시로) 눈앞에서 사라지고(걔들 휴식 시간인가?), 아이콘은 내가 집어넣은 곳에 가만히 있질 않으며, 작업표시줄에는 내가 사용하지도 않을뿐더러 정체가 무엇인지 확인조차 안 되는 항목들만 잔뜩 생겨난다. 이들은 지금 눈앞에서 일어나는 현상이 무엇을 의미하는지, 내가 어떻게 해야 하는지, 다른 수단은 있는지 말해주지 않는다. 다음 단계를 완벽히 이해하기 위해서는 노력을 쏟아야 한다. 하지만 사람들은 이런 일에까지 굳이 노력을 들여 이해하고자 하지 않는다. 

몇 주 전인가 나는 새로운 조사도구를 활용하고자 했다. 새로운 것을 접하면 늘 그렇듯, 잘못된 계획과 어색하고 불편한 입력 과정을 거치며 모든 질문을 입력한 뒤에야 설문조사 항목을 미리 살펴볼 수 있었다. 미리보기 기능을 통해 본 문서는 그럴싸해 보였다. 특히 ‘기타 의견’을 작성할 수 있다는 점이 마음에 들었다. 나는 그것을 적용하고자 했다. 하지만 그들이 내게 보여준 것은 내가 연간 회원권을 구입하면 다양한 기능을 추가할 수 있음을 나타내는 안내뿐이었다(나는 연간 회원권을 구매한 적도, 구매할 계획도 없다). 이들이 제공한 미리보기는 단순한 호도나 기만을 넘어선 것으로, 명백한 거짓말이었다. 미리보기로 위장한 장사치의 외침에 지나지 않았던 것.

아이폰을 사용하면서도 비슷한 문제를 겪고 있다. 이 녀석은 전원을 켤 때마다 기기를 애플 아이클라우드에 연결시키려 하며, 이를 취소하면 웬 음악 서비스에 연결하려 듦으로써 나를 귀찮게 한다. 내 기기를 스스로 제어하겠다는 의사를 녀석이 거부하는 셈이다. 녀석은 대화상자를 통해 나를 기기가 원하는 것에 복종하도록 강제한다. 내 바람이 아닌, 기기의 바람 말이다. 

물론 내가 몇 가지 작업에 일정 시간을 할애하면 메시지 출력을 막을 수 있다. 하지만 왜 굳이 노력을 쏟아부어가며까지 내 작업방식을 여기에 맞추어 순응하고 따라야 하는가? 나는 최소 500회 이상 전원을 넣어보았고, 여기에 부가적으로 따라오는 쓸모없는 질문에 매번 ‘취소’를 눌러왔다. 예의가 있다면 이제 그만 좀 물어볼 때가 된 것 같다.

산업자동화 역시 예의바르고 공손한 편은 아니다(나쁘면 나빴지). 사용자가 모든 종류의 난해하고 불가사의한 용어를 이해하고 있기를 기대하고, 사용자가 이해할 수 없거나 실제로 관심을 갖지도 않는 것들에 묶어놓으며, 가능한 한 적은 정보를 제공한다. 

얼마 전에 나는 검사 패널에 두 개의 Modbus 온도 센서를 탑재했다. 작은 화면에 온도를 표시하는 것이 멋진 일일 거라고 생각했고, 모두가 알고 있을 법한 자동화 업체에서 산업용 장비를 구매했다. 하지만 나는 순진하게도 영어보다 Modbus 언어를 더 유창하게 구사할 수 있다고 믿었고, 15분이면 프로젝트를 완성할 수 있으리라 믿었다. 

반나절, 이틀, 일주일이 지나고, 그 이후로도 더 긴 시간이 흐르자, 지금까지 장비 구현에 투자했던 것보다 더 많은 시간을 잃고 싶지 않아졌다. 하지만 내가 백기를 든 것은 그 뒤로부터 다시 2주가 지나 회사의 기술지원팀에 다섯 차례 통화를 하고, 이들이 제공한 125페이지짜리 매뉴얼을 가지고 세부 연구(와 더 많은 질 나쁜 커피 흡입)를 한 뒤의 일이었다. 그 회사의 프로그래머는 내가 항복하기까지 수많은 구타를 이어갔다. 두 개의 Modbus 레지스터를 화면에 표시하는 것은 내 예상보다 지나치게 어려운 일이었다.

하지만 이런 식으로 해서는 안 되는 일이다. 전문적으로 제품을 개발하는 이들은 모두 전문가로 이루어진 공동체의 일원이다. 하지만 이들 중 일부는 고객을 ‘바보 사용자’로 여기고는 한다. 이는 원인과 전후사정을 막론하고 무조건적으로 잘못된 인식이다.

 

진실은 이렇다. 모든 소프트웨어 개발자들(물론 우리 회사의 직원들도 포함해서)은 지나치게 난해하고, 사용하기가 복잡하며, 이해하기 어렵고, 사용자를 고용인 내지는 종 취급하는 자동화 소프트웨어를 만들고 있다. 소프트웨어 개발자들은 사용자들이 그들의 규칙에 따르기를 원한다. 소프트웨어 이해에 노력을 기울이기를 바란다. 또한 많은 사용자들이 소프트웨어를 사용하기를 바란다. 이를 한 마디로 말하면 굉장히 무례한 생각이다.

그럼 예의 바르고 정중한 소프트웨어는 어떤 모습일까? 존 앨런 로빈슨과 마이클 코빙턴 그리고 앨런 쿠퍼는 이에 대한 다양한 생각을 펼치고 및 논의를 마친 바 있다. 나는 이들이 찾아낸 해답을 증류해 내 언어로 재확립할 것이다.

예의 바른 소프트웨어는 다음과 같은 사항으로 특징지어진다.

1. 나를 기억한다. 예의 바른 소프트웨어는 내가 사진을 찾을 때 작은 아이콘을 통해 미리보기를 하고 싶다는 것을, 문서를 찾을 때 문서에 대한 묘사나 기록을 보고 싶다는 것을 알고 있다. 예의 바른 소프트웨어는 나를, 그리고 내가 어떤 방식으로 작업하는 것을 좋아하는지를 기억한다. 예의 바른 카메라 소프트웨어는 내가 사진을 찍거나 동영상을 촬영할 때 촬영한 결과물을 즉시 보고 싶다는 것을 알고, 내게 해당하는 선택사항을 제시한다. 나는 동영상을 촬영할 때 10초 지연 타이머를 사용하는데, 프로그램이 이를 기억하면 내가 매번 설정을 다시 할 필요가 없다. 예의 바른 소프트웨어는 나에 대해 잘 이해하고, 내가 평소에 하는 작업들을 보다 간단하고 빠르게 실현할 수 있도록 도와준다.

2. 나를 신뢰한다. 파일을 삭제하거나, 작업을 시작하거나, 혹은 특정 작업과정을 불러오고자 할 때, 모든 과정마다 두세 번씩 재차 확인하는 것은 작업자에 대한 모욕이다. 나는 세 살배기가 아니다. 내 행동에 대한 결과를 되돌릴 수 없는 작업이 아닌 한, 프로그램은 내가 무슨 짓을 하는지 알고 있음을 신뢰해야 한다. 
아마존의 제프 베조스가 들려주는 좋은 이야기가 있다. 그는 그의 프로그래머들에게 “원클릭 구매 버튼을 달아주세요”라고 말했다. 프로그래머들은 구매 버튼을 누르면 ‘정말로 구입할 것인지’ 여부를 묻는 상자를 가지고 돌아왔다. 베조스는 그것을 보며 “원클릭이라는 말의 어떤 부분을 이해 못한 건가요?”라고 되물었다. 우리가 가지고 있는 문제 중 하나는 프로그래머가 사용자와 고객을 완전히 신뢰하지 못하고 있다는 점이다.

3. 거짓말을 하거나 궁금증을 남기지 않는다. 소프트웨어는 당신이 요청한 작업이 완료되었는지, 진행 중인지를 정직하게 말한다. 윈도우에서 응용프로그램을 클릭하면 구동 중인지 대기 중인지를 표시한다. 나는 아이콘을 클릭한 뒤 응답을 기다리기만 하면 된다. 내 카메라는 조각에 따라 즉각적으로 사진을 보여준다. 
보다 중요한 것은 나에게 거짓말을 해서는 안 된다는 것이다. 아까 언급했던, 기타 의견 상자를 추가하겠냐고 물었지만 실제로는 추가되지 않던 설문조사 소프트웨어처럼 말이다.

4. 나에게 제어권을 넘긴다. 즉, 내 스스로 제어할 수 있도록 한다. 아이폰 전원을 켜면 전화를 걸거나 문자메시지를 보낼 수 있다. 아이폰은 예의 바르게도 스스로(아이폰, 내지는 애플)의 욕망을 투사해 작업을 방해하는 일 없이 내가 원하는 기능을 완수한다.

5.작업을 단순화하고 업무 부하를 줄인다. 이러한 특징의 필요성은 조지아 대학교의 수업시간표 시스템에서 찾아볼 수 있다. 학생은 건물의 이름이 아닌 번호를 통해 수업 일정을 확인할 수 있다. 하지만 건물에는 번호가 아닌 이름이 적혀있고, 학생 역시 건물의 이름을 보게 된다. 이 대학에 다니는 신입생 및 편입생이 목적지의 이름을 찾기 위해서는 누구나 상호 참조 목록을 참고해야 한다. 학생들은 컴퓨터가 빠르고 정확하게 수행할 있는, 지루하고 오류가 일어나기 쉬운 작업을 강제로 수행한다. 이는 인간에 대한 예의가 아니다.

우리는 왜 무례한 소프트웨어를 가지고 활용해야 하는 것일까? 프로그래머 친구들에겐 송구하지만, 우리는 그저 프로그래머가 설계한 인터페이스를 따를 뿐이다. 프로그래머는 단 한 가지에 대해서만 생각한다. 코드가 그것이다. 어떤 언어를 사용할 것인지, 구조는 어떠한지, 코딩에 사용할 규칙은 어떤 것인지 등. 코드 구조를 최우선으로 생각하고, 그 다음 코드에 맞추어 사용자 인터페이스를 설계하는 식이다. 새 카메라로 촬영할 때마다 사용자가 직접 사진 보는 방식을 바꾸어야 하는 이유다. 

프로그래머에게 있어서 촬영과 확인이라는 두 가지 작업은 별개의 사건인 반면, 사용자인 내 입장에서는 하나로 이어진 영상 촬영 과정이다. 대부분의 프로그래머들은 이런 시야를 갖지 못한다.

나는 우리 모두가 스스로의 개발 활동 및 여기에 드는 노력을 재조직 및 재편성해야 한다고 주장한다. Real Time Automation에서는 게이트웨이 장비와 보관소(Archivers), 레시피 관리 도구 등을 만들고 있다. Real Time Automation에서는 새로운 공정을 시행했다. 기술자들은 더 이상 사용자 인터페이스를 제어 및 통제하지 않는다. 물론 이를 구현하는 것은 기술자들의 몫이지만, 이를 설계하는 것은 근본적인 코드 구현 및 작동을 염려하는 것이 아닌, 사용자 및 사용자가 작동하는 방식에 대해 생각하는 이들이다. 

Real Time Automation에서는 2015년에도 소프트웨어가 사용자를 존중하고 예의를 갖춘 소프트웨어를 만들기 위해 노력하고 있다. 사용자(물론 당신이 될 수도 있다)는 2015년에 출품하는 Real Time Automation의 제품이 이러한 측면을 얼마나 잘 달성했는지 판단하게 된다. 당신이 정중하고 예의 바른 소프트웨어와 함께 작업할 수 있기를 바란다.

 

주요기사
이슈포토