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?
user-interface
Chris Ballance
fonte
fonte
Respostas:
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;)
fonte
O design da interface do usuário é difícil
Para a pergunta:
Tente fazer a pergunta inversa:
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:
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:
Essa é a diferença essencial entre esses dois grupos - entre desenvolvedores e designers:
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.
fonte
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
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
Leia as diretrizes da interface humana da Apple .
fonte
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.
fonte
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.
fonte
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:
fonte
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 ...
fonte
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.
fonte
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.
fonte
"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.
fonte
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).
fonte
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.
fonte
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"
fonte
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:
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.
fonte
Já existem muitos bons comentários, então não tenho certeza de que posso acrescentar muito. Mas ainda...
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.
fonte
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á.
fonte
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 ).
fonte
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.
fonte
Se você lesse o livro "Por que o software é péssimo", teria visto a resposta de Platt, que é simples:
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/
fonte