[user-interface] 일부 개발자에게 좋은 UI 디자인이 왜 그렇게 어려운가요? [닫은]

우리 중 일부는 UI 디자인의 부드러운 측면 ( 특히 나 자신 ) 으로 어려움을 겪고 있습니다. “백엔드 코더”는 비즈니스 로직 및 데이터 계층 만 설계 할 운명입니까? 유쾌하고 유용한 프리젠 테이션 레이어를보다 효과적으로 디자인하기 위해 재교육 하기 위해 할 수있는 일이 있습니까?

동료는 나를 포함한 몇 가지 책을 추천 한 사이트의 디자인을 , 나를 생각하지 마십시오왜 소프트웨어는 짜증 ,하지만 난 다른 사람들이이 지역에서 자신의 결함을 제거하기 위해 무엇을했는지 궁금?



답변

직접 말하겠습니다 :

이를 개선하는 것은 지침으로 시작하지 않습니다. 소프트웨어에 대한 생각을 재구성하는 것으로 시작합니다.

대부분의 하드 코어 개발자들은 거의가 제로 자신의 소프트웨어의 사용자와 공감을. 사용자의 생각, 사용자가 사용하는 소프트웨어 모델을 작성하는 방법 및 컴퓨터를 일반적으로 사용하는 방법에 대한 실마리없습니다 .

전문가가 평신도와 충돌 할 때 나타나는 전형적인 문제는 다음과 같습니다. 일반인이 어떻게 10 년 전에 전문가가 이해 한 것을 이해하지 못하는 것이 어리석은 것일까 요?

거의 모든 숙련 된 개발자가 파악하기 어려운 사실을 인정하는 첫 번째 사실 중 하나는 다음과 같습니다.

평범한 사람들은 소프트웨어와 개념이 크게 다릅니다. 그들은 프로그래밍의 실마리가 없습니다. 없음 제로. 그리고 그들은 신경 쓰지 않습니다. 그들은 신경 써야한다고 생각하지도 않습니다. 강제로 실행하면 프로그램이 삭제됩니다.

이제는 개발자에게는 믿을 수 없을 정도로 가혹합니다. 그는 자신이 생산 한 소프트웨어를 자랑스럽게 생각합니다. 그는 모든 단일 기능을 좋아합니다. 그는 코드의 작동 방식을 정확하게 알려줄 수 있습니다. 어쩌면 그는 이전보다 50 % 더 빠르게 작동하는 믿을 수없는 영리한 알고리즘을 발명했을 수도 있습니다.

그리고 사용자는 신경 쓰지 않습니다.

이런 멍청이 같으니라고.

많은 개발자가 일반 사용자와 함께 일할 수 없습니다. 그들은 존재하지 않는 기술 지식에 의해 우울해집니다. 그렇기 때문에 대부분의 개발자는 부끄러워하고 사용자는 바보라고 생각합니다.

그들은 아닙니다.

소프트웨어 개발자가 자동차를 구입하면 자동차가 원활하게 작동 할 것으로 기대합니다. 그는 일반적으로 타이어 압력, 그런 식으로 작동시키는 데 중요한 기계적 미세 조정에 관심이 없습니다. 여기서 그는 전문가 가 아닙니다 . 그리고 미세 조정이없는 자동차를 사면 다시 돌려주고 원하는 것을하는 자동차를 구입합니다.

영화를 좋아하는 많은 소프트웨어 개발자. 상상력을 자극하는 영화. 그러나 영화 제작, 시각 효과 제작 또는 훌륭한 영화 스크립트 작성 전문가는 아닙니다. 대부분의 얼간이는 복잡한 감정을 표시하고 분석에 거의 영향을 미치지 않기 때문에 행동에 매우 좋지 않습니다. 개발자가 나쁜 영화를 본다면 영화 전체가 나쁘다는 것을 알게됩니다. 얼간이는 IMDB를 구축하여 좋은 영화와 나쁜 영화에 대한 정보를 수집하여 어떤 영화를보고 피해야하는지 알 수 있습니다. 그러나 그들은 영화 제작 전문가가 아닙니다. 영화가 나쁘면 영화에 가지 않거나 BitTorrent에서 다운로드하지 않습니다.

