12. 6. 27.

기획 = 병렬처리시스템의 디자인

@arangyi님의 아래와 같은 트윗을 읽고 씁니다:

UI의 모든 문제는 단 하나의 근본 문제로 귀결된다. 제한된 자원의 배분 문제이다. 스마트폰의 스크린, 사용자의 주의력과 시간 등 시간,공간,능력이든 제한된 자원을 누구를 위하여 어떻게 배분할건가하는 문제다.

훌륭한 통찰이라고 생각합니다. Larry Tesler의 복잡성보존법칙 (Law of the Conservation of Complexity) 과도 통하는 면이 있는 것 같고요. Designing for Interaction 2nd ed.에서 인용하자면 이렇습니다(국내에는 “인터랙션 디자인”으로 번역. 3월 중 2판에 대한 번역서가 나올 예정인 것 같습니다):

Larry Tesler, one of the pioneers of interaction design, coined Tesler’s Law of the Conservation of Complexity, which states that some complexity is inherent in every process. There is a point beyond which you can’t simplify the process any further; you can only move the inherent complexity from one place to another. –p136

@arangyi님의 통찰은 편의상 최적자원분배이론 (Arangyi’s Optimal Resource Distribution Theory) 이라고 (제맘대로) 부르겠습니다 ㅋㅋ

최적자원분배이론과 복잡성보존법칙을 합쳐보면 대충 이렇게 이야기할 수 있을 것 같습니다.

디자인(기획을 포함하는 넓은 의미)이란?
모든 프로세스에는 더 이상 제거할 수 없는 내제된 복잡성이 존재하는데, 이를 해당 프로세스에 관여하는 여러 엔티티(네트워크를 이룬 컴퓨터들과 네트워크를 이룬 인간들)의 제한된 자원(메모리,CPU,기억,인지,주의, 각 엔티티 간 정보전달채널의 지연,대역폭,정확성 등)에 어떻게 하면 가장 효율적으로 분배할 것인지를 고민하는 것


이 관점은 여러가지 함의를 갖습니다. 이를테면 다음과 같은 여러가지 사고방식을 잘 담아낼 수 있습니다:

- 정보시각화를 할 때 인간과 컴퓨터를 단일 시스템으로 보는 관점

- 시간 경험의 기획(컴퓨터가 인간에게 mental operation을 수행할 뭔가를 일부 던져준 다음에 나머지 연산을 수행하면 인간,컴퓨터 모두의 입장에서 대기시간이 줄어들어 더 효율적 병렬처리가 일어난다거나)

- SNS 기획할 때 서비스에서 계산하고 저장하고 상기시켜줘야 할 것과 사용자 혹은 사용자 간의 관계에 저장(기억)되어 있고 알아서들 머리속으로 계산하고 있는 것을 구분한다거나

- 혼잡 지역의 물가를 올리는 등의 방식으로 서버측 load-balancing이 저절로 일어나게 한다거나

- 서버측 메시징이 MoM으로 되어 있으면 사용자에게 드러내는 컨셉도 이와 맞춰서 우편량이 많으면 우편 전달에 시간 지연이 생길 수 있는 것으로 해버린다거나(이는 단점이 아니라 오히려 전략/전술적 재미요소가 될 수도 있죠)


한편 현실은?

- 컴퓨터(혹은 기타 인공물)의 효율성(이를테면 메모리, CPU 최적화)은 주로 엔지니어가 고민합니다.

- 컴퓨터가 (주로 모니터를 통해) 내보내는 신호가 인간의 시지각을 통해 얼마나 효율적으로 수용될 수 있는지는 주로 비주얼 디자이너 및 기획자가 고민합니다(고민해야 하는데 사실은 그나마도 별로 안 하죠. 게슈탈트 심리학이니, 인간의 시지각이니 하는 것들은 그저 학교에서 잠깐 배운 옛날 얘기로 간주하고 이미 기억에서 사라진지 오래).

- 인간이 뭘 잘하는지, 뭘 못하는지, 인간 기억의 특성이 어떠한지, 재인과 회상이 어떻게 다른지, 인간의 주의는 어떻게 작동하는지 등 인간 기억과 사고의 효율성은 주로 기획자가 고민합니다(이것도 마찬가지로 고민해야 하는데 사실 별로 안하죠. Georgy Miller의 Magic Number 7 이상으로 알고 있을 것으로 기대하는 것은 무리).

- 대부분의 온라인 게임/서비스는 컴퓨터 네트워크+인간 네트워크로 구성한 하나의 거대한 병렬 시스템일텐데, 이 전체 시스템에 대한 병렬 설계를 하는 사람은 아예 아무도 없습니다.

직군 간 경계를 주요 기준으로 업무 모듈화가 되는 바람에 나머지 문제들이 여기저기에 분산(주요 Decomposition의 횡포)되어 숨어 버린 것 같아요. 이걸 챙겨보겠다는 접근 중 하나가 사용자 경험 디자인(UXD)일텐데요, 전산이나 소프트웨어 공학에서 얻어올 것들이 많다고 생각합니다. 이런 의미에서 저는 UXD에 관심을 갖는 분들께 Designing Thinking 보다는 Computational Thinking을 강조하고 싶습니다. 얼마전에 N모사 CEO께서 “전 직원이 프로그래밍을 할 수 있으면 좋겠다”고 하셨을 때 다른 이유보다도 이런 사고 방식에 익숙해지기 위한 훈련으로써의 프로그래밍이라는 측면을 좀 더 강조해주면 좋겠다는 생각을 했더랬죠.

출처 : http://alankang.tistory.com/

댓글 없음:

댓글 쓰기