Baguete
InícioArtigos> A Dificuldade da Simplificação

Tamanho da fonte:-A+A

A Dificuldade da Simplificação

leticia@hypervisual.com.br // quarta, 17/03/2010 00:00

s é mais. Esta sábia frase foi dita em 1919, por Mies van der Rohe, sintetizando a filosofia da renomada escola de design e arquitetura alemã Bauhaus que fez história. Que impacto teria essa frase dita por um arquiteto do século passado nas nossas empresas de tecnologia atuais?

Atendo há anos o mercado de tecnologia, e me deparo constantemente com interfaces complexas, nas quais o programador, na maior das boas intenções, quis disponibilizar aos usuários todos os recursos do software em uma única tela. Ele pensa estar fazendo um grande bem, pois é exatamente aquilo que ele gostaria de ter se fosse usuário.

O problema é que o desenvolvedor possui exigências completamente diferentes dos usuários médios. O que o usuário deseja é realizar a sua tarefa diária da forma mais simples e direta possível, o que significa, muitas vezes, aproveitar apenas cerca de 20% dos recursos do sistema. Os outros 80% provavelmente nunca serão sequer testados.

Colocando-se no lugar daquela pobre criatura que é obrigada a passar oito horas por dia utilizando ferramentas desenvolvidas com tanto carinho: será que ela não seria muito mais feliz se esses recursos estivessem facilmente acessíveis em uma interface visualmente limpa e direta?

É importante ressaltar que essas considerações têm alguns contrapontos que devem ser avaliados: não adianta tirar opções demais, tornando o produto um grande enigma para o usuário. Também se deve saber quais são as reais necessidade desse usuário. Não adianta colocar na tela 20% de inutilidades. Para fazer uma correta avaliação, basta entrar em contato com os clientes, que normalmente se dispõem a colaborar de bom grado, pois serão beneficiados depois.

Ao simplificar a interface, a área de suporte da empresa também irá agradecer, pois não terá mais que passar horas por dia esclarecendo as mesmas dúvidas de sempre, geradas pelo alto grau de complexidade da interface. Igualmente, os projetos andariam mais rápidos, pois o foco do desenvolvimento seria voltado às principais funcionalidades do aplicativo.

A grande dificuldade que temos hoje em dia é tentar fazer com que os programadores pensem simples. Muitas vezes também mostram resistência para simplificar seus produtos. Creio que, no fundo, eles não acreditam que será uma boa ideia. Pensam que o produto sairá perdendo, quando na verdade, sairá ganhando. Menos é mais, esta é uma grande lição ditada há muito tempo atrás, e que nunca foi tão atual.

Think simple and be happy!

* Letícia Polydoro é diretora da Hypervisual.
COMENTÁRIOS ANTERIORES
Stefano Baron

postado em: 17/03/2010 - 17:37

Excelente artigo. Sou totalmente adepto da simplicidade. KISS é umas das minhas filosofias de vida. Tenho saudades dos sistemas nos terminais IBM 3270, com aquele fósforo verde forte de doer (mas muito cool) onde os usuários se concentravam apenas no que precisava ser feito. A "internet" era o jornal impresso e o orkut era a roda de chimarrão. Tudo bem, exagerei..

Luciano Costa

postado em: 17/03/2010 - 19:54

"Menos é menos!" Se não me engano foi o DHH quem disse isso, e concordo com ele. A batida "menos é mais" dá a idéia de que "mais" é melhor, e não é! Ainda, um dos princípios do Manifesto Ágil diz que "simplicidade (a arte de maximizar a quantidade de trabalho não feito) é essencial". Boas empresas de desenvolvimento de software buscam ajuda de especialistas em design e usabilidade.

Ivan H. Schuster

postado em: 18/03/2010 - 08:40

Nem menos, nem mais. Apenas o correto.
Parece-me que a autora do artigo parte do pressuposto que os sistemas estão sendo desenvolvidos sem a participação dos usuários. Será?
Apesar de concordar que muitos sistemas possuem interfaces que mais atrapalham e aterrorizam do que auxiliam, acredito que o problema não esteja na falta de participação dos usuários, mas em inúmeros outros fatores.
Por exemplo,a baixa compreensão, por parte dos desenvolvedores, das reais necessidades dos usuários.
Muitos desenvolvedores são excelentes técnicos, mas entendem nada sobre o negócio envolvido. Como resultado, produzem grandes peças tecnológicas, mas com baixa praticidade.
Outra questão a ser levantada, é a necessidade (ou desejo) das empresas desenvolvedoras em atender o maior número de mercado possível, resultando em sistemas genéricos. Isto faz com que os sistemas tragam embarcados em si, inúmeras funcionalidade que atendem a um ou outro mercado, impactando de forma negativa todos os demais.
Enfim, o problema de interfaces ruins, com excessos de funcionalidades, com leiautes ruins, com falta de padronizaão, etc. existe e precisa ser evitado. Só entendo que as causas não restringem-se a falta de diálogo dos desenvolvedores com os usuários.

