Joel on Software

Joel on Software 조엘 온 소프트웨어

 

프로그래머를 위한 사용자 인터페이스 설계론
제1부
제2부
제3부
제4부
제5부
제6부
제7부
제8부
제9부

한글로된 다른 "Joel on Software" 글들

영어로된 다른 "Joel on Software" 글들

필자 메일주소(영어만 사용)

 

프로그래머를 위한 사용자 인터페이스 설계론
제9부: 제품 제작 절차


글 : Joel Spolsky
번역 : AhnLab
2000년 5월 9일 화요일

지금까지 좋은 설계의 원칙에 대해 이야기하였다. 그러나 이것은 모두 기존 설계를 평가하고 향상시키기 위한 방법을 제시해 주는 것들이다. 그렇다면 도대체 처음에는 어떻게 설계를 해야 하는가? 대부분의 사람들은 생각할 있는 모든 기능 특성에 대한 그림을 그리는 것이 우선이라고 한다. 그리고 나서 각각 세부적인 것을 설계하고 메뉴 아이템(또는 페이지)에서 제거하는 하는 단계를 거친다. 작업이 완성되면 프로그램 (또는 사이트) 원하는 모든 기능을 갖게 된다. 그러나 이는 옳은 절차가 아니다. 사용자들은 그러한 프로그램이 무엇을 하는지, 어떠한 방법으로 자신이 원하는 것을 성취할 있도록 하는지 알지 못한다.


마이크로소프트는 활동 기반의 기획 (Activity Based Planning)이라는 해결책을 소개하였다 (내가 아는 , 개념은 엑셀 팀의 Mike Conte 고안해 내었다. 자신의 직업에 싫증을 느낀 그는 지금은 2 직업인 카레이서로서 활동하고 있다). 중요한 것은 사용자의 활동 이해하고 이러한 활동을 쉽게 달성할 있도록 하는 초점을 맞추는 것이다. 이는 다음에서 자세하게 설명되고 있다.


각종 카드를 만들 있는 사이트를 제작하기로 했다고 가정하다. 일종의 순진한 접근 방법을 사용해 다음과 같은 특성 목록을 만들 있었다.

  

1. 텍스트를 카드에 첨가
2.
그림을 카드에 참가

3. 자료실에 미리 디자인된 카드를 사용
4.
카드 보내기:
      a.
이메일로 보내기
      b.
출력하기



문제를 생각할 있는 좋은 방법이 없는 관계로 일반적인 매킨토시 사용자 인터페이스인 circa-1984 기본으로 하기로 했다. 프로그램은 카드를 보여주고, 메뉴에서 텍스트 삽입, 그림 삽입, 자료실 카드 받기, 카드 보내기 등을 선택할 있다. 사용자가 해야 하는 일은 컴퓨터 앞에 앉아 메뉴를 오고 가며 사용되는 모든 명령어를 이해하고, 어떻게 하면 이런 개별 명령어를 사용하여 카드를 만들 있는지를 알아내는 것이다.

활동에 기반을 기획에서 디자이너는 사용자가 취할 있는 일련의 행위를 생각해 필요가 있다. 가상의 사용자를 고려해 , 가장 중요한 “3가지 떠올릴 있다.

  1. 생일 카드
  2. 초대 카드
  3. 기념일 축하 카드

프로그래머의 입장에서 자신의 프로그램을 보는 것이 아니라 (카드를 만들기 위해 어떤 기능들이 필요한가를 생각하는데 있어서), 사용자가 어떠한 행위를 취할 것인가를 사용자의 입장에서 생각해 보라.

  1. 생일 카드 발송
  2. 파티 계획 손님 초대
  3. 기념일 축하 카드 발송

갑자기 온갖종류의 생각이 물밀듯이 떠오를 것이다. 아무 것도 없는 백지 카드로 시작하는 것이 아니라 다음과 같은 메뉴로 시작할 수도 있을 것이다.


무엇을 하고 싶으세요?

  • 생일카드 발송
  • 기념일 카드 발송
  • 파티 초대 카드 발송
  • 스스로 꾸미기

메뉴를 뒤질 필요가 없기 때문에 갑자기 사용자는 프로그램을 사용하는 것이 훨씬 쉽게 느껴질 것이다. 프로그램이 사용자를 여러 단계를 거치도록 유도함으로써 행위를 완성시킬 있다 (사용자의 행위를 제대로 선정하지 못한 경우, 오히려 프로그램을 사용할 있는 사용자들을 혼란 시킬 있다. 예를 들어 하누카 (유대인 명절) 카드를 보내려고 하나 선택사항에 없을 있다. 따라서 목표하고자 하는 시장의 대부분을 커버할 있는 활동을 선택하는 주의를 기울여야 한다).


3가지 행위의 리스트에서는 프로그래머가 추가를 원할 있는 좋은 기능들이 있다. 예를 들어, 만약 생일 카드나 기념일 축하 카드를 보낼 경우 내년에도 동일한 사람에게 카드를 보낼 있도록 상기시켜 주는 기능을 갖고 싶을 있다. 따라서 내년에 알림 기능 체크 박스에 추가할 있다. 파티 초대 카드는 RSVP (참석 여부를 알려주세요) 추가할 필요가 있다. 따라서 사람들로부터 RSVP 전자 메일로 수집할 있는 기능을 추가할 있다. 이러한 기능에 대한 아이디어는 애플리케이션이 지원하는 기능이 아니라 사용자가 수행하는 행동을 관찰한 결과