전문가로 일반 사용자를 줄이는 것은 무지입니다. 전문가가 아닌 분야 (그리고 너무 많은 분야)에서 그들은 다른 분야의 전문가들이 그들의 제품이나 서비스를 사용하는 일반인에 대해 이미 생각했을 것으로 기대합니다.

이를 해결하기 위해 무엇을 할 수 있습니까? 프로그래머로서 하드 코어가 많을수록 일반적인 사용자의 생각에 덜 개방적입니다. 그것은 외계인이며 당신에게 실마리가 아닙니다. 당신은 생각할 것이다 : 나는 사람들이 수 있는지 상상할 수없는 지식의 부족으로 컴퓨터를 사용합니다. 그러나 그들은 할 수 있습니다. 모든 UI 요소에 대해 다음을 고려하십시오. 사용자가 내 도구에 가지고있는 개념에 맞습니까? 어떻게 그를 이해할 수 있습니까? 이것에 대한 유용성을 읽어보십시오. 좋은 책이 많이 있습니다. 과학의 전체 영역이기도합니다.

아, 그리고 말하기 전에, 나는 애플 팬입니다.)


답변

UI 디자인 어렵다

질문에 :

대부분의 개발자에게 UI 디자인이 왜 그렇게 어려운가요?

반대의 질문을 해보세요 :

대부분의 UI 디자이너 에게는 왜 프로그래밍 이 어려운 가요?

UI를 코딩하고 UI를 디자인하려면 다른 기술과 사고 방식이 필요합니다. UI 디자인은 코드를 작성하는 것이 일부 디자이너가 아닌 대부분의 디자이너에게 어려운 것처럼 일부 개발자가 아닌 대부분의 개발자 에게는 어렵다 .

코딩이 어렵다. 디자인도 어렵다. 둘 다 잘하는 사람은 거의 없습니다. 훌륭한 UI 디자이너는 거의 코드를 작성하지 않습니다. 그들은 방법을 알지 못하지만 여전히 훌륭한 디자이너입니다. 그렇다면 왜 훌륭한 개발자가 UI 디자인을 책임 져야합니까?

UI 디자인에 대해 더 많이 알고 있으면 더 나은 개발자가되지만 UI 디자인을 책임 져야한다는 의미는 아닙니다. 코드를 작성하는 방법을 알면 더 나은 디자이너가 될 수 있지만 UI 코딩을 책임 져야한다는 의미는 아닙니다.

UI 디자인을 향상시키는 방법

UI 디자인을 향상시키고 자하는 개발자에게는 3 가지 기본 조언이 있습니다.

  1. 디자인을 별도의 기술로 인식합니다 . 코딩과 디자인은 별개이지만 관련이 있습니다. UI 디자인은 코딩의 하위 집합이 아닙니다. 다른 사고 방식, 지식 기반 및 기술 그룹이 필요합니다. UI 디자인에 중점을 둔 사람들이 있습니다.
  2. 디자인에 대해 알아보십시오 . 적어도 조금은 요 아래의 긴 목록에서 몇 가지 디자인 개념과 기술을 배우십시오. 좀 더 야심이 있다면, 책을 읽고, 회의에 참석하고, 수업을 듣고, 학위를 받으십시오. 디자인을 배우는 방법에는 여러 가지가 있습니다. UI 디자인에 대한 Joel Spolky의 책 은 개발자에게 좋은 입문서이지만 더 많은 내용이 있으며 디자이너가 그림을 찾는 곳입니다.
  3. 디자이너와 협력하십시오 . 당신이 할 수 있다면 좋은 디자이너. 이 작업을 수행하는 사람들은 다양한 제목으로 이동합니다. 오늘날 가장 일반적인 제목은 UXD (User Experience Designer), IA (Information Architect), ID (Interaction Designer) 및 유용성 엔지니어입니다. 코드에 대한 생각만큼 디자인에 대해서도 생각합니다. 당신은 그들에게서 많은 것을 배울 수 있고 그들은 당신에게서 배울 수 있습니다. 그러나 당신이 할 수있는 그들과 함께 작동합니다. 회사에서 이러한 기술을 가진 사람들을 찾으십시오. 누군가를 고용해야 할 수도 있습니다. 또는 일부 회의에 참석하거나 웹 세미나에 참석하고 UXD / IA / ID 세계에서 시간을 보내십시오.

배울 수있는 몇 가지 구체적인 사항이 있습니다. 모든 것을 배우려고하지 마십시오 . 아래의 모든 것을 알고 있다면 상호 작용 디자이너 또는 정보 설계 자라고 할 수 있습니다. 목록 상단 근처의 것부터 시작하십시오 . 특정 개념과 기술에 중점을 둡니다. 그런 다음 아래로 이동하여 분기하십시오. 이 물건을 정말로 좋아한다면, 그것을 진로로 생각하십시오. 많은 개발자들이 경영진으로 이주하지만 UX 디자인이 또 다른 옵션입니다.

UI 디자인이 어려운 이유

좋은 UI 디자인은 크게 다른 기술이 필요하기 때문에 어렵습니다.

  • 기계에 대한 깊은 이해 . 이 그룹의 사람들은 먼저 코드에 대해 걱정하고 사람들은 두 번째로 걱정합니다. 그들은 깊은 기술 지식과 기술을 가지고 있습니다. 이를 개발자, 프로그래머, 엔지니어 등이라고합니다.
  • 사람과 디자인에 대한 깊은 이해 :이 그룹의 사람들은 먼저 사람들에 대해 걱정하고 코드 둘째에 대해 걱정합니다. 그들은 사람들이 정보, 컴퓨터 및 주변 세계와 어떻게 상호 작용하는지에 대한 깊은 지식을 가지고 있습니다. 이를 사용자 경험 디자이너, 정보 설계자, 인터랙션 디자이너, 유용성 엔지니어 등이라고합니다.

이것이 개발자와 디자이너 사이에서이 두 그룹의 근본적인 차이점입니다.

  • 개발자는 그것을 작동 시킵니다. TiVo, iPhone, 즐겨 찾는 웹 사이트 등에서 기능을 구현합니다. 실제로해야 할 일을 실제로 수행합니다. 그들의 최우선 과제는 그것이 작동하는 것입니다.
  • 디자이너는 사람들이 그것을 좋아하게 만듭니다 . 그들은 상호 작용하는 방법, 모양 및 느낌을 파악합니다. 그들은 응용 프로그램, 웹 사이트, 장치 사용 경험을 디자인합니다. 그들의 최우선 순위는 개발자가 만드는 것에 사랑을 느끼게하는 것입니다. 이것은 사용자 경험의 의미이며 브랜드 경험과 동일하지 않습니다.

게다가, 프로그래밍과 디자인은 다른 지식과 다른 기술뿐만 아니라 다른 사고 방식을 요구 합니다. 좋은 UI 디자인에는 두 가지 사고 방식, 지식 기반, 기술 그룹이 모두 필요합니다. 그리고 하나를 마스터하는 데 몇 년이 걸립니다.

UI 디자이너가 코드 작성을 어렵게 생각하는 것처럼 개발자는 UI 디자인을 찾기가 어렵습니다.


답변

내 디자인을 개선하는 데 실제로 도움이되는 것은 동료 개발자, QA 담당자, PM 또는 특정 위젯이나 화면을 시험해 보는 사람을 얻는 것입니다.

