2014년 8월 19일 화요일

Human error & UX tips








리즌(Reason, 1990)의 스위스 치즈 모델 

시스템에 문제가 발생했을 때 
직접적인 원인은 시스템 운영자의 오류
그 배경에는 오류를 발생시킬 수 밖에 없는 요소들이 잠재해 있고 
그러한 행동의 전제 조건, 부적절한 문화, 조직의 영향 등이 있어 
단순히 하나의 요인에 의해 사고가 발생하는 경우는 드물고
대부분 다양한 요인이 복합되어 사고가 발생한다.

이를 오류 체인(chain of error)이라고 한다.
이런 오류와 결함으로 연결된 고리가 완성되어 
사고로 이어지기 전에 그와 같은 요인들이 어떠한 것인지 파악하고
인간의 인지 과정의 한계를 고려하여 
인적 오류를 제거하거나 회피하는 설계를 해야 한다.

위큰스와 홀랜즈의 인간의 정보 처리 과정(2000) 

- ERROR CASES

   1. 실수(slip) 

    - 의도하지 않은 행동임
    숙련된 동작에서 발생
    - 조작(올바른 절차 실행)에 실패
    - 인지 과정에서 주의력 부족이나 지나친 주의에 의해 발생

  • capture slip

        - 특정 동작을 반복적으로 하면 다른 행위를 할때에도 familiar한 동작 방식을 수행
          예1) 집에서 나와 가려한 곳이 아닌, 학교 쪽으로 향하는 자신을 발견했을 때


  • description slip

       - 두가지 동작이 매우 유사할 때
          예1) 시리얼 오렌지 주스를 부을 때
          예2) 병 뚜껑을 다른 병에 씌울 때,
          예3) 셔츠를 바구니 대신 변기에 던질 때


   2. 건망증(lapse) : 단순한 기억 실패

    - 의도하지 않은 행동임
    - 숙련된 동작에서 발생
    - 절차 실행 과정에서 발생
    - 실수보다 확인하기 어려움, 내면적이라 더 위험, 완료 후 추가 점검이 불필요하다고 생각할 때 악화

  •    의도 상실

       수행하는 중간에 목표를 잊어버렸을 경우
          예) 다른 방에 가서 왜 이 방에 왔는지 잊어 버렸을 때

  •    방해 요소로 인한 누락

       방해 요소로 인해 단기 기억 메모리에 지장을 받은 경우
          예) 코트를 입고 나가려는데, 전화가 와서 그냥 나갈 때

  • 중간 목표 달성으로 인한 누락

       수행하는 중간에 일부 목표를 달성하여 나머지 task를 잊어버린 경우
          예1) 카드없이 ATM기로 향할 때
          예2) 원본없이 복사기로 향할 때


   3. 착오(mistake)

    - (의도적으로) 목표에 부적절한 행동임
    - 규칙이 있는 행동, 문제 해결 방식에서 발생

   4. 모드 에러(Mode Error) : UI 문제로 발생하는 오류 

    - 사용자가 예상한 action이 아닌 결과가 발생한 경우
    - 인터페이스의 상태에 대해 정확하게 알려주지 못해 실수(slip)를 유발한 경우

         예1) Vi’s insert mode vs. command mode
         예2) Caps Lock (소문자로 쓰려고 했는데 알고보니 대문자)
         예3) Drawing palette

   5. 인간의 오류 일반적인 특징 

       • 주의 부족이나 부적절한 주의
         - 익숙한 action에서 자주 발생하고, 중요한 순간에 누락, 주의 산만한 경우
         - 실수 혹은 건망증임. 착오(mistake)는 아님


       • “Strong-but-wrong” 효과

         - 맞는 action과 유사해서  실수하는 경우 (capture slip / description slip)
         - 사용 빈도가 높은 action과 관련되어 실수하는 경우 (capture slip)


- 에러 방지 방법


1. Capture and Description Slips 

- 습관적인 action 시퀀스에 동일한 접두사를 피하라. (유사한 action 문구 사용 X)
- 비슷한 설명의 action은 피하라.
- 위험한 action은 일반적인 것과 멀리 배치하라.


2. 모드 에러(Mode Error)

- 모드를 제거하라.
- 모드의 가시성을 높여라.
- 스프링식(Drag-and drop), 혹은, 임시(네모 상자 그릴때 마우스 한번의 gesture로 생성 완료)적으로 모드를 제공하라.
- 각 모드 별 action을 동일하게 만들지 말고 명확히 다른 action으로 하라. 
  (잘못된 action을 하더라도 무시하지, 오동작은 안하니까..)


3. 건망증(lapse) 

- 절차는 간단하게 ("처음-중간-끝" 처럼 각 과정을 명확하게 보여줘야 함)
- 방해요소는 최소화
- 사용 강제 기능 제공 (목표한 action을 수행하기 위해 강제로 한 step 추가)
  예) ATM기에서 카드 먼저 뽑아야 돈 나오게 함

4. 그밖에 에러 방지 rules

- 사용할수 없는 기능 disable(grayed out)
- menus & forms 사용, 명령 언어는  X (직접 입력이 아니라 선택할 수 있게 함)
모든 필요한 정보를 볼 수 있어야 함
- text box말고 combo box를 사용 (정확한 선택지를 제공해야 함)
사용자가 진행중인 작업 보호 (자동 저장, undo 등)
- confirmation dialog 제공 (“Are you sure?”)

5. Error Message 작성 tip

- 무엇이 문제인지 정확하게 알려줘야 함
- 사용자가 입력한 것을 다시 고쳐서 말해줘야 함
- 사용자의 언어로 말하고 기술적인 디테일은 사용자가 묻기 전까지 숨겨야 함
- 오류가 발생한 이유와 해결방법까지 건설적이어야 함 
- 공손하고 비난하지 않아야 함
- 일반적인, 중립적인 단어를 사용해야 함 (“fatal”, “illegal”, “abort”, etc. Avoid them.)






댓글 없음:

댓글 쓰기