피드백 vs. 처리 속도

언제 피드백을 해야 할까?

일을 지시 받고 나서 어떻게 진행되고 있는지 지시한 사람에게 피드백을 한다. 얼마나 자주, 얼마나 빨리, 언제 피드백을 해야 할까?

사람이 지각할 수 있는 범위 내에서 대~충 적당~히 피드백을 해야 하고, 사람마다 다른 지각의 시간을 파악하는 것도 중요한 것 같다.

일을 하고 있는지, 일이 뭐가 안되서 못하고 있는지,, 과정이 있는데 결과가 나왔을때 툭 하고 던져주는 방식은 그리 좋은 것은 아닌 것 같다. 보통 중간 피드백 같은 하라고 선배들이 말한다.

6개월 짜리 일, 3개월 짜리 일, 1주일 짜리 일, 하루 짜리 일, 당장 할일 등등의 소요 시간과 일의 난이도, 시급도에 따라서 피드백은 타이밍과 내용은 달려져야 할 것 같다.

별로 급하지 않고 당장 끝낼 수 있는 일에 대해 “지금 컴퓨터 켰고, 로그인 하고 있구요… ” 등등을 얘기할 필요가 없다. 대신 겁나 급하면 이런 피드백이 필요할 수도 있을 것이지만 말이다.

피드백을 하기 위해 준비하고 얘기하는 것 보다, 그 시간에 일을 해서 더 빨리 끝내는 것이 좋을까?

답은 그때 그때 달라요~

위에서 애기한 대로 소요시간, 시급도, 난이도에 따라서 달라질 것이다.

그러나 이런 것의 기준은 일의 지시를 하는 사람의 지각하는 관점에서 판단하는 것이 어떨까 싶다.

직장에서 일을 하면서 이런 것들을 깨닫거나 선배에게서 배우는데,  소프트웨의 UI 도 별 다르지 않은 것 같다.

progressbar

어젯밤에 배치로 돌아가는 처리를 하는 프로그램을 짜는데, 사용자가 멍 하니 기다리지 않게 프로그래스 바를 보여주는 부분을 만들었다.   UI 의 기본 원칙 중의 하나인 “사용자 피드백” 이라는 곳 말이다.

처리하는 루틴이 메인쓰레드에서 비동기적으로 돌아가는 부분이 있어 프로그래스 바를 보여주는 방법을 못 찾다가  몇일 만에 방법을 찾았다.( iOS 에서 동시 처리 할때  UI 변경은 메인쓰레드로 해야 한다고 한다)

진행상태 바를 보여주기 위해 그 부분만 어쩔 수 없이 메인쓰레드로 동기화로 처리 했더니 전체 처리속도가 느려졌다.

 

프로그래스 바를 보여주지 말고 그냥 빨리 처리할까? 아님 사용자가 언제 끝날지 그냥 기다리게 할까?

딱 위의 일을 할때의 질문과도 같다.

해결책은?

사용자/인간 중심 디자인을 하는 사람의 중요한 관점인 “만든 사람이 아니라 사용하는  사용자 입장, 그것도  지각하는  인간” 입장에서 그 정도를 판단해 보기로 했다.

명령을 실행시키고 나서 사람이 어느 정도의 시간이면 진행상황을 보지 않고도  끝나도 되는지, 아니면 진행상황을 있어야 하는지 말이다.

데이타가 많은 상태에서 시간 측정 루틴을 만들어서 돌려 봤다. 버튼을 누르고 폰을 보았다.

——————————————————————————-

디바이스      |  소요시간: 진행바 표시 X  | 소요시간: 진행바 표시 O

——————————————————————————-

아이폰 4       |         2분 52초                        |              3분 8초

아이폰 5       |              28초                          |                 32초

———————————————————————————-

몇번 헤 보았다.  그 시간을 느끼면서.. ^^

아이폰 5 , 역시 빠르구나^^

5초만 넘어도 뭐 하고 있는지 답답해서 2분 52초건, 3분 8초건 같았다. 답답했다!

28초 라고 하더라도 지각하는 기다리는 시간은 길었다 . 진행 바를 안보여주면 4초 더 빨리 끝나기는 했지만, 진행 바를 보는 것이 심리적으로 더  좋았다. 거기에 전체 처리해야할 숫자 중에서 지금 처리된 숫자들의 누적을 보여주니, 그냥 보고 있어도 지루하지는 않았다.

결론은 피드백을 주기 위해서 조금 느리더라고, 폰에서 작업 처리 시간이 좀 길면 (대충 5초 이상이 아닐까?) 진행상태바를 보여주는 것이 좋을 것 같았다.

 

이전에는 프로그래스바와 같은 것은 메인쓰레드이기는 해도 비동기적으로 돌렸는데, 이번의 경우에는 작업 자체가 애플에서 메인쓰레드로 비동기적으로 돌게 하는 함수라서 어쩔 수 없이 상태 바 표시를 비동기에서 동기로 바꿨다.

이 보다 더 좋은 방법은 한번에 전부 배치를 하지않고, 사용자의 태스크에 영향이 없다면 필요할때마다 처리를 하는 것이다. 근데 난 아직 그 정도로 할 만한 태스크는 아니라고 생각했고 이건 딱 한번만 하면 되기도 하고…

 

소프트웨어도 사람 처럼 피드백을 주기 위해서도 리소스를 쓰게 되는 것 같다.

피드백 이라는 것은, 비단 소프트웨어 UI 에서 뿐만 아니라  일 할때에도 비슷 한 것 같고.

언제, 얼마나 자주, 어떤 피드백을 해야 하는지에 대한 한가지 답은 없고, 일의 중요성,난이도, 소요시간, 시급도, 일을 주는 사람의 스타일 등등에 따라서 그때 그때 대~충 정확히 결정하는 것 같다.

대신 여기에 객관적이지 못하고 지각하고 주관적이고 심리적인 시간이 있는 인간인 사용자/보쓰 입장에서 판단하는 것이 추가되면 좋을 것 같다.

인간인 사람들은 심리적인 시간이 있으니 말이다.

 

Related Post







Scroll Up