sexta-feira, 30 de março de 2007

Visão do Desenvolvedor vs Visão do usuário


Alguma vez você já disse, ou ouviu alguém dizer "Foi o usuário que fez merda"? Creio que sim. Bom, talvez não usando essas plavaras (rs), mas muitas vezes o usuário é culpado pelo uso errado do sistema.

Na minha opinião, na maioria das vezes que o usuário utiliza o sistema de forma errada, a culpa é do sistema, ou pelo menos uma parcela da culpa.

O problema é que costumamos desenvolver sistemas do ponto de vista da tecnologia, e não do usuário. O que pra nós é claro e fácil, para o usuário pode ser bastante confuso, e induzir a erro. Nós desenvolvedores e analistas possuimos uma série de conhecimentos técnicos sobre o funcionamento de um software que a grande maioria dos usuários não têm. E nem precisam ter. Você precisa conhecer o funcionamento da sua TV ou aparelho de som para utilizá-los?

Um exemplo simples, mas que ilustra bem esse problema é a questão de campos para informar data. Não é incomum um site ou programa que exijam que a data seja digitada no formato dd/mm/aaaa.

Algumas vezes essa exigência é informada ao usuário apenas exibindo a máscara, e espera-se que ele vá entender o que isso significa, outras vezes, nem é informada e o usuário que tente descobrir porque sua data não é válida.

Na visão de desenvolvedor, é fácil entender que a data deve ser 01/04/2007, mas para uma "pessoa comum", uma data pode ser apresentada de várias formas. Se você ver em algum lugar a data "1/4", vai reconhecer como uma data válida, já entendendo como o ano atual. Se um amigo seu te fala "Dia Primeiro agora haverá um churrasco lá em casa", você vai entender isso como uma data válida, e vai saber que ele se refere ao dia 1 do próximo mês. Todas essas são datas válidas. Ou por acaso quando fala uma data para alguém você fala "Olha, dia Zero Um do Zero Quatro de Dois mil e Sete vai ter um churrasco lá casa"?

Não estou dizendo que nesse caso você deveria fazer o programa reconhecer o texto "Próximo dia 1°" como uma data válida (Embora, se fizesse isso, ia ficar bem legal :) ). Mas se o usuário digitar 1/4/07, por que não tratar a data e transformá-la numa data aceitável para o computador? Ou mesmo "1/4", podemos subentender como "01/04/2007".

Esse caso da data foi só um exemplo, para mostrar como o software pode dificultar o uso se ater-se demais ao modelo tecnológico ao invés do modelo do usuário. Em muitos casos que o usuário executou um operação inválida no sistema, ou entrou com dados incorretos, o sistema poderia validar essas operações e informações e avisar ao usuário antes, afinal de contas, se é inválido, porque o sistema deixou fazer?

Creio que podemos reduzir bastante os erros do usuário apenas dando uma atenção melhor à nossas interfaces. Uma boa experiência é observar ocasionalmente o usuário enquanto ele estiver utilizando o programa. Dessa forma, é possível perceber melhor quais pontos do sistema podem ser melhorados para facilitar a tarefa do usuário.

Nenhum comentário: