Simplicidade é super-estimada

O quão simples é simples demais?

Gabriel Colombo
UX Collective 🇧🇷

--

"Simples, rápido e fácil de usar".

Esse é o lema que define a maioria das empresas de tecnologia atualmente. Impulsionadas por metodologias ágeis, tais empresas se esforçam por entregas mais rápidas e ciclos de iteração mais frequentes.

Porém, para conseguir entregas mais rápidas, o resultado deve ser simples. Mas o quão simples? Um dos princípios da metodologia LEAN afirma o seguinte:

”Mantenha as coisas simples. Mantenha os requisitos simples. Mantenha a solução técnica simples. Encontre o caminho mais fácil de satisfazer as necessidades do usuário. Não exagere na engenharia. Não gaste muito tempo considerando requisitos futuros que podem nunca se materializar. Coloque algo simples no mercado e melhore baseado em feedback real dos usuários.” — (fonte)

O problema é que "simples" geralmente acaba sendo tratado como "mínimo", resultando em funcionalidades problemáticas que não agregam muito valor para o usuário até a próxima iteração, deixando a experiência de usuário falha.

Simplificar é a melhor abordagem? Nem sempre. Requisitos podem sofrer alterações durante o processo de criação, aumentando sua complexidade.

Para entendermos melhor esse conceito, vamos explorar melhor o significado de simplicidade.

Entendendo simplicidade

A maneira mais fácil de descrever simplicidade é ser desprovido de complexidade desnecessária.

Particularmente eu prefiro dizer que simplicidade é saber identificar as partes essenciais de um processo — Como fornecer uma gama de funcionalidades suficiente para que os usuários consigam satisfazer suas necessidades sem interferências desnecessárias no fluxo da aplicação.

Uma das armadilhas mais comuns ao simplificar um processo é focar somente nos aspectos técnicos, reduzindo ou ocultando funcionalidades, por exemplo.

O problema é que, quando mal planejado, esse processo de simplificação pode acarretar na perda de qualidade do produto.

A lei de Tesler

Por que certas coisas nunca serão tão simples quanto deveriam

Também conhecida como lei da conservação de complexidade, a lei de Tesler apresenta o seguinte conceito:

Cada aplicação possui uma determinada quantidade herdada de complexidade que não pode ser removida ou escondida. Pelo contrário, ela deve ser abordada, seja no processo de desenvolvimento do produto ou na interação do usuário.

Apesar de afirmar que a complexidade de uma aplicação pode ser lidada através de duas vertentes diferentes, Larry Tesler defende a ideia de que um engenheiro deve dedicar mais tempo reduzindo a complexidade da aplicação ao invés do usuário ter que dedicar mais tempo na tarefa que estão tentando realizar.

É irrefutável dizer que reduzir a complexidade de um processo para simplificar uma interface soa como uma necessidade, mas tais decisões não devem ser baseadas somente nos aspectos técnicos da aplicação — Psicologia também exerce um papel importante ao realizar essas decisões.

Encontrando um ponto de equilíbrio

Discussões sobre como uma funcionalidade deve ser criada geralmente surge da seguinte questão:

"Devemos nós retirar certos controles do usuário para simplificar a experiência ou dar a ele maior controle ao preço de uma experiência mais complexa?"

John Maeda nos dá uma maneira bem direta de lidar com esse problema:

O quão simples você consegue fazer isso? vs O quão complexo isso deve ser?

Inicialmente, você quer que a aplicação seja simples e agregue valor para o usuário de maneira simples. Por outro lado, ela deve fornecer funcionalidades suficientes para o usuário satisfazer suas necessidades.

Então, qual é o objetivo? Reduzir funcionalidades sem perdas significativas

Uma representação visual sobre o equilíbro entre simplificação e complexidade

Sabendo que — de acordo com a lei de Tesler — um processo pode ser simplificado somente até um certo ponto, vamos analisar algumas abordagens:

Delegar controle para a aplicação

Essa abordagem é mais adequada para situações que envolvem tarefas mais complexas.

Computadores são muito melhores em lidar com complexidade do que seres humanos, então situações como realização de cálculos, multi-tasking, compreensão de padrões complexos e análise de grandes volumes de dados pode ser delegados à aplicação, reduzindo a carga cognitiva repassada para o usuário.

Para compensar essa perda de controle, os resultados de tais operações podem ser apresentados de maneira inteligente (smart defaults), realizando tarefas automáticas, simplificando a interação e tornado a experiência mais previsível.

O problema com essa abordagem é o fato dela ser extremamente dependente de feedback. Se em algum momento a aplicação falhar em comunicar o seu estado atual para o usuário, a experiência se tornará confusa.

Por exemplo, ao filtrar uma tabela, caso os filtros aplicados não estejam visíveis (ex: “Exibindo resultados para…”), o usuário poderá questionar o estado atual da aplicação.

Dar maior controle aos usuários

Essa abordagem é mais adequada em situações que envolvem manipulação ou customização da aplicação.

Em determinadas situações, a aplicação deve fornecer suporte à customização, delegando certas decisões para o usuário.

No lado técnico, essa abordagem pode ocasionar o surgimento de modes.

Modes são, basicamente, situações onde uma única ferramenta se comporta de maneira diferente conforme o estado atual da aplicação. Por exemplo, a tecla caps lock, quando ativa, altera o estado da aplicação, transformando o texto digitado em caixa alta.

A utilização excessiva de modes dificulta o gerenciamento apropriado dos estados da aplicação, prejudicando a experiência final.

Por outro lado, Bruce Tognazzini afirma que seres humanos possuem uma certa resistência à redução de complexidade. Tarefas na qual a complexidade é esperada— como transações bancárias — podem causar a impressão de insegurança ou mal-funcionamento se simplificadas em excesso.

Tecnicamente, o processo pode levar apenas um segundo para ser realizado. Mas, quando uma operação é designada “complexa”, como por exemplo, uma transferência bancária, não consideramos o fato de que a operação possa ser realizada tão rapidamente. Inclusive, existem aplicações que exibem indicadores de progresso “falsos” somente para satisfazer essa condição.

Sendo assim, sempre considere que os fatores psicológicos sejam levados em consideração quando for necessário a tomada de decisões por parte dos usuários.

Conclusão

Não pense que simplicidade é uma questão fácil de ser abordada. Dedique um tempo para descobrir em qual momento você está proporcionando o valor necessário para atender os requisitos do usuário.

Simplicidade precisa de complexidade, então o que é considerado simples pode nem sempre ser simples, apenas estar fazendo um bom trabalho em esconder sua complexidade.

Aqui vão alguns pontos para serem considerados ao simplificar alguma funcionalidade:

  • Procure a melhor maneira de superar expectativas sem exagerar nos requisitos.
  • Tente reduzir a duração de uma tarefa. Caso não seja possível, pense em como você pode tornar a espera mais tolerável.
  • Forneça passos compreensíveis em direção ao resultado final, garantindo que cada etapa da sua aplicação se encaixe apropriadamente no fluxo de utilização.
  • Reduza a quantidade de distrações.
  • Apresente os dados de maneira inteligente para o usuário, a fim de facilitar sua experiência.

Obrigado pela leitura, espero que tenham gostado!

Fique a vontade para me contatar no twitter! @gcolombo_.

Até a próxima!

--

--

Front-end Developer - Writing about UX, Psychology & Web Development. Find me @gcolombo_