A simplicidade é uma vantagem, mas infelizmente a complexidade ainda vende melhor
Por que a complexidade vende melhor?
- A complexidade indica esforço
- Artigos com ideias difíceis e detalhes técnicos remetem a suor e lágrimas
- Um sistema com mais componentes e funções parece exigir mais esforço do que um sistema com menos componentes
- Como um resultado complexo é visto como exigindo mais esforço, ele parece mais difícil de fazer e mais valioso
- O esforço que acompanha a complexidade é frequentemente avaliado como de maior qualidade
- A complexidade indica proficiência
- Um sistema complexo com muitas peças em movimento sugere que o projetista é hábil tanto com cada peça quanto em integrá-las
- Um artigo difícil de entender, cheio de jargão técnico e provas, demonstra expertise no tema
- Se uma pessoa comum tem dificuldade em entender uma ideia ou sistema complexos, o criador provavelmente é um especialista
- A complexidade indica inovação
- Um artigo que inventa uma arquitetura de modelo completamente nova é visto como mais novo do que um que aplica uma rede existente
- Um sistema com componentes criados do zero é percebido como mais criativo do que um sistema que reutiliza componentes existentes
- Trabalhos que se baseiam em trabalho prévio ou reutilizam-no não parecem muito inovadores
- A complexidade significa mais funcionalidades
- Um sistema com componentes que podem ser combinados e alinhados sugere flexibilidade para cobrir qualquer base
- Como sistemas complexos possuem mais blocos do que sistemas simples, são vistos como mais adaptáveis e mais capazes de responder a mudanças
Por que a simplicidade é uma vantagem
- Ideias e funcionalidades simples são fáceis de entender e usar
- Isso aumenta a adoção e cria impacto
- Também é fácil de comunicar e receber feedback
- Em contrapartida, um sistema complexo é difícil de explicar e gerenciar, e o usuário pode ter dificuldade para entender o que e como fazer
- Sistemas simples são fáceis de construir e escalar
- Quanto menos componentes, mais fácil é implementar
- Ao usar tecnologia padrão pronta, é mais fácil encontrar pessoas qualificadas para implementar e manter
- Um sistema simples é mais fácil de entender e testar porque tem menos complexidade, código e interações dentro do sistema
- Em contrapartida, sistemas desnecessariamente complexos exigem mais tempo e recursos, o que leva à ineficiência e desperdício
- Sistemas simples têm custo operacional mais baixo
- A implantação de sistema não é a linha de chegada, é a linha de largada
- A maior parte do esforço acontece quando o sistema está em produção, e manter o sistema simples permite reduzir os custos de manutenção e estender a vida útil
- No machine learning, técnicas simples muitas vezes não têm desempenho pior do que técnicas mais sofisticadas
- Em dados tabulares de tamanho médio, modelos baseados em árvore superam redes neurais profundas
- Em problemas de grafos combinatórios, algoritmos gananciosos superam redes neurais de grafos
- A média simples mostra desempenho igual ou melhor do que otimizadores complexos em problemas de aprendizado multitarefa
- Em 32 artigos, métodos simples superaram os métodos complexos em precisão de previsão
- Em recomendação e busca, o produto interno é melhor do que a filtragem colaborativa neural
O problema de recompensar a complexidade
- Incentiva as pessoas a tornarem as coisas inutilmente complexas
- Usar ou construir um método ou sistema simples parece mais fácil, então é avaliado com menor valor
- Como resultado, as pessoas manipulam para obter mais recompensa, e a solução mais simples deixa de ser a mais óbvia
- Promove uma mentalidade de “não foi inventado aqui”, em vez de poupar tempo e esforço reutilizando componentes existentes, as pessoas preferem reconstruir desde o início
- Isso desperdiça tempo e recursos e frequentemente acarreta resultados piores
Como devemos pensar sobre complexidade?
- A meta deve ser resolver problemas complexos com a solução o mais simples possível
- Devemos focar na complexidade do problema, não na complexidade da solução
- Uma solução simples mostra uma visão mais profunda do problema e capacidade de evitar uma solução mais complexa e cara
- Em vez de uma solução complexa que resolve tudo, devemos considerar várias soluções focadas
- Uma solução “faz-tudo” geralmente não é tão flexível e reutilizável quanto esperado
- Como ela existe para vários casos de uso e stakeholders, tende a ficar “fortemente acoplada” e exige mais ajustes em planejamento e migração
- Em contrapartida, é mais fácil operar e descomissionar sistemas de propósito único
Opinião da GN+
- Este texto explica de forma convincente por que a complexidade é preferida e quais são as vantagens da simplicidade. Achei interessante o ponto de que a complexidade é preferida porque sugere proficiência, inovação e recursos.
- Mas é difícil dizer que a solução simples é melhor em todos os casos. Dependendo da natureza do problema, pode ser necessário algum grau de complexidade. Equilibrar simplicidade e complexidade provavelmente será importante.
- No campo de machine learning, foi interessante ver exemplos em que um modelo simples tem desempenho melhor. Parece uma boa prática comparar com métodos simples existentes ao desenvolver um novo modelo.
- Precisamos tomar cuidado para não enfatizar demais a complexidade ao avaliar performance organizacional. Em vez disso, é melhor focar na dificuldade do problema e na efetividade da solução.
- Ao projetar arquitetura, pode ser uma boa ideia considerar múltiplos sistemas simples de propósito único, em vez de um sistema complexo e “faz-tudo”.
1 comentários
Comentário do Hacker News
Resumo: