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.