YAGNI é um acrônimo para “You Aren’t Gonna Need It” (Você não vai precisar disso) mantra pregado pela Extreme Programming (XP) onde se diz que não devemos adicionar possíveis novas funcionalidades ao software a não ser que seja necessário.

Nós desenvolvedores de software temos a péssima mania de tentar prever o futuro, implementando “aquele recurso” que economizará muito tempo, que convenhamos quase nunca usamos.

Toda “futurologia” empregada por mim só renderam dores de cabeça, pois quase nunca são utilizados, além da manutenção que será aplicado no código, sendo uma carga desnecessária ao projeto.

Quando inflamos o escopo da implementação geramos mais camadas e dimensionamos de forma errônea o esforço, impactando diretamente no tempo de desenvolvimento do projeto.

Com o tempo elevado no projeto temos consecutivamente um gasto maior ($$$), muitos desenvolvedores não visualizam por esse ângulo, porém convido a refletir sobre esse ponto.

Estou plenamente convencido que devemos focar em entregar soluções sólidas, eficazes e bem construídas.

Devemos deixar os problemas do futuro para o futuro, pois muito provavelmente o escopo do projeto sofrerá alterações, o que é urgente hoje amanhã pode não ser mais. 😉

O custo para refatorar o código é amplo e depende de diversos fatores dentre eles quando será executado, por exemplo;

Refatorar código em desenvolvimento sempre será mais tranquilo, menos custoso e estressante do que em homologação e principalmente em produção, pois estão em camadas muito diferentes.

Quero deixar claro que implementar apenas o necessário é diferente de fazer uma boa implementação, sempre devemos nos preocupar em escrever códigos simples, reutilizáveis, coesos, seguindo padrões etc.

Após adoção do YAGNI a forma como soluciono os problemas mudou, aumentando o foco, escrevendo menos código consecutivamente mais legível e menos verboso. 🙂

É importante que o time siga esse princípio, porém caso não siga você certamente encontrará resistência, siga implementando aos poucos e ressaltando as vantagens e benefícios do YAGNI e com o tempo a adoção será natural.

Considerações finais:

Podemos observar que o princípio YAGNI é um conceito simples, porém como quase tudo que é simples sua compreensão e adoção é complexo, porém com ganhos significativos.

  • Principais erros cometidos sem o uso do YAGNI:

    • Códigos mais verbosos;
    • Mais código para manter;
    • Funcionalidades desnecessárias;
    • Códigos difíceis de se manter.
  • Pontos positivos do YAGNI:

    • Economia de tempo;
    • Economia de dinheiro;
    • Menos estresse; 🙂
    • Menos código para manter;
    • Melhor qualidade de código.

Convido a todos a deixar seu comentário, descrevendo seu ponto de vista e/ou sua experiência com  o princípio.

Espero que o post tenha sido útil e que tenha lhe agregado valor.

Grande abraço e sucesso nos projetos.