Olha eu levo muito a sério o contexto de DRY, KISS e YAGNI para todos os códigos que eu faço, normalmente as vezes eu faço ele o mais simples possivel para entender todo o fluxo e processo, após isso implemento tecnicas, conceitos entre outras regrinhas... Mas sempre envio para Code Review com ele já pronto funcionando e com melhor código possivel naquele momento.

Mas como a maioria disse, você precisa sempre ponderar ambas as partes, mandar o código meia boca pensando em refatorar depois não é bom.. porém ficar preso tentando fazer um código de foguete (over engineering) também não é bom... então sempre pondere os dois lados.

Deixo o link do artigo do "Vinícius Oliveira" sobre os 3 principios que citei acima. https://vinioolvrs.medium.com/conhe%C3%A7a-os-princ%C3%ADpios-dry-kiss-e-yagni-9fc4ab46b0b9