Programmers have Serbian mentality
People say that we Serbs are building houses like we're going to live for thousands of years but we leave every day like it's our last. Most programmers are taking a similar approach when building apps.
How is that?
I was working on a project which is a decade old and has more names in git blame than some companies employees. Code is written in the Zend PHP framework, and on the client-side, there were a bunch of script and style tags inside templates. In the beginning, I was disappointed with my assignment, but later when I started working inside that jungle of code it was kinda fun. Product folks promised us time for a total rewrite of the app after we finish tasks. For us, that meant only one thing - the end justifies the means. Do whatever is needed to make things work. It was so easy to understand each part of the app because all the code is in one place.
We always try to do tasks the best way possible, to make code decoupled, abstract, and as extensible as possible. Often, apps that we are working on are being abandoned or required once in a two years update. When we get back to some old project we're not going to be happy with the app state regardless. The first thing that we're going to notice is the code style that we changed over the years. Second, we're going to notice our lack of skills at that time. Third, our framework, library, or even language can be old, deprecated, or not popular anymore.
So we shouldn't care?
Of course not. We should continue what we're doing because that's what makes our job fun. But keep this in mind when you are working on something simple but you're trying to make it "smart". Don't try to solve problems that doesn't exist yet.