Route of all evil. Yup, it is bad, but in many ways.
I was watching a project recently where the poor user was biten by premature optimization.
The developers spent so much time on making the application elegant and beautiful and future proof that:
- It took a lot longer to get it out there
- The users had to jump through hoops to do their own work, and there was delays in getting fresh content out there
- The iteration “make it easier for users” was always “just after the next thing”
If the user was considered first, someone usable would have been out there, and THEN the developers would have had to make it work with caching after the fact.
That being said, you obviously don’t want to be dumb with your architecture, making it hard to grow in the future. I have seen that happen too.