Norman(1983a)
연구로부터 유도된 결론들
- 모드 오류의 존재는 더 나은 피드백을 제공할 필요가 있음을 시사한다
- 설명 오류의 존재는 더 나은 시스템 설정의 필요성을 시사한다
- 일관성의 부재가 오류로 이어진다
- 캡처 오류의 존재는 겹치는 조작 방식을 피해야 함을 시사한다
- 활성화 문제는 기억을 도와주는 장치의 중요성을 시사한다
- 사람들은 오류를 범할 것이다. 따라서 시스템은 오류에 민감하지 않도록 설계되어야 한다.
교훈들
피드백
시스템의 상태가 사용자에게 명확히 제공되어야 한다. 모호하지 않게 또 현재 가능한 모든 옵션이 나타나도록 하여 사용자들이 모드 오류를 범하지 않도록 하는 것이 가장 이상적이다
반응 시퀀스의 유사성
서로 다른 종류의 행위는 서로 다른 실행 방법으로 실행되어야 캡쳐 오류 및 설명 오류를 피할 수 있다.
수행된 명령을 되돌릴 수 있어야 한다
가능하다면 수행된 명령을 되돌릴 수 있어야 한다. 되돌릴 수 없거나 상대적으로 중요한 명령이라면 의도치 않게 수행하는 것을 방지하기 위해 수행하기 어렵게 설계되어야 한다.
시스템의 일관성
시스템은 그 구조와 명령의 설계에 있어서 일관성을 가져야 한다. 이를 통해 조작법을 기억하는 데에서 오는 문제를 최소화할 수 있다.
Shneiderman(1987); Shneiderman and Plaisant(2009)
- 일관성을 추구하라
- 유니버설 사용성을 추구하라
- 정보가치가 있는 피드백을 제공하라
- 과업 흐름에 완결성을 부여하라
- 오류를 방지하라
- 수행했던 명령을 쉽게 취소할 수 있어야 한다
- 사용자에게 제어권이 있다고 느끼게 하라
- 단기 기억 부담을 최소화하라
Nielsen and Molich(1990)
- 일관성과 표준
- 시스템 상태의 가시성
- 시스템과 실제 세상과의 일치
- 사용자의 제어권과 자유
- 오류 방지
- 회상보다는 인식
- 사용의 유연성과 효율성
- 미학성과 최소한의 디자인
- 사용자가 오류를 인식하고 진단하고 복수할 수 있도록 도울 것
- 온라인 문서와 도움말을 제공할 것
Stone et al.(2005)
- 가시성: 목표를 향한 첫 단계가 명확히 보일 것
- 어포던스: 각 컨트롤이 스스로의 사용법을 잘 드러낼 것
- 피드백: 무슨 일이 일어났는지 혹은 일어나고 있는지 명확히 보여줄 것
- 단순성: 되도록 단순할 것, 그리고 과업에 집중할 수 있도록 할 것
- 구조: 콘텐츠가 합리적으로 구성되어 있을 것
- 일관성: 예측 가능성을 위한 유사성
- 감내: 오류 방지, 오류 발생 시 복구를 도울 것
- 접근성: 장애 여햐, 사용하는 장치, 환경적 조건 등과 무관하게 의도했던 모든 사용자 군이 사용할 수 있을 것
Johnson(2007)
1. 기술이 아니라 사용자와 사용자의 과업에 집중할 것
- 사용자를 이해하라
- 과업을 이해하라
- 소프트웨어가 쓰일 맥락을 고려하라
2. 기능 먼저, 표현은 나중
- 개념 모델을 만들 것
3. 과업에 대한 사용자의 관점에 맞출 것
- 자연스러움을 추구하라
- 당신의 언어가 아닌 사용자의 언어를 사용하라
- 프로그램의 내부가 드러나지 않도록 하라
- 기능과 복잡성 사이의 적절한 타협점을 찾을 것
4. 일반적인 상황에 맞춰 디자인할 것
- 가장 일반적인 작업이 쉽게 수행될 수 있도록 할 것
- 두 종류의 ‘일반적인’ 것이 존재한다: 많은 사람이 쓰는 것, 자주 쓰는 것
- 특이한 사례보다는 핵심적인 사례에 맞춰 디자인할 것
5. 사용자의 과업을 복잡하게 만들지 말 것
- 사용자에게 추가적인 문제를 제시하지 말 것
- 사용자가 제거에 의한 추론을 하도록 하지 말 것
6. 학습을 유도할 것
- 안에서-밖으로 가 아니라 밖에서-안으로 생각하기
- 일관성, 일관성, 일관성
- 위험성 낮은 환경을 제공할 것
7. 그저 데이터가 아닌 정보를 제공할 것
- 전문가의 도움을 얻어서 정보를 잘 표현할 것
- 화면 영역은 사용자의 것이다
- 디스플레이 관성을 유지할 것
8. 반응성 있는 디자인
- 사용자의 명령에 즉시 반응할 것
- 소프트웨어가 다른 일을 수행하느라 바쁜 상황과 그렇지 않은 상황을 사용자가 알 수 있도록 할 것
- 사용자가 기다리는 동안 다른 일을 할 수 있도록 허용할 것
- 움직임은 부드럽고 명확하게 표현할 것
- 오래 걸리는 작업이 있을 때 사용자가 언제든지 취소할 수 있도록 할 것
- 사용자가 작업에 걸리는 시간을 추정할 수 있도록 할 것
- 사용자가 자신의 작업 속도에 맞춰 작업할 수 있도록 할 것
9. 사용자를 대상으로 테스트하고 수정하기
- 테스트 결과를 보면 숙련된 디자이너도 놀랄 수 있음
- 테스트를 통해 밝혀진 문제를 고칠 수 있는 시간을 배정하여 일정을 잡을 것
- 테스트의 두 가지 목적: 정보성, 사회성
- 언제 어떤 목적에서든지, 적 잘한 테스트는 존재한다
출처: 마음을 생각하는 디자인, 제프 존슨 저 / 강규영 역