Gilberto Strapazon

postado em: 18/03/2010 - 09:59

Ótimas observações Letícia.

Simplificar é agregar inteligência ao sistema. Acho muito oportuno seu comentário sobre a tendência dos programadores, quanto a colocarem excesso de recursos de software numa mesma tela, ou num mesmo programa.

Excessos de mecanismos são prejudiciais, tanto quanto a falta de funcionalidade que observamos em muitos sistemas.

Um programa inteligente, ou que utilize conceitos de sistemas especialistas, deve ter previsão no seu funcionamento para executar, sem esperar pela solicitação do usuário, muito mais do que os tradicionais 10% a 20% (quando muito) do que a ampla maioria dos usuários fazem.

Seja otimizando a navegação entre campos, telas, etc, seja efetuando pré-processamentos, ou por outro lado, realizando uma grande quantidade de tarefas pela dedução (mecanismos de inferência) das atividades e passos complementares que o usuário vai realizar, o sistema deve fazer mais com menos.

Mas também, lembremos que fazer mais com menos interação do usuário, também deve seguir um conceito de “menos é mais”. Eliminar interações desnecessárias, atuar como um expert na atividade que realiza, são atributos de um programa inteligente.

Uma interface bem feita é importantíssima. E fazer com que esta interface tenha um funcionamento de alto nível, é mais ainda.

Existe uma relação inversa entre cada recurso que o programa disponibiliza facilitando a vida do usuário e a quantidade de trabalho de programação necessária para criar seu funcionamento. Ou seja, quanto mais simples (e poderoso) para o usuário, a tendência é de que haverá muito mais trabalho para o programador.

Existe uma certa resistência entre trabalhar para criar soluções inteligentes de software, amigáveis ao usuário final e, desenvolver objetivando facilitar a vida do programador ou de usar aqueles recursos que este está interessado.

Devemos lembrar, nosso trabalho é para o usuário final, não para nós mesmos. Imagine um restaurante em que o cozinheiro tende a ignorar o gosto dos clientes, e impor seus gostos pessoais, mesmo que o restaurante acabe ficando quase vazio, ou que o pessoal da cozinha nem consiga limpar os pratos depois.

É importante interagir com os usuários para avaliar suas necessidades. Mas também, pela experiência, aprendemos que apenas reuniões não fornecem tudo que precisamos saber. Um certo distanciamento, como apenas estar por perto, observando o que os usuários realmente fazem quando estão por sua própria conta, fornece muitos pontos importantes.

Outra coisa importante de lembrar, é que o processamento faz parte da interface, tanto quanto quaisquer retornos fornecidos ao usuário. Uma mensagem de erro que não seja extremamente clara e precisa sobre o ponto e o que causou um problema, é inútil.
Inclusive, neste aspecto, tratamentos de erro devem ser inteligentes sim! Veja, voltando para o exemplo comparativo do restaurante, boa parte dos programas que vemos por aí, servem arroz queimado para o cliente. Se o cozinheiro viu isto, deve por sua própria conta preparar outro arroz, trocar os pratos e servir o cliente, e também avisá-lo sobre a demora se for o caso. Um programa razoavelmente bem feito tem que ter estas características.

Dá trabalho? Sim, dá muito trabalho. Mas é o meu trabalho e a minha opinião pessoal. Eu não acredito em fazer “programinha” e tenho pavor de trabalhos sem um pingo de acabamento ou interfaces precárias. Acredito que nossa área é trabalhar na interação Homem X Máquina e que isto faz parte do processo de evolução social, econômica, científica, enfim, de tudo em que poderemos realizar e melhorar com a utilização dos computadores.

Nosso trabalho é criar boas soluções, dentro é claro, dos recursos disponíveis, mas que devem ser necessários para o que se pede. Não existe sistema de grátis, assim como nenhum restaurante distribui comida. Pode ser um sanduíche, mas pode ser bem feito e ter um guardanapo para acompanhar.
Se o cliente do restaurante deve pegar uma mesa, buscar as cadeiras, levar o pedido na cozinha, comer qualquer coisa que seja servida, ou então receber a comida numa dúzia de potinhos separados e ainda descobrir que é ele quem tem de lavar a louça porque o pessoal da cozinha não gosta, é algo de se pensar. Vemos isto acontecer em software a toda hora e é preciso melhorar. Temos excelentes exemplos no mercado internacional, e não estou falando das mega-corporações de software.

