Por que o bom design da interface do usuário é tão difícil para alguns desenvolvedores? [fechadas]


206

Alguns de nós têm dificuldade com os aspectos mais suaves do design da interface do usuário ( especialmente eu ). Os "codificadores de back-end" estão condenados a projetar apenas lógica de negócios e camadas de dados? Existe algo que podemos fazer para treinar nosso cérebro para ser mais eficaz no design de camadas de apresentação agradáveis ​​e úteis?

Os colegas me recomendaram alguns livros, incluindo O design de sites , Não me faça pensar e Por que o software é péssimo , mas estou me perguntando o que os outros fizeram para remover suas deficiências nessa área?


1
Para mim (sofro o mesmo problema), conheço uma boa interface do usuário quando uso uma. E eu definitivamente conheço uma interface do usuário que me irrita. Mas tenho dificuldade em tentar projetar um eu mesmo. É como o olho crítico que tenho quando estou usando a interface do usuário de outra pessoa não funciona em meus próprios designs.
JMD

1
Eu odeio o termo "codificador de back-end" e estava tentando mantê-lo fora do título
Chris Ballance

20
Design gráfico! = Design da interface do usuário. O primeiro é sobre tornar as coisas bonitas. O último é sobre tornar as coisas úteis e utilizáveis.
22610 Esko Luontola

2
+1 em @Esko. Muitas vezes, 'bonita' significa totalmente não utilizável pela ONU. Mas os dois podem coexistir se tratados com cuidado e pensamento.
Dhaust

12
Por que o desenvolvimento de software é tão difícil para os designers de interface do usuário?
22711 Greg Hurlman

Respostas:


360

Deixe-me dizê-lo diretamente:

Melhorar isso não começa com as diretrizes. Começa com a reformulação da forma como você pensa sobre o software.

A maioria dos desenvolvedores de hardcore tem praticamente zero, a empatia com os usuários de seus softwares. Eles não têm idéia de como os usuários pensam, como os usuários criam modelos de software que usam e como usam um computador em geral.

É um problema típico quando um especialista colide com um leigo: como uma pessoa normal poderia ser tão burra para não entender o que o especialista entendeu há dez anos?

Um dos primeiros fatos a reconhecer que é inacreditavelmente difícil de entender para quase todos os desenvolvedores experientes é o seguinte:

As pessoas normais têm um conceito de software muito diferente do que você. Eles não têm idéia alguma de programação. Nenhum. Zero. E eles nem se importam. Eles nem acham que precisam se importar. Se você forçar, eles excluirão seu programa.

Agora, isso é incrivelmente duro para um desenvolvedor. Ele se orgulha do software que produz. Ele ama todos os recursos. Ele pode dizer exatamente como o código por trás disso funciona. Talvez ele até tenha inventado um algoritmo inteligente inacreditável que o fez funcionar 50% mais rápido do que antes.

E o usuário não se importa.

Que idiota.

Muitos desenvolvedores não conseguem trabalhar com usuários normais. Eles ficam deprimidos pelo conhecimento inexistente de tecnologia. E é por isso que a maioria dos desenvolvedores evita e acha que os usuários devem ser idiotas.

Eles não são.

Se um desenvolvedor de software compra um carro, espera que ele funcione sem problemas. Ele geralmente não se importa com a pressão dos pneus, o ajuste mecânico que era importante para fazê-lo funcionar dessa maneira. Aqui ele não é o especialista. E se ele compra um carro que não tem o ajuste fino, ele devolve e compra um que faz o que quer.

Muitos desenvolvedores de software gostam de filmes. Filmes bem feitos que despertam sua imaginação. Mas eles não são especialistas em produzir filmes, produzir efeitos visuais ou escrever bons roteiros de filmes. A maioria dos nerds é muito, muito, muito ruim em agir, porque se trata de exibir emoções complexas e pouco sobre análise. Se um desenvolvedor assiste a um filme ruim, ele apenas percebe que é ruim como um todo. Os nerds criaram o IMDB para coletar informações sobre filmes bons e ruins, para que eles saibam quais assistir e quais evitar. Mas eles não são especialistas na criação de filmes. Se um filme for ruim, ele não irá ao cinema (ou não baixará do BitTorrent;)

Então, tudo se resume a: Evitar usuários normais como especialista é ignorância. Como nessas áreas (e há muitas) em que não são especialistas, eles esperam que os especialistas de outras áreas já tenham pensado em pessoas normais que usam seus produtos ou serviços.

O que você pode fazer para remediá-lo? Quanto mais hardcore você for como programador, menos aberto será para o pensamento normal do usuário. Será estranho e sem noção para você. Você vai pensar: Eu não posso imaginar como as pessoas podem sempre usar um computador com esta falta de conhecimento. Mas eles podem. Para cada elemento da interface do usuário, pense sobre: ​​é necessário? Isso se encaixa no conceito que um usuário tem da minha ferramenta? Como posso fazê-lo entender? Por favor, leia sobre usabilidade para isso, existem muitos bons livros. É uma área inteira da ciência também.

Ah e antes que você diga, sim, sou fã da Apple;)


8
Excelente comentário! Você estabeleceu um dos obstáculos mais fundamentais no design de software. Um fato difícil de engolir para desenvolvedores endurecidos (como eu), mas a verdade geralmente é.

12
+1. Eu recomendo a leitura "Os reclusos estão executando o asilo", entra em bons detalhes sobre as diferenças nas mentalidades dos usuários / desenvolvedores, bem como alguns remédios.
Richard Levasseur

9
+1 Para ser honesto, qualquer desenvolvedor que não se importe com o usuário é um desenvolvedor ruim!
Gary Willoughby

7
Pontos muito válidos, e acho que essa mentalidade também é parte da razão pela qual vários projetos executados por desenvolvedores (por exemplo, código aberto ou o que você tem) pareceram difíceis de usar - em geral, a maioria dos desenvolvedores escrever para si mesmos como o usuário, não para o usuário final "real".
10369 CloudyMusic

25
+1 Essa é a razão pela qual o Linux ainda não está pronto para a área de trabalho do usuário comum.
11609 Bryan Anderson

215

O design da interface do usuário é difícil

Para a pergunta:

por que o design da interface do usuário é tão difícil para a maioria dos desenvolvedores?

Tente fazer a pergunta inversa:

por que a programação é tão difícil para a maioria dos designers de interface do usuário ?

Codificar uma interface do usuário e projetar uma interface do usuário requerem habilidades diferentes e uma mentalidade diferente. O design da interface do usuário é difícil para a maioria dos desenvolvedores, não para alguns desenvolvedores, assim como escrever código é difícil para a maioria dos designers, não para alguns designers.

Codificação é difícil. O design também é difícil. Poucas pessoas fazem as duas coisas bem. Bons designers de interface do usuário raramente escrevem código. Eles podem nem saber como, mas ainda são bons designers. Então, por que os bons desenvolvedores se sentem responsáveis ​​pelo design da interface do usuário?

Saber mais sobre o design da interface do usuário fará de você um desenvolvedor melhor, mas isso não significa que você deve ser responsável pelo design da interface do usuário. O inverso é verdadeiro para designers: saber escrever código os tornará melhores designers, mas isso não significa que eles devam ser responsáveis ​​pela codificação da interface do usuário.

