We are prematurely optimizing when we invest a lot of time building something that hasn’t proven its value to users.
Even after conducting UX research with a clickable high-fidelity mockup, any given feature’s value is still at risk of its existence until it’s deployed and receives positive user feedback.
Does that mean we should produce a feature with no regard to its maintainability and unfinished UI implementation?
Of course not.
Many great features survive through more iterations to tweak and polish, and maintainability is a key to staying agile.