Vivemos em uma constante ebulição de informações, ferramentas, linguagens, tendências, metodologias e tecnologias. Em meio a tantas opções, às vezes é fácil se perder na complexidade sem sequer se dar conta.

Minha crença é que três pontos devem sempre estar presentes:

  1. Simplicidade
  2. Forma
  3. Função

Esses são os três pilares que podem levar um projeto ao sucesso (ou ao fracasso, caso não estejam presentes).

###Simplicidade

A simplicidade é um componente chave de um projeto, garantindo sua manuntenabilidade e extensibilidade. Palavras difíceis de ler, mas de grande valor.

E quando me refiro à simplicidade a um projeto estou falando de todos os componentes: comunicação, design, testes e códigos. Um produto é a junção de todos esses fatores e se qualquer um deles for fraco, mais dia menos dia, seu projeto ruirá.

Em desenvolvimento sentimos sempre o ímpeto de seguir as últimas tendências e as últimas tecnologias. Mas será que o framework X é realmente necessário pro projeto? A arquitetura poderia ser mais simples? Qual o mínimo viável que resolve o problema?

###Forma

Quando pensamos em forma é natural que o pensamento se volte para o design. Uma tela lambível e simples é o supra-sumo para um usuário (ainda que ele não se dê conta disso). Por isso, sempre me pergunto: a ação X poderia ser realizada com menos cliques? Como a experiência Y poderia ser simplificada?

Mas o design não é apenas visual: temos o design de arquitetura, de solução, de código. O que está escrito precisa ter forma, ser compreensível e passível de extensão. A pergunta chave aqui: a forma como estou fazendo é a ideal?

###Função

Por fim, seja uma metodologia, uma classe em Java ou uma tela de um sistema é necessário que haja uma função. Que seja útil e pré-definida.

Ainda que se tenha uma ótima arquitetura, códigos maravilhosamente bem-escritos e uma interface que dê vontade de lamber a tela, todo o trabalho será em vão se a função inexistir ou se o seu impacto for insignificante.

###Mixando tudo

Simplicidade. Forma. Função.

Seja no design, no código, na comunicação, nas metodologias… onde for.

Acordou inspirado e está codando um sistema matador? Que tal responder algumas perguntas?

  1. O que estamos fazendo é simples? Os frameworks que estamos usando são realmente necessários? E a arquitetura? Poderia ser ainda mais simples?
  2. A forma como estamos arquitetando e escrevendo códigos é a ideal? Poderia ser melhor?
  3. Nossa arquitetura tem um propósito bem definido, uma função?

E sobre o design?

  1. Ele é simples o bastante para que o usuário tenha uma excelente experiência?
  2. Os elementos são visualmente agradáveis? Tem forma? Dá vontade de lamber a tela?
  3. O design serve a um propósito tendo uma função?

Nem sempre conseguimos atingir em cheio à todos os pontos, e ainda há muito a ser melhorado e estudado em cada um desses pilares. Mas se cada membro de uma equipe de produto pensar (ainda que bem pouquinho) nesses três pontos um horizonte azul e ensolarado começa a se desenhar.

E todo mundo tem a ganhar: usuário, cliente e equipe.