YAGNI significa que as coisas são feitas quando precisam ser feitas e não antes. Isso não significa que eles nunca terminem, a menos que nunca sejam necessários. Isso significa que você só faz o que dá ao cliente valor comercial imediato . O que significa valor comercial imediato é subjetivo a todo cliente e todo projeto.
Em ambos os casos, você não pode perder nada com o YAGNI.
No outro caso, você perde tempo escrevendo código que nunca é usado e escrevendo testes para código que nunca é usado, e escrevendo documentação para código que nunca é usado e manutenção de código que nunca é usado, as pessoas se perguntando o que esse código faz. e, se alguma vez for usado, ad nauseum.
Exemplo
Se estou trabalhando em um protótipo / prova de conceito ou na versão 1.0 de um aplicativo, não preciso de um design para dimensionar o nível do Facebook. Inferno, não preciso de um design para escalar para o nível do Facebook, até começar a ver que tenho esse tipo de tráfego.
Você acha que Zuckerberg projetou a primeira versão do Facebook para atingir 500 milhões de usuários? Não, ele o projetou e construiu para fazer apenas o necessário e não mais. Se ele tivesse tentado alterar o design para 500 milhões de usuários desde o primeiro dia, o Facebook provavelmente nunca teria sido lançado.
A maneira prática de fazer as coisas é como ele fez isso. Ele começou com PHP e MySQL, e redesenhou e reescreveu, conforme necessário, com base no valor comercial , escalar para milhões de usuários era de enorme valor comercial, mas não no dia 0. No dia 0, apenas o lançamento de algo era um tremendo valor comercial.
Ele planejou redesenhar e reescrever. O que é uma mentalidade diferente do que o planejado para a pia da cozinha e nunca realmente desenvolve ou entrega algo útil que esteja completo.
Planejar no final da vida útil de uma base de código e reescrever é uma solução ágil e futura. Tentar chegar a um objetivo indefinido de "flexível" acaba sempre em fracasso. Você está projetando sem nenhuma necessidade e desperdiçando tempo, poderia estar desenvolvendo o que é de valor comercial, em vez de sonhar com recursos que nunca serão usados.