E também é possível fazer tanto trabalho de forma simples. De que adianta tantos frameworks se isto não for usado justamente para otimizar a qualidade e a produtividade? Não está na hora de pararem de reinventar a roda o tempo todo?

Simples de usar, pode ser não tão trabalhoso de fazer. Mas se tiver que ser, que seja, mas também, já como o alicerce para um próximo passo em que podemos utilizar aquilo que aprendemos e realizamos.


Gilberto Strapazon
http://cwconnect.computerworld.com.br/zenta

Priscila Coelho Blauth

postado em: 18/03/2010 - 10:00

Concordo, Ivan. Complemento comentando da dificuldade em se conseguir isso.

Não é raro quando nem a empresa desenvolvedora de software nem a empresa cliente invista em pessoas apropriadas e em tempo para que essa comunicação ocorra de forma eficaz.

Já é uma grande evolução a empresa desenvolvedorra tentar aproximar o usuário na elicitação de requisitos/user stories. Mas pede para o cliente investir tempo daquele usuário que, se conhece realmente o negócio da empresa para poder ser um bom fornecedor de requisitos, deve ser estratégico na empresa e com tarefas igualmente importantes. Lá pela 5ª semana o cliente já acha que é besteira e corta a diversão.

CLARO que estou generalizando e relatando um caso pessimista (ou realista?). A questão é que falta maturidade de ambos os lados para o menos-ser-mais-ou-o-correto, não apenas dos técnicos megalomaníacos.

Christian Mendes

postado em: 18/03/2010 - 11:27

Não pretendo fugir do enfoque na indústria do desenvolvimento de sistemas, mas afirmo que a dificuldade de simplificação está em muitos outros mercados.

Tem muita "firula", como diria meu pai, em todas as soluções corporativas. Especialmente consultorias. É firula na consultoria de marketing, é firula na consultoria de gestão. Alguns profissionais, e até mesmo grandes grupos de profissionais, tendem a criar métodos complexos de diagnosticar problemas e propor soluções.

Esses dias eu conversava com uma amiga que me confessou ter encontrado uma oportunidade de consultoria em uma empresa da área metal-mecânica. "Eles PRECISAM de um trabalho de pesquisa de clima, seguido por uma política de comunicação interna e a criação de um plano estratégico, não esquecendo de uma consultoria em gestão de mudanças para garantir que tudo isso ocorra da melhor forma", disse ela. Não sei se isso funcionará ou não, mas me soou como dar uma Aspirina prá quem tá com dor, mas sem antes perguntar onde realmente tá doendo.

Simplificar é se fazer claro, perder menos tempo e fazer aquilo que realmente importa.

Steve Jobs

postado em: 18/03/2010 - 12:19

I totally agree... less is more.

Letícia Polydoro

postado em: 18/03/2010 - 17:20

Olá pessoal, fico bastante satisfeita em ver que o artigo está propiciando um debate muito interessante sobre o tema. Considero praticamente todas as colocações pertinentes, e teriam muitos desdobramentos. Me coloco à disposição caso queiram conversar mais sobre o assunto.

Jean Clecio

postado em: 18/03/2010 - 20:13

Excelente tema. Simplificar em software é: Atender a necessidade do usuário proporcionando ganho de tempo e economia (tempo/dinheiro). Sou adepto da reflexão p/ simplificar o máximo, seja qual área for.

Denise de Oliveira

postado em: 19/03/2010 - 13:34

Concordo totalmente com a simplificação, mas é importante relembrar da frase de Albert Einstein: "Make everything as simple as possible, but not simpler."

Joao Sb

postado em: 19/03/2010 - 15:32

Tudo bem, o programador deve entender o que o usuário precisa mas em contraponto o usuário não precisa entender nada de tecnologia? Os melhores trabalhos que desenvolvi na construção de sistemas sempre contaram com a participação de usuários interessados em tecnologia. Quando o usuário chave não se compromete com os aspéctos tecnológicos o trabalho tende a ser penoso com resultados duvidosos.

Eduardo Gimenes

postado em: 30/04/2010 - 11:04

É importante que os GPs e desenvolvedores dêem importancia para as áreas do conhecimento que tangem a usabilidade e que deverão ser vistas com carinho no projeto.

Arquiteturação da informação, taxonomia, aspectos cognitvos, bom senso, ergonomia deverão ser estudados para que a usabilidade seja eficiente.

Outro ponto fundamental é conhecer profundamente o perfil do usuários do produto, quanto maiores suas dificuldades maiores os seus desafios.

Um bom exemplo disso é a crescente utilização de sistemas "touch" em empresas onde o atendimento precisa de agilidade.

Entre muitas vantagens trazidas pela usabilidade estão a agilidade, diminução de erros e economia de tempo.