다른 사람이 소프트웨어를 처음 사용하는 것을 볼 때 알게 될 놀라운 사실


답변

궁극적으로 그것은 공감에 관한 것입니다. 사용자의 입장에서 자신을 맡길 수 있습니까?

물론 도움이되는 한 가지는 “자신의 개밥을 먹는 것”입니다. 응용 프로그램을 실제 사용자로 사용하고 성가신 것을 보는 것입니다.

또 다른 좋은 아이디어는 응용 프로그램을 사용하여 실제 사용자를 볼 수있는 방법을 찾는 것입니다. 단방향 미러, 화면 비디오 캡처, 사용자의 비디오 카메라 등이 포함 된 유용성 랩처럼 복잡하거나 간단 할 수 있습니다. 복도를 걸어가는 다음 사람을 사용하여 종이 프로토 타이핑으로

다른 모든 방법이 실패하면 UI가 너무 복잡하기보다 너무 단순할수록 거의 항상 좋습니다. “오, 나는 그것을 해결하는 방법을 알고있다. 사용자가 선호하는 모드를 결정할 수 있도록 체크 박스를 추가 할 것이다”라고 말하는 것은 매우 쉽다. 곧 UI가 너무 복잡합니다. 기본 모드를 선택하고 환경 설정을 고급 구성 옵션으로 설정하십시오. 아니면 그냥 놔둬

디자인에 대해 많이 읽으면 그림자와 둥근 모서리 등에 쉽게 매달 수 있습니다. 중요한 것은 아닙니다. 단순성과 발견 가능성은 중요한 것들입니다.


답변

대중적인 신화와는 달리 UI 디자인에는 문자 그대로의 부드러운 측면이 없으며 적어도 좋은 백엔드를 디자인하는 데 필요한 것 이상은 아닙니다.

다음을 고려하세요; 우수한 백엔드 디자인은 훌륭한 개발자가 잘 알고있는 상당히 견고한 원칙과 요소를 기반으로합니다.

  • 낮은 커플 링

  • 높은 응집력

  • 건축 패턴

  • 업계 모범 사례

  • 기타

좋은 백엔드 설계는 일반적으로 여러 상호 작용을 통해 이루어지며, 테스트 또는 실제 사용 중에 얻은 측정 가능한 피드백을 기반으로 초기 청사진이 점차 향상됩니다. 때로는 백엔드의 작은 측면을 프로토 타입하고 격리 등으로 시험해야 할 때가 있습니다.

좋은 UI 디자인은 다음과 같은 사운드 원칙을 기반으로합니다.

  • 시계

  • 여유

  • 피드백

  • 공차

  • 간단

  • 일관성

  • 구조

UI는 또한 테스트 및 평가판을 통해 반복되지만 컴파일러 + 자동 테스트 슈트가 아닌 사람들을 통해 탄생합니다. 백엔드와 마찬가지로 업계 최고의 실무, 측정 및 평가 기술, UI를 생각하고 사용자 모델, 시스템 이미지, 디자이너 모델, 구조 모델, 기능 모델 등의 목표를 설정하는 방법이 있습니다.

UI 디자인에 필요한 기술은 백엔드 디자인과는 매우 다르기 때문에 먼저 학습하지 않고도 좋은 UI를 수행 할 수있을 것으로 기대하지 않습니다. 그러나이 두 가지 활동은 공통적으로 설계 과정입니다. 좋은 소프트웨어를 디자인 할 수있는 사람이라면 누구나 시간을 투자하는 한 좋은 UI를 디자인 할 수 있다고 생각합니다.

휴먼 컴퓨터 인터랙션 과정을 수강하고 MIT 및 예일 사이트에서 온라인 자료를 확인하십시오.

이해와 사용법에서 구조적 vs 기능적 모델