Como melhorar o design da interface do usuário

Para desenvolvedores que desejam melhorar o design da interface do usuário, tenho três conselhos básicos:

  1. Reconheça o design como uma habilidade separada . Codificação e design são separados, mas relacionados. O design da interface do usuário não é um subconjunto de codificação. Requer uma mentalidade, uma base de conhecimentos e um grupo de habilidades diferentes. Existem pessoas por aí que se concentram no design da interface do usuário.
  2. Aprenda sobre design . Pelo menos um pouco. Tente aprender alguns dos conceitos e técnicas de design da longa lista abaixo. Se você é mais ambicioso, leia alguns livros, participe de uma conferência, faça uma aula, faça um diploma. Existem várias maneiras de aprender sobre design. O livro de Joel Spolky sobre design de interface do usuário é uma boa cartilha para desenvolvedores, mas há muito mais e é aí que os designers entram em cena.
  3. Trabalhe com designers . Bons designers, se você puder. As pessoas que fazem esse trabalho recebem vários títulos. Hoje, os títulos mais comuns são UXD (User Experience Designer), Arquiteto de informações (IA), Designer de interação (ID) e Engenheiro de usabilidade. Eles pensam em design tanto quanto você pensa em código. Você pode aprender muito com eles, e eles com você. Trabalhe com eles da maneira que puder. Encontre pessoas com essas habilidades em sua empresa. Talvez você precise contratar alguém. Ou vá a algumas conferências, participe de seminários on-line e passe algum tempo no mundo UXD / IA / ID.

Aqui estão algumas coisas específicas que você pode aprender. Não tente aprender tudo . Se você soubesse tudo abaixo, poderia se chamar um designer de interação ou um arquiteto de informações. Comece com coisas próximas ao topo da lista . Concentre-se em conceitos e habilidades específicas. Em seguida, desça e se ramifique. Se você realmente gosta dessas coisas, considere-as como uma carreira. Muitos desenvolvedores passam a gerenciar, mas o design de UX é outra opção.

Por que o design da interface do usuário é difícil

Um bom design de interface do usuário é difícil porque envolve duas habilidades muito diferentes:

  • Um profundo entendimento da máquina . As pessoas deste grupo se preocupam com o código primeiro, as pessoas depois. Eles têm profundo conhecimento e habilidade tecnológica. Nós os chamamos de desenvolvedores, programadores, engenheiros e assim por diante.
  • Uma profunda compreensão das pessoas e do design : as pessoas deste grupo se preocupam com as pessoas primeiro e depois com o código. Eles têm profundo conhecimento de como as pessoas interagem com informações, computadores e o mundo ao seu redor. Nós os chamamos de designers de experiência do usuário, arquitetos da informação, designers de interação, engenheiros de usabilidade e assim por diante.

Essa é a diferença essencial entre esses dois grupos - entre desenvolvedores e designers:

  • Os desenvolvedores fazem funcionar . Eles implementam a funcionalidade no seu TiVo, iPhone, site favorito etc. Eles garantem que ele realmente faça o que deve fazer. Sua maior prioridade é fazê-lo funcionar.
  • Designers fazer as pessoas amam isso . Eles descobrem como interagir com ele, como deve parecer e como deve se sentir. Eles projetam a experiência de usar o aplicativo, o site, o dispositivo. A maior prioridade deles é fazer você se apaixonar pelo que os desenvolvedores fazem. É isso que significa experiência do usuário e não é o mesmo que experiência de marca.

Além disso, programação e design exigem mentalidades diferentes , não apenas conhecimentos e habilidades diferentes. Um bom design de interface do usuário requer duas mentalidades, duas bases de conhecimento e dois grupos de habilidades. E leva anos para dominar qualquer um.

Os desenvolvedores devem esperar encontrar com dificuldade o design da interface do usuário, assim como os designers de interface do usuário devem achar difícil escrever o código.


8
Esta é a melhor resposta aqui. Ótimos links BTW!
11119 Bernard Igiri

Excelente visão geral do design da interface do usuário! Eu também observei sua noção de mentalidades diferentes. Eu faço design e programação de interface do usuário, e é melhor me concentrar em apenas um deles por vez. [...]
Esko Luontola 19/02/09

Se você tomar decisões de design de interface do usuário durante a programação, acha que é a maneira mais simples de implementar, o que geralmente leva a um design de interface do usuário ruim. E se você pensar em implementação durante o design da interface do usuário, poderá escolher padrões de design da interface do usuário que sejam mais fáceis de implementar, mas que não sejam tão bons para o usuário.
Esko Luontola 19/02/09

2
Por que isso não está marcado como a melhor resposta? Parece muito melhor do que a resposta de Thorsten79.
AbdullahC

1
Gostaria de poder favoritar esta resposta diretamente. :) #
21411 Dan J

70

O que realmente me ajuda a melhorar meu design é contratar um desenvolvedor, um dos responsáveis ​​pelo controle de qualidade, um gerente de qualidade ou qualquer pessoa que passe por lá e peça que experimentem um widget ou tela específico.

É incrível o que você perceberá quando assistir alguém usar seu software pela primeira vez


Eu tentei muito essa abordagem e achei muito eficaz. Ocasionalmente, tenho um amigo não técnico que o usa para ver o que causa dor ao tentar usá-lo.
31530 Chris Ballance

Esta é a mesma abordagem que eu tomo.
Ed S.

Essa abordagem poderia ser chamada de "teste de usabilidade" por acaso? ;) Sim, é a abordagem que você deve adotar antes, durante e depois.
Ates Goral 06/02/09

Essa seria quase a minha resposta exata. O controle de qualidade e o suporte técnico são impressionantes. Os desenvolvedores são péssimos no UI Design, repetem e fazem com que outros o testem com frequência.
Bill K

7
Eu acredito que é chamado de "teste de usabilidade no corredor"
Kevin

32

Em última análise, é realmente sobre empatia - você pode se colocar no lugar do seu usuário?

Uma coisa que ajuda, é claro, é "comer seu próprio alimento para cães" - usar seus aplicativos como um usuário real e ver o que é irritante.

Outra boa idéia é encontrar uma maneira de assistir um usuário real usando seu aplicativo, o que pode ser tão complicado quanto um laboratório de usabilidade com espelhos unidirecionais, captura de vídeo na tela, câmeras de vídeo nos usuários etc., ou pode ser tão simples como prototipagem de papel usando a próxima pessoa que passa pelo corredor.

Se tudo mais falhar, lembre-se de que quase sempre é melhor para a interface do usuário ser muito simples do que muito complicada. É muito fácil dizer "ah, eu sei como resolver isso, vou adicionar uma caixa de seleção para que o usuário possa decidir qual modo prefere". Em breve, sua interface será muito complicada. Escolha um modo padrão e faça da preferência definir uma opção de configuração avançada. Ou apenas deixe de fora.

Se você lê muito sobre design, pode facilmente se pendurar em sombras caídas e cantos arredondados e assim por diante. Essa não é a coisa importante. Simplicidade e descoberta são coisas importantes.


Bem colocado. Na maioria das vezes, as tentativas de adicionar flexibilidade resultam em confusão. Mais simples == melhor.
SquareCog 5/02/09

Você pode se colocar no lugar do usuário se ele estiver do outro lado do planeta, em uma cultura que você nunca experimentou antes? A internacionalização é uma consideração importante no design sólido da interface do usuário. Não vamos supor que todo mundo mora nos EUA.

Absolutamente; meu projeto atual é de fato direcionado a usuários em todo o planeta (basicamente em todos os países, exceto os EUA, onde estou). Isso torna a empatia mais difícil, sem dúvida - e ainda mais importante tentá-la com seriedade e vigor.
23430 Jacob Mattison

Além disso, eu acrescentaria que a grande maioria dos problemas de usabilidade é chocantemente óbvia quando você obtém um usuário real para analisá-lo. Sim, haverá sutis que são específicos da cultura, mas você pode fazer tremendas melhorias usando o próximo cara andando pelo corredor.
24630 Jacob Mattison

+1, apenas porque eu não posso +100 sozinho! Acrescentarei que a experiência adquirida com aplicativos muito diferentes, como pretendidos, ajuda você a crescer como desenvolvedor de UI. Somente o uso de ferramentas como o Visual Studio ou outras ferramentas de desenvolvimento prejudicará essa capacidade ...
BQ.

26

Ao contrário do mito popular, literalmente não há aspectos suaves no design da interface do usuário, pelo menos não mais do que o necessário para criar um bom back-end.

Considere o seguinte; um bom design de back-end é baseado em princípios e elementos bastante sólidos com os quais qualquer bom desenvolvedor está familiarizado:

  • baixo acoplamento

  • coesão alta

  • padrões arquitetônicos

  • melhores práticas do setor

  • etc

Um bom design de back-end geralmente nasce através de várias interações, onde, com base no feedback mensurável obtido durante os testes ou no uso real, o projeto inicial é gradualmente aprimorado. Às vezes, você precisa criar um protótipo de aspectos menores do back-end e testá-los isoladamente, etc.

Um bom design de interface do usuário é baseado nos princípios sólidos de:

  • visibilidade

  • disponibilidade

  • comentários

  • tolerância

  • simplicidade

  • consistência

  • estrutura

A interface do usuário também nasce através de teste e avaliação, através de iterações, mas não com compilador + roupa de teste automatizada, mas com pessoas. Da mesma forma que no back-end, existem práticas recomendadas do setor, técnicas de medição e avaliação, maneiras de pensar na interface do usuário e definir metas em termos de modelo de usuário, imagem do sistema, modelo de designer, modelo estrutural, modelo funcional etc.

O conjunto de habilidades necessárias para projetar a interface do usuário é bem diferente do design de back-end e, portanto, não esperamos conseguir fazer uma boa interface do usuário sem aprender primeiro. No entanto, essas duas atividades têm em comum o processo de design. Acredito que qualquer pessoa que possa projetar um bom software é capaz de projetar uma boa interface do usuário, desde que gaste algum tempo aprendendo como.

Eu recomendo fazer um curso em Interação Humano-Computador, consulte o site do MIT e Yale, por exemplo, para obter materiais on-line:

Modelo estrutural versus funcional na compreensão e no uso

O excelente post anterior de Thorsten79 traz à tona o tópico de especialistas em desenvolvimento de software versus usuários e como sua compreensão do software é diferente. Os especialistas em aprendizado humano distinguem entre modelos mentais funcionais e estruturais. Encontrar o caminho para a casa de seu amigo pode ser um excelente exemplo da diferença entre os dois:

  • A primeira abordagem inclui um conjunto de instruções detalhadas: pegue a primeira saída da rodovia e depois de 100 jardas, vire à esquerda etc. Este é um exemplo de modelo funcional: lista de medidas concretas necessárias para alcançar um determinado objetivo. Os modelos funcionais são fáceis de usar, não requerem muita reflexão, apenas uma execução direta. Obviamente, há uma penalidade pela simplicidade: pode não ser a rota mais eficiente e qualquer situação excepcional (ou seja, desvio de tráfego) pode facilmente levar a uma falha completa.

  • Uma maneira diferente de lidar com a tarefa é construir um modelo mental estrutural. No nosso exemplo, esse seria um mapa que transmite muitas informações sobre a estrutura interna do "objeto de tarefa". Ao entender o mapa e a localização relativa da casa de nossos amigos e amigos, podemos deduzir o modelo funcional (a rota). Obviamente, exige mais esforço, mas uma maneira muito mais confiável de concluir a tarefa, apesar dos possíveis desvios.

A escolha entre transmitir o modelo funcional ou estrutural por meio da interface do usuário (por exemplo, assistente versus modo avançado) não é tão simples como pode parecer na publicação de Thorsten79. Usuários avançados e freqüentes podem preferir o modelo estrutural, enquanto usuários ocasionais ou com menos experiência - funcionais.

O Google Maps é um ótimo exemplo: eles incluem modelo funcional e estrutural, assim como muitas navegações por satélite.

Outra dimensão do problema é que o modelo estrutural apresentado através da interface do usuário não deve ser mapeado para a estrutura do software, mas sim mapeado naturalmente para a estrutura da tarefa do usuário em questão ou do objeto de tarefa envolvido.

A dificuldade aqui é que muitos desenvolvedores terão um bom modelo estrutural de seus softwares internos, mas apenas um modelo funcional da tarefa do usuário que o software pretende auxiliar. Para criar uma boa interface do usuário, é necessário entender a estrutura da tarefa / objeto da tarefa e mapear a interface do usuário para essa estrutura.

De qualquer forma, ainda não recomendo fazer um curso formal de HCI com força suficiente. Há muitas coisas envolvidas, como heurísticas , princípios derivados da psicologia da Gestalt , maneiras como os humanos aprendem etc.


+1 para o link MIT OCW :) Essas palestras notas são de valor inestimável
PlagueHammer

Você está certo, os usuários podem se tornar especialistas em um software e gostam deles quando alguém cria um caminho para que eles, através da interface do usuário "legal", sejam mais rápidos. É para isso que servem todos os atalhos principais, por exemplo. usabilidade é um assunto muito interessante!
Thorsten79

25

Eu sugiro que você comece fazendo toda a sua interface do usuário da mesma maneira que está fazendo agora, sem foco na usabilidade e outras coisas.

texto alternativo http://www.stricken.org/uploaded_images/WordToolbars-718376.jpg

Agora pense nisso:

Um designer sabe que alcançou a perfeição não quando não há mais nada a acrescentar, mas quando não há mais nada a ser levado. - Saint-Exupéry

E aplique isso em seu design.


É por isso que prefiro muito o Office 2007!
Richard Ev

Se alguém está se perguntando de que cova eu ​​cavei essa citação, ouvi-a da civilização 4. Grande jogo. Não tenho idéia de quem é o autor, mas ele com certeza poderia escrever uma interface do usuário melhor do que os designers do word.
Hoffmann

