O YAGNI (junto ao KISS e ao DRY) é um princípio base muito importante na vida de um desenvolvedor. O conceito que explica o YAGNI, diz que devemos isolar as etapas da nossa aplicação em funcionalidades que realizem o seu objetivo da forma mais simples e direta possível, evitando criar coisas desnecessárias que fujam do escopo inicial.
Vou dar um exemplo do mundo real, que é um aprendizado da minha carreira - motivo desse post - e que envolve projeto de software. Eu estava trabalhando em uma nova funcionalidade, e essa funcionalidade havia sido dividida e isolada em unidades menores que chamamos de histórias. Cada história contava uma etapa do processo, e os requisitos de completude. Por esse meio, nós temos uma noção do ponto de partida, as tecnologias necessárias, e o produto mínimo e viável para implantar a história.
De início, o desenvolvimento parecia constante e equilibrado, focado na solução. Mas decidimos dividir a equipe em outras histórias, e eu me perdi no desenvolvimento. Como a equipe estava dividida, quando precisamos implantar a história (e ela apresentava problemas) passamos a unir outras funcionalidades nela, aumentando o escopo e gerando mais bugs que atrasaram a nossa entrega.
Mas o que isso tem relação com o YAGNI? Tudo! Deixamos de focar no mínimo, quando tentamos adicionar mais código para corrigir os problemas. E o produto deixou de ser viável pois apresentou mais problemas do que funcionamento. Tornamos o desenvolvimento complexo, como que na tentativa de matar uma barata com um míssil.
Em resumo desse artigo, estou escrevendo para que eu mesmo não me esqueça de que é preciso focar, no desenvolvimento, naquilo que é mais importante para entregar a funcionalidade sempre considerando que o produto é incremental e sua evolução é contínua.
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)