Thorsten79 의 우수한 이전 게시물 은 소프트웨어 개발 전문가 대 사용자의 주제와 소프트웨어에 대한 이해가 어떻게 다른지 알려줍니다. 인간 학습 전문가는 기능적 정신적 모델과 구조적 정신적 모델을 구분합니다. 친구의 집으로가는 길을 찾는 것은 두 사람의 차이점에 대한 훌륭한 예가 될 수 있습니다.

  • 첫 번째 접근 방식에는 일련의 세부 지침이 포함됩니다. 고속도로의 첫 번째 출구를 타고 100 야드 정도 좌회전 한 후 등. 이것은 기능 모델의 예입니다. 특정 목표를 달성하는 데 필요한 구체적인 단계 목록. 기능적 모델은 사용하기 쉬우 며, 단순한 실행을 생각할 필요가 없습니다. 분명히 단순성에 대한 페널티가 있습니다. 가장 효율적인 경로가 아닐 수도 있고 예외적 인 상황 (예 : 교통 우회)이 완전히 실패로 이어질 수 있습니다.

  • 과제에 대처하는 다른 방법은 구조적 정신 모델을 구축하는 것입니다. 이 예에서는 “태스크 객체”의 내부 구조에 대한 많은 정보를 전달하는 맵입니다. 우리와 친구 집의지도와 상대 위치를 이해함으로써 기능 모델 (경로)을 차감 할 수 있습니다. 분명히 가능한 편차가 있지만 작업을 완료하는 데 더 많은 노력이 필요하지만 훨씬 더 안정적인 방법이 필요합니다.

UI를 통한 기능 또는 구조 모델 전달 (예 : 마법사 대 고급 모드) 중에서 선택하는 것은 Thorsten79의 게시물에서 볼 수있는 것처럼 간단하지 않습니다. 고급 사용자와 빈번한 사용자는 구조적 모델을 선호하는 반면, 경험이 많거나 경험이 적은 사용자는 기능적입니다.

Google지도는 훌륭한 예입니다. 기능적 모델과 구조적 모델이 모두 포함되어 있기 때문에 많은 위성 탐색 기능도 포함됩니다.

문제의 또 다른 차원은 UI를 통해 제공되는 구조 모델이 소프트웨어의 구조에 매핑되지 않아야하며, 당연히 사용자 작업 또는 관련된 작업 개체의 구조에 매핑되어야한다는 것입니다.

여기서 많은 어려움은 많은 개발자들이 소프트웨어 내부 구조에 대한 훌륭한 구조적 모델을 가지지 만 소프트웨어가 목표로하는 사용자 작업의 기능적 모델 만 가질 것이라는 점입니다. 좋은 UI를 구축하려면 작업 / 태스크 객체 구조를 이해하고 UI를 해당 구조에 매핑해야합니다.

어쨌든, 나는 여전히 공식적인 HCI 과정을 충분히 강하게 추천하지 않습니다. 휴리스틱 , 게슈탈트 물리학 에서 파생 된 원칙 , 인간이 배우는 방법 등과 같은 많은 것들이 있습니다 .


답변

유용성과 물건에 중점을 두지 않고 지금과 같은 방식으로 모든 UI를 시작하는 것이 좋습니다.

대체 텍스트 http://www.stricken.org/uploaded_images/WordToolbars-718376.jpg

이제 이것을 생각해보십시오.

디자이너는 추가 할 것이 없을 때가 아니라 제거해야 할 것이 없을 때 완벽 함을 달성했다는 것을 알고 있습니다. — 생 텍쥐페리

그리고 이것을 디자인에 적용하십시오.


답변

많은 개발자들은 코드를 작성할 수 있기 때문에 모든 것을 할 수 있다고 생각합니다. 인터페이스 디자인은 완전히 다른 기술이며, 대학에 다닐 때 전혀 배우지 못했습니다. 단지 자연스럽게 오는 것이 아닙니다.

또 다른 좋은 책은 Donald Norman 의 The Everyday Things 디자인입니다 .