Há outra boa citação semelhante de A. Einstein: "Torne tudo o mais simples possível, mas não mais simples". Encontrei essas idéias também aplicáveis ​​ao design da interface do usuário: www.presentationzen.com. ... e +1
Pyry Jahkola

Saint-Exupery era muito mais que um piloto e projetista de aeronaves; +1 por citá-lo. Vale a pena ler o livro de seus filhos ("O Pequeno Príncipe"), mas estou ficando fora de tópico aqui.
11269 David Thornley

5
Você deveria ter selecionado a visualização de impressão ... não pode ver as réguas agora.
Mussnoon

16

Muitos desenvolvedores pensam que, como eles podem escrever código, eles podem fazer tudo. Projetar uma interface é uma habilidade completamente diferente e não foi ensinada quando eu cursava a faculdade. Não é apenas algo que vem naturalmente.

Outro bom livro é O design das coisas cotidianas, de Donald Norman.


Obrigado, "The Design of diária acha que" é no meu Amazon Wishlist
Chris Ballance

+1. "O design das coisas cotidianas" também está na lista de leituras recomendadas do Coding Horror (boa lista de livros para desenvolvedores). Recentemente, terminei de lê-lo e também posso recomendá-lo.
Mun

Estou lendo "O design das coisas cotidianas" no momento - certamente é muito bom, mas, como mencionado nos comentários de outra resposta, "Os presos estão administrando o asilo", de Alan Cooper, aborda exatamente esse tópico. Como desenvolvedor, o livro estava "mudando a vida"!
22415 Stuart Helwig

Minha opinião: muitos desenvolvedores (e designers e outros) pensam que, como eu posso codificar, não consigo projetar a interface do usuário. Não conheço muito bem o Photoshop, mas acho que tenho uma boa visão do que funciona e do que não funciona. (The Design of Everyday Things foi a minha primeira UI bíblia.)
Barry Brown

14

Há uma enorme diferença entre design e estética, e eles geralmente são confusos.

Uma interface de usuário bonita exige habilidades artísticas ou pelo menos estéticas que muitos, inclusive eu, são incapazes de produzir. Infelizmente, isso não é suficiente e não torna a interface do usuário utilizável, como podemos ver em muitas APIs pesadas baseadas em flash.

Produzir interfaces de usuário utilizáveis ​​requer uma compreensão de como os humanos interagem com computadores, alguns problemas em psicologia (por exemplo, a lei de Fitt, a lei de Hick) e outros tópicos. Pouquíssimos programas de CS treinam para isso. Muito poucos desenvolvedores que conheço escolherão um livro de teste do usuário em vez de um livro JUnit, etc.

Muitos de nós também somos "programadores principais", tendendo a pensar nas UIs como a fachada, e não como um fator que poderia fazer ou quebrar o sucesso do nosso projeto.

Além disso, a maioria das experiências de desenvolvimento da interface do usuário é extremamente frustrante. Podemos usar construtores de GUI de brinquedos como o VB antigo e ter que lidar com códigos de cola feios ou usar APIs que nos frustram sem fim, como tentar organizar layouts no Swing.


"Podemos usar construtores de GUI de brinquedos como o VB antigo e ter que lidar com códigos de cola feios, ou usar APIs que nos frustram sem fim, como tentar organizar layouts no Swing". Você realmente resumiu minhas experiências com a criação de GUI. Se posso acrescentar: "ou louco DOM e combinação de CSS"
Hoffmann

Tenho certeza que todo mundo está familiarizado com o Totally Gridbag? " madbean.com/anim/totallygridbag "
Uri

12

Vá para o Slashdot e leia os comentários em qualquer artigo relacionado à Apple. Você encontrará um grande número de pessoas falando sobre como os produtos da Apple não são nada de especial e atribuindo o sucesso do iPod e iPhone às pessoas que tentam estar na moda ou na moda. Eles normalmente analisam as listas de recursos e apontam que não fazem nada antes que os tocadores de MP3 ou smartphones não fizessem.

Existem pessoas que gostam do iPod e do iPhone porque fazem o que os usuários desejam de maneira simples e fácil, sem referência aos manuais. As interfaces são tão intuitivas quanto possível, memoráveis ​​e detectáveis. Não gosto tanto da interface do usuário no MacOSX quanto nas versões anteriores, acho que elas deram alguma utilidade em favor do brilho, mas o iPod e o iPhone são exemplos de design excelente.

Se você está no primeiro campo, não pensa da maneira que as pessoas comuns pensam e, portanto, é provável que faça más interfaces de usuário porque não pode diferenciá-las das boas. Isso não significa que você não tenha esperança, mas sim que você precisa aprender explicitamente bons princípios de design de interface e como reconhecer uma boa interface do usuário (como alguém com Asperger pode precisar aprender habilidades sociais explicitamente). Obviamente, apenas ter um bom senso de interface do usuário não significa que você pode criar uma; minha apreciação pela literatura, por exemplo, não parece se estender à capacidade (atualmente) de escrever histórias publicáveis.

Portanto, tente desenvolver um bom design de interface do usuário. Isso se estende a mais do que apenas software. Don Norman, "O design das coisas cotidianas" é um clássico, e há outros livros por aí. Obtenha exemplos de designs de interface do usuário bem-sucedidos e brinque com eles o suficiente para sentir a diferença. Reconheça que você pode estar tendo que aprender uma nova maneira de pensar sobre as coisas e se divertir.


+1 para a sugestão The Design of Everyday Things
Oskar Duveborn

+1 para uma resposta muito boa. Eu acho que está dizendo que você ainda está pairando com 1 voto positivo (agora 2); aqueles que se encaixam sua descrição provavelmente não acho que eles fazem, ou simplesmente descartar a idéia :-(
mghie

Esta é uma declaração geral. Nem todo comentário anti-Apple sobre Slashdot é uma crítica à sua interface do usuário, ou uma verificação da falta de entendimento da interface do usuário. A Apple tem uma boa interface do usuário e muitos de seus concorrentes também.
11119 Bernard Igiri

Outro pensamento: uma Apple não é para todos; por exemplo, ele não fornece o poder incrível fenomenal que uma CLI fornece.
1211 J. Polfer

2
Pessoalmente, acho que os produtos da Apple são extremamente pouco intuitivos de usar. Eu imagino que não sou a única pessoa que ficou frustrada quando o primeiro iPod deles começou a embaralhar músicas toda vez que eu comecei a correr, ou por que a tela do iPhone se inverte continuamente. Acho que as coisas devem ocorrer apenas a partir de ações diretas e inequívocas do usuário.
Lotus Notes

10

A principal regra de ouro que eu mantenho, nunca é tentar fazer as duas coisas ao mesmo tempo. Se eu estiver trabalhando no código de back-end, terminarei fazendo isso, faça uma pausa e retornarei com meu chapéu de interface do usuário. Se você tentar trabalhar durante o código, você o abordará com a mentalidade errada e, como resultado, terá algumas interfaces horríveis.

Eu acho que é definitivamente possível ser um bom desenvolvedor de back-end e um bom designer de interface do usuário; você só precisa trabalhar nisso, fazer algumas leituras e pesquisas sobre o tópico (tudo, desde o número 7 de Miller até os arquivos da Nielsen) e fazer você entende por que design da interface do usuário é da maior importância.

Não acho que seja necessário ser criativo, mas, como o desenvolvimento de back-end, é uma coisa muito metódica e muito estruturada que precisa ser aprendida. São pessoas ficando 'criativas' com interfaces de usuário que criam algumas das maiores monstruosidades de usabilidade ... quero dizer, dê uma olhada em sites 100% Flash, para começar ...

Edit : O livro de Krug é realmente bom ... leia-o, especialmente se você estiver projetando para a Web.


e qual é o título do livro deste krug
defau1t

@refhat Estava proeminentemente vinculado no post principal, então eu não o vinculava na época, mas é este: librarything.com/work/12322 #
James B #

8

Há muitas razões para isto.

(1) O desenvolvedor falha ao ver as coisas do ponto de vista do usuário. Este é o suspeito usual: falta de empatia. Mas isso geralmente não é verdade, já que os desenvolvedores não são tão estranhos quanto as pessoas imaginam.

(2) Outro motivo mais comum é o fato de o desenvolvedor estar tão próximo de suas coisas, por ter ficado com as coisas por tanto tempo, não perceber que suas coisas podem não ser tão familiares (um termo melhor que intuitivo) para outras pessoas. .

(3) Ainda outra razão é que o desenvolvedor não possui técnicas.

MINHA RECLAMAÇÃO GRANDE: leia qualquer interface do usuário, design de interseção humana, livro de prototipagem. Por exemplo, projetando o óbvio: uma abordagem de senso comum ao design de aplicativos da Web, não me faça pensar: uma abordagem de senso comum à usabilidade da Web, projetando o momento, qualquer que seja.

Como eles discutem os fluxos de tarefas? Como eles descrevem pontos de decisão? Ou seja, em qualquer caso de uso, há pelo menos três caminhos: sucesso, falha / exceção, alternativa.

Assim, do ponto A, você pode ir para A.1, A.2, A.3. Do ponto A.1, você pode acessar A.1.1, A.1.2, A.1.3 e assim por diante.

Como eles mostram esse fluxo de tarefas de pesquisa detalhada? Eles não. Eles apenas encobrem isso.

Como nem a extensão da interface do usuário tem uma técnica, os desenvolvedores não têm chance. Ele acha que isso está claro em sua cabeça. Mas nem isso está claro no papel, muito menos na implementação de software.

Eu tenho que usar minhas próprias técnicas feitas à mão para isso.


7

Eu tento manter contato com sites e textos específicos de design. Encontrei também o excelente livro de Robin Williams, The Non-Designer's Design Book muito interessante nesses estudos.

Acredito que design e usabilidade são uma parte muito importante da engenharia de software, e devemos aprender mais e parar de dar desculpas que não devemos fazer design.

Todos podem ser designers de vez em quando, assim como todos podem ser programadores.


Não concordo que todos possam ser programadores. Alguns aspectos do comércio não pode ser ensinado, você pode cortá-lo ou você não pode (sem trocadilhos.)
Chris Ballance

2
Quero dizer, de vez em quando, isso não significa que o cara será um bom programador ou será para sempre.
Edwin Jarvis

7

Ao abordar o design da interface do usuário, aqui estão algumas das coisas que tenho em mente (de longe não uma lista completa):

  • Comunicar um modelo . A interface do usuário é uma narrativa que explica um modelo mental para o usuário. Este modelo pode ser um objeto de negócios, um conjunto de relacionamentos, o que você tem. O destaque visual, a localização espacial e a ordem do fluxo de trabalho desempenham um papel importante na comunicação desse modelo ao usuário. Por exemplo, um certo tipo de lista versus outro implica coisas diferentes, bem como a relação do que está na lista com o restante do modelo. Em geral, acho melhor garantir que apenas um modelo seja comunicado por vez. Os programadores freqüentemente tentam comunicar mais de um modelo, ou partes de vários, no mesmo espaço da interface do usuário.

  • Consistência . A reutilização de metáforas populares da interface do usuário ajuda muito. A consistência interna também é muito importante.

  • Agrupamento de tarefas . Os usuários não precisam mover o mouse por toda a tela para verificar ou concluir uma sequência de comandos relacionada. Diálogos modais e menus desdobráveis ​​podem ser especialmente ruins nessa área.

  • Conhecendo seu público . Se seus usuários estiverem realizando as mesmas atividades várias vezes, eles rapidamente se tornarão usuários avançados nessas tarefas e ficarão frustrados com as tentativas de diminuir a barreira de entrada inicial. Se seus usuários executam muitos tipos diferentes de atividades com pouca frequência, é melhor garantir que a interface do usuário mantenha a mão o tempo todo.


Você traz para fora um ponto bom com Conhecer seu público ... Eu também gosto "Você não é o usuário" (Platt) e "Conheça seu usuário." (Platt) Isto não pode ser suficientemente enfatizada
Chris Ballance


5

Acho que a melhor ferramenta no design da interface do usuário é assistir uma primeira tentativa do usuário de usar o software. Faça muitas anotações e faça algumas perguntas. Nunca os direcione ou tente explicar como o software funciona. Este é o trabalho da interface do usuário (e documentação bem escrita).

Adotamos consistentemente essa abordagem em todos os projetos. É sempre fascinante assistir a um usuário lidar com o software de uma maneira que você nunca considerou antes.

Por que o design da interface do usuário é tão difícil? Bem, geralmente porque o desenvolvedor e o usuário nunca se encontram.


Absolutamente concordado, mas é bem possível para um desenvolvedor aplicar sólidos princípios básicos de interface do usuário.
Nailitdown #

Os princípios sólidos da interface do usuário básica não funcionam em todos os países. Implementamos software em muitas regiões e há uma grande diferença no design da interface do usuário para diferentes partes do globo. Tente enviar seu aplicativo centrado nos EUA para a China algum dia ...

5

duffymo apenas me lembrou o porquê: Muitos programadores pensam "* Design" == "Art".

Um bom design de interface do usuário não é absolutamente artístico. Ele segue princípios sólidos, que podem ser armazenados em backup com dados se você tiver tempo para fazer a pesquisa.

Eu acho que todos os programadores precisam fazer um tempo para aprender os princípios. Acho que é da nossa natureza aplicar as melhores práticas sempre que possível, seja em código ou em layout. Tudo o que precisamos fazer é tomar consciência de quais são as melhores práticas para esse aspecto do nosso trabalho.


Eu acho que você não pode descontar completamente a estética. Talvez uma interface do usuário feia possa ser tão útil quanto uma bonita, mas não é para isso que serve. Afinal, a interface do usuário é o rosto do seu programa, bem como a capa de um livro: as pessoas têm muito mais probabilidade de escolher um programa com uma interface do usuário bonita.
Tikhon Jelvis

Absolutamente, a estética é importante, mas isso é design gráfico, não design de interface do usuário.
Nailitdown

5

O que eu fiz para melhorar o design da interface do usuário?
Preste atenção!

É como sempre que você vê um gráfico no noticiário ou um sinal de ônibus eletrônico e se pergunta: 'Como eles conseguiram esses dados? Eles fizeram isso com sql bruto ou estão usando o LINQ? (ou insira sua própria curiosidade nerd comum aqui).

Você precisa começar a fazer isso, mas com elementos visuais de todos os tipos.

Mas, assim como aprender um novo idioma, se você realmente não atirar-se para ele, você nunca vai aprender.

Retirado de outra resposta que escrevi:

Aprenda a olhar, realmente olhar, o mundo ao seu redor. Por que gosto dessa interface do usuário, mas odeio essa? Por que é tão difícil encontrar os pratos de macarrão neste menu do restaurante? Uau, eu sabia o que aquele sinal significava antes mesmo de ler as palavras. Porque foi isso? Como é que essa capa parece tão errada? Aprenda a pensar por que você reage da maneira que reage a elementos visuais de todos os tipos e aplique isso ao seu trabalho.


+1 no conselho zen sobre como aprender a olhar e pensar. Pouquíssimas pessoas questionam o que os olhos vêem.
10609 PlagueHammer

5

No entanto, você faz isso (e há alguns bons pontos acima), isso realmente me ajudou uma vez que aceitei que NÃO HÁ TAL COISA INTUITIVA ...

Eu posso ouvir os argumentos estrondosos no horizonte ... então deixe-me explicar um pouco.

Intuitivo: usar o que se sente certo ou verdadeiro com base em um método ou sentimento inconsciente.

Se (como Carl Sagan postulou) você aceita que não pode compreender coisas absolutamente diferentes de tudo que você já encontrou, então como você poderia "saber" como usar alguma coisa se nunca usou remotamente algo assim?

Pense nisso: as crianças tentam abrir portas não porque "sabem" como uma maçaneta funciona, mas porque viram alguém fazer isso ... muitas vezes, elas giram a maçaneta na direção errada ou puxam muito cedo. Eles precisam aprender como uma maçaneta funciona. Esse conhecimento é aplicado em casos diferentes, mas semelhantes: abrir uma janela, abrir uma gaveta, abrir quase qualquer coisa grande com uma alça grande e com aparência de botão.

Mesmo coisas simples que parecem intuitivas para nós não serão intuitivas para pessoas de outras culturas. Se alguém estendeu o braço na frente deles e renunciou a mão para cima e para baixo no pulso enquanto mantinha o braço imóvel ... eles estão renunciando a você? Provavelmente, a menos que você esteja no Japão. Lá, esse sinal de mão pode significar "venha aqui". Então quem está certo? Ambos, é claro, em seu próprio contexto. Mas se você viaja para os dois, precisa conhecer os dois ... design da interface do usuário.

Tento encontrar o que já é "familiar" para os usuários em potencial do meu projeto e, em seguida, construo a interface do usuário em torno deles: design centrado no usuário.

Dê uma olhada no iPhone da Apple. Mesmo que você odeie, você deve respeitar a quantidade de pensamento que foi colocada nele. É perfeito? Claro que não. Com o tempo, a "intuitividade" percebida de um objeto pode crescer ou até desaparecer completamente.

Por exemplo. Quase todo mundo sabe que uma tira de preto com duas fileiras de orifícios na parte superior e inferior se parece com uma tira de filme ... ou não?

Pergunte à sua média de 9 ou 10 anos o que eles acham que é. Você pode se surpreender com quantas crianças no momento terão dificuldade em identificá-la como uma tira de filme, mesmo que seja algo que ainda seja usado para representar Hollywood ou qualquer coisa relacionada a filme (filme). A maioria dos filmes nos últimos 20 anos foi filmada digitalmente. E quando foi a última vez que um de nós realizou um filme de QUALQUER espécie, fotos ou filme?

Então, o que tudo se resume a mim é: conheça seu público e pesquise constantemente para acompanhar tendências e mudanças em coisas que são "intuitivas", direcione seus principais usuários e tente não fazer coisas que punam os inexperientes em favor de os usuários avançados ou diminua a velocidade dos usuários avançados para segurar os novatos em mão.

Por fim, todo programa exigirá uma certa quantidade de treinamento por parte do usuário para usá-lo. Quanto treinamento e para qual nível de usuário faz parte das decisões que precisam ser tomadas.

Algumas coisas são mais ou menos familiares com base no nível de experiência anterior do usuário-alvo como ser humano, usuário de computador, estudante ou qualquer outra coisa.

Eu apenas tiro a parte mais gorda da curva do sino e tento conseguir o máximo de pessoas possível, mas percebendo que nunca vou agradar a todos ...


4

Sei que a Microsoft é bastante inconsistente com suas próprias diretrizes, mas descobri que a leitura das diretrizes de design do Windows realmente me ajudou. Eu tenho uma cópia no meu site aqui , basta rolar um pouco para baixo o Guia do Vista UX. Ele me ajudou com coisas como cores, espaçamento, layouts e muito mais.


+1 lendo as diretrizes de design da plataforma é definitivamente algo que se deve fazer (e descobrir quantas vezes Microsoft quebra suas próprias regras;)
Oskar Duveborn

Além disso, leia os da Apple (Human Interface Guidelines). Eles têm mais princípios e princípios neles. Que faz você entender o que deve ser universal e o que é plataforma específica
Stephan Eggermont

E enquanto você está nisso, leia também o GNOME HIG. Entre os três, começa a se tornar visível o que é apenas uma coisa específica de uma única plataforma e o que parece ser uma boa ideia em geral.
Mghie

A maioria deles é baseada em IBMs, mas isso está bastante desatualizado agora. Por exemplo, os comandos padrão de recortar e colar eram Shift + Del e Shift + Ins (eles ainda funcionam, btw).
Simon Buchan

4

Acredito que o principal problema não tenha nada a ver com diferentes talentos ou habilidades. O principal problema é que, como desenvolvedor, você sabe muito sobre o que o aplicativo faz e como faz, e projeta automaticamente sua interface do usuário do ponto de vista de alguém que tenha esse conhecimento.

Enquanto um usuário normalmente começa a saber absolutamente nada sobre o aplicativo e nunca deve precisar aprender nada sobre seu funcionamento interno.

É muito difícil, quase impossível, não usar o conhecimento que você possui - e é por isso que uma interface do usuário não deve ser projetada por alguém que está desenvolvendo o aplicativo por trás dela.


4

"Projetar de ambos os lados da tela" apresenta uma razão muito simples, mas profunda, do motivo pelo qual os programadores acham difícil o design da interface do usuário: os programadores são treinados para pensar em termos de casos extremos, enquanto os designers de interface do usuário são treinados para pensar em termos de casos ou uso comuns.

Portanto, ir de um mundo para o outro é certamente difícil se a transição padrão em um deles é exatamente o oposto do outro.


3

Dizer que os programas são ruins no design da interface do usuário é errado. O ponto do problema é que o treinamento formal que a maioria dos desenvolvedores adquire é aprofundado com a tecnologia. Interação Humano - Computador não é um tópico simples. Não é algo que eu possa "confundir" com você, fornecendo uma declaração simples de uma linha que o faz perceber "ah, os usuários usarão esse aplicativo com mais eficiência se eu fizer x em vez de y".

Isso ocorre porque falta uma parte do design da interface do usuário. O cérebro humano. Para entender como projetar uma interface do usuário, você precisa entender como a mente humana interage com as máquinas. Há um excelente curso que fiz na Universidade de Minnesota sobre esse tópico, ministrado por um professor de psicologia. É nomeado "Interação Homem-Máquina". Isso descreve muitos dos motivos pelos quais o design da interface do usuário é tão complicado.

Como a psicologia é baseada em correlações e não em causalidade, você nunca pode provar que um método de design de interface do usuário sempre funcionará em qualquer situação. Você pode correlacionar que muitos usuários acharão um design de interface do usuário específico atraente ou eficiente, mas não é possível provar que ele sempre será generalizado.

Além disso, existem duas partes no design da interface do usuário que muitas pessoas parecem sentir falta. Existe o apelo estético e o fluxo de trabalho funcional. Se você optar por um apelo estético de 100%, certamente as pessoas terão apenas o seu produto. Eu duvido muito que a estética já reduza a frustração do usuário.

Existem vários bons livros sobre esse tópico e o caminho a seguir (como o Sketching User Experiences de Bill Buxton e Cognition in the Wild, de Edwin Hutchins). Existem programas de pós-graduação em Interação Humano - Computador em muitas universidades.

A resposta geral a essa pergunta, porém, está em como as pessoas aprendem ciência da computação. É tudo baseado em matemática, lógica e não com base na experiência do usuário. Para isso, você precisa de mais de um diploma genérico de ciência da computação de quatro anos (a menos que seu diploma de ciência da computação de quatro anos tenha um diploma menor em psicologia e tenha sido enfatizado na interação humano - computador).


Eu discordo: os computadores são baseados em matemática e lógica, por sua natureza. Qualquer ensino de programação de computadores deve ser baseado em matemática e lógica.
Paul Nathan

1
Sim, você está certo, Paul. Computadores são matemáticos e lógicos. O design da interface do usuário envolve um elemento humano, que provou na história ser muito menos baseado em matemática e lógica.
jwendl

Não é tanto o fato de serem menos matemáticos e lógicos, é que a matemática e a lógica por trás deles são muito mais complexas, principalmente além de qualquer pessoa hoje. Dito isto, aposto que bons designs de interface do usuário são todos, até certo ponto, baseados em geometria.
Tikhon Jelvis

2

Vamos mudar sua pergunta -

Os "designers de interface do usuário" estão fadados a projetar apenas a arquitetura da informação e as camadas de apresentação? Existe algo que eles podem fazer para treinar seus cérebros para serem mais eficazes no design de camadas de sistema agradáveis ​​e eficientes?

Parece que eles "designers de interface do usuário" teriam que ter uma perspectiva completamente diferente - teriam que olhar de dentro para fora da caixa; em vez de olhar de fora da caixa.

A opinião de Alan Cooper "Os presos estão fugindo do asilo" é que não podemos ter sucesso com as duas perspectivas - podemos aprender a usar bem um chapéu, mas não podemos simplesmente trocar de chapéu.


2

Eu acho que é porque uma boa interface do usuário não é lógica. Uma boa interface do usuário é intuitiva.

Os desenvolvedores de software geralmente fazem mal ao "intuitivo"


Excelente ponto, exige que o outro lado do cérebro
Chris Ballance

Não existe algo intuitivo para a interface do usuário. É semelhante ao que eu já sei, mas isso é um pouco diferente.
1111 Stephan Stephangermont

Nada é "intuitivo", tudo é aprendido. Intuitivo é uma palavra usada pelos empresários para fazer os programadores suarem.
11119 Bernard Igiri

falado como um verdadeiro programador .... e essa é a raiz do problema.
22411 Gregor Brandt

@gbrandt Intuitivo é uma combinação "familiar" e "simples". Ainda é um objetivo pelo qual lutar. O difícil da usabilidade é que o que é intuitivo para alguns não é necessariamente intuitivo para outros. @ Stephanie está certo que "intuitivo" não é um "fato" difícil, é relativo ao usuário.
TM.

2

Um enquadramento útil é considerar ativamente o que você está fazendo como projetar um processo de comunicação. Em um sentido muito real, sua interface é uma linguagem que o usuário deve usar para informar ao computador o que fazer. Isso leva a considerar uma série de pontos:

  1. O usuário já fala esse idioma? Usar uma interface altamente idiossincrática é como se comunicar em um idioma que você nunca falou antes. Portanto, se sua interface deve ser idiossincrática, é melhor se apresentar com os termos mais simples e com poucas distrações. Por outro lado, se sua interface usa idiomas aos quais o usuário está acostumado, eles ganharão confiança desde o início.
  2. O inimigo da comunicação é o barulho. O ruído auditivo interfere na comunicação falada; o ruído visual interfere na comunicação visual. Quanto mais barulho você conseguir cortar da interface, mais fácil será se comunicar com ela.
  3. Como na conversa humana, muitas vezes não é o que você diz, é como você diz. A maneira como a maioria dos softwares se comunica é grosseira a ponto de dar um soco na cara se fosse uma pessoa. Como você se sentiria se fizesse uma pergunta a alguém e eles sentassem lá e o encarassem por alguns minutos, recusando-se a responder de qualquer outra maneira, antes de responder? Muitos elementos da interface, como barras de progresso e seleção automática de foco, têm a função fundamental de polidez. Pergunte a si mesmo como você pode tornar o dia do usuário um pouco mais agradável.

Realmente, é um pouco difícil determinar o que os programadores pensam na interação da interface como sendo outro que não seja um processo de comunicação, mas talvez o problema seja que ela não é vista como algo.


2

Já existem muitos bons comentários, então não tenho certeza de que posso acrescentar muito. Mas ainda...

  • Por que um desenvolvedor espera projetar uma boa interface do usuário?
  • Quanto treinamento ele teve nesse campo?
  • Quantos livros ele leu?
  • Quantas coisas ele projetou ao longo de quantos anos?
  • Ele teve a oportunidade de ver a reação de seus usuários?

Não esperamos que um "Joe the encanador" aleatório seja capaz de escrever um bom código. Então, por que esperamos que o "Joe the programmer" aleatório crie uma boa interface do usuário?

Empatia ajuda. Separar o design da interface do usuário e a programação ajuda. O teste de usabilidade ajuda.

Mas o design da interface do usuário é um ofício que precisa ser aprendido e praticado, como qualquer outro.


Exatamente o que eu estava pensando, como o "desenvolvedor" se relaciona com o "User Interface Designer"?
Jorge Córdoba

@Jorge, aqui está o que se relaciona: muitos desenvolvedores precisam criar interfaces de usuário para seus empregadores, mesmo que não sejam designers. Na minha empresa, não temos nenhum artista. Nossos aplicativos não parecem muito ruins. Nesse caso, você precisa ter análises de grupo e outras coisas para garantir que o design seja agradável.
TM.

@TM: O design não é necessariamente UI / UX Design. Claro que pode parecer bom, mas isso não significa que funciona bem .
22611 Kevin Peno

2

Os desenvolvedores não são (necessariamente) bons no design da interface do usuário pelo mesmo motivo que não são (necessariamente) bons em tricô; é difícil, é preciso prática e não faz mal alguém mostrar como, em primeiro lugar.

A maioria dos desenvolvedores (incluindo eu) começou a "criar" interfaces de usuário porque era uma parte necessária da criação de software. Até que um desenvolvedor se esforce para ser bom nisso, ele não será.


2

Para melhorar, basta procurar nos sites existentes. Além dos livros já sugeridos, você pode dar uma olhada no excelente livro de Robin Williams, "The Non-designers Design Book" ( link higienizado da Amazon )

Veja o que é possível no design visual, examinando também as várias apresentações no The Zen Garden .

Design de interface do usuário é definitivamente uma arte, como ponteiros em C, algumas pessoas entendem e outras não.

Mas pelo menos podemos rir de suas tentativas . BTW Obrigado OK / Cancelar por uma história em quadrinhos engraçada e Joel por colocá-lo em seu livro "The Best Software Writing I" ( link higienizado da Amazon ).


2

A interface do usuário não é algo que possa ser aplicado após o fato, como uma fina camada de tinta. É algo que precisa estar lá no início e com base em pesquisas reais. É claro que há toneladas de pesquisas sobre usabilidade disponíveis. Ele precisa não apenas estar lá no início, mas também formar o núcleo do motivo pelo qual você está criando o software: existe alguma lacuna no mundo, algum problema e isso precisa ser feito. mais utilizável e mais eficiente.

O software não existe por si só. A razão de existir uma parte do software é PARA PESSOAS. É absolutamente ridículo até tentar ter uma idéia para um novo pedaço de software, sem entender por que alguém precisaria. No entanto, isso acontece o tempo todo.

Antes de escrever uma única linha de código, você deve passar pelas versões em papel da interface e testá-la em pessoas reais. Isso é meio estranho e bobo, funciona melhor com crianças e com alguém divertido atuando como "o computador".

A interface precisa tirar proveito de nossas instalações cognitivas naturais. Como um homem das cavernas usaria seu programa? Por exemplo, evoluímos para ser realmente bons no rastreamento de objetos em movimento. É por isso que interfaces que usam simulações de física, como o iphone, funcionam melhor do que interfaces em que as mudanças ocorrem instantaneamente.

Somos bons em certos tipos de abstração, mas não em outros. Como programadores, somos treinados para fazer ginástica mental e retroceder para entender algumas das abstrações mais estranhas. Por exemplo, entendemos que uma sequência de texto arcano pode representar e ser traduzida em um padrão de estado eletromagnético em uma bandeja de metal que, quando encontrado por um dispositivo cuidadosamente projetado, leva a uma sequência de eventos invisíveis que ocorrem na velocidade da luz em um dispositivo eletrônico. circuito e esses eventos podem ser direcionados para produzir um resultado útil. Isso é algo incrivelmente antinatural que você precisa entender. Entenda que, embora tenha uma explicação perfeitamente racional para nós, para o mundo exterior, parece que estamos escrevendo encantamentos incompreensíveis para convocar espíritos sencientes invisíveis para cumprir nossas ordens.

Os tipos de abstrações que os humanos normais entendem são coisas como mapas, diagramas e símbolos. Cuidado com os símbolos, porque símbolos são um conceito humano muito frágil que requer esforço mental consciente para decodificar, até que o símbolo seja aprendido.

O truque com os símbolos é que deve haver uma relação clara entre o símbolo e o que ele representa. O que ele representa ou precisa ser um substantivo; nesse caso, o símbolo deve se parecer MUITO com o que ele representa. Se um símbolo está representando um conceito mais abstrato, isso deve ser explicado com antecedência. Veja os ícones inescrutáveis ​​na barra de ferramentas do msword ou photoshop e os conceitos abstratos que eles representam. É preciso APRENDER que o ícone da ferramenta de corte no photoshop significa CROP TOOL. é preciso entender o que significa CROP. Esses são pré-requisitos para o uso correto desse software. O que traz um ponto importante, cuidado com o conhecimento ASSUMIDO.

Nós só adquirimos a capacidade de entender mapas por volta dos 4 anos de idade. Acho que li em algum lugar uma vez que os chimpanzés conseguiram entender os mapas por volta dos 6 ou 7 anos de idade.

A razão pela qual os Guis tiveram tanto sucesso no início é que eles mudaram um cenário de interfaces principalmente textuais para computadores, para algo que mapeou os conceitos de computador para algo que se assemelhava a um lugar físico. Onde os guis falham em termos de usabilidade é onde eles param de se parecer com algo que você veria na vida real. Existem coisas invisíveis, imprevisíveis e incompreensíveis que acontecem em um computador que não têm nenhuma semelhança com qualquer coisa que você já viu no mundo físico. Parte disso é necessária, já que não faria sentido apenas criar um simulador de realidade. A idéia é economizar trabalho, então é preciso haver um pouco de mágica. Mas essa mágica tem que fazer sentido e ser fundamentada em uma abstração de que os seres humanos estão bem adaptados à compreensão. É quando nossas abstrações começam a ficar profundas e em camadas, e incompatível com a tarefa em questão de que as coisas quebram. Em outras palavras, a interface não funciona como um bom mapa para o software subjacente.

Existem muitos livros. Os dois que li e, portanto, posso recomendar, são "The Design of Everyday Things", de donald norman, e "The Human Interface", de Jef Raskin.

Eu também recomendo um curso de psicologia. "O design das coisas cotidianas" fala um pouco sobre isso. Muitas interfaces quebram por causa do "entendimento popular" da psicologia de um desenvolvedor. Isso é semelhante à "física popular". Um objeto em movimento permanece em movimento não faz sentido para a maioria das pessoas. "Você tem que continuar pressionando para manter em movimento!" pensa o novato em física. O teste do usuário não faz sentido para a maioria dos desenvolvedores. "Você pode simplesmente perguntar aos usuários o que eles querem, e isso deve ser bom o suficiente!" pensa o principiante da psicologia.

Recomendo Discovering Psychology, uma série de documentários da PBS, organizada por Philip Zimbardo. Caso contrário, tente encontrar um bom livro de física. O tipo caro. Não a porcaria de auto-ajuda de ficção científica que você encontra em Borders, mas o material pesado e encadernado que você só pode encontrar em uma biblioteca da universidade. Este é um fundamento necessário. Você pode fazer um bom design sem ele, mas terá apenas uma compreensão intuitiva do que está acontecendo. Ler alguns bons livros lhe dará uma boa perspectiva.


2

Se você lesse o livro "Por que o software é péssimo", teria visto a resposta de Platt, que é simples:

  1. Os desenvolvedores preferem o controle à facilidade de uso
  2. As pessoas comuns preferem a facilidade de uso ao controle

Mas outra outra resposta à sua pergunta seria "por que a odontologia é tão difícil para alguns desenvolvedores?" - O design da interface do usuário é melhor feito por um designer de interface do usuário.

http://dotmad.net/blog/2007/11/david-platt-on-why-software-sucks/

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.