Programmers have Serbian mentality
People say we Serbs are building houses like we're going to live for thousands of years but we live every day like it's our last. When developing apps, most programmers take a similar approach.
How is that?
I was working on a ten-year-old project with more names in git blame than some companies' employees. The code was written in the Zend PHP framework, and there were a lot of script and style tags inside templates on the client side. I was initially disappointed with my assignment, but once I started working inside that jungle of code, it became kind of fun. Product folks promised us time for a complete rewrite of the app after we're done with the tasks. That meant only one thing to us: the end justifies the means. Do whatever is needed to make things work. Because all of the code is in one place, it was extremely simple to understand each component of the app.
We always strive to complete tasks in the most efficient manner possible, with code that is as decoupled, abstract, and extensible as possible. However, apps that we are developing are frequently abandoned or only required update once every two years. When we get back to some old project we're not going to be happy with the project regardless. The first thing we'll notice is the code style that has evolved over time. Second, we will become aware of our lack of skills at that time. Third, our framework, library, or even language may be outdated, deprecated, or no longer popular.
So we shouldn't care?
Of course not. We should continue what we're doing because that's what makes our job fun. However, keep this in mind when you are working on something simple but attempting to make it "smart". Don't try to solve problems that do not exist yet.