> There's no such thing as the "Proper Solution", there's only the best solution we are able to come up given the current knowledge and circumstances
I think that is the definition of a "Proper Solution".
Another way to define a "Proper Solution" is: the fastest solution that still manages to be maintainable while meeting all of the requirements for the project which is not "over-engineered".
I think that's the broad-spectrum "proper solution". I don't think there is any application that wouldn't want to meet these requirements.
There are two places I see the fallacy frequently pop up:
1. Over-engineering. This often comes in the form of trying to perfect something before releasing it, and/or long projects with fluid, changing requirements.
2. Criticizing old code/systems and their developer without any understanding of the context and trade-offs made at the time.
In my experience the first is common and the second is even more common. The worst is when #1 and #2 combine into someone trying to replace a functional system with an improved "v2" that is more complicated and no better.
I think #2 is aggravated by lack of documentation. How would any new developer ever understand the context and trade-offs made at the time if they were never written down? If there's no records, it's either reverse engineering, or re-engineering.
I agree with #1, but #2 is often used to defend under investment in a project. 15 years ago it might have been an adequate solution, but the lack of adequate maintenance and improvement is what makes legacy today.
I'm also amazed at what some people consider a "functional system". Frequent downtime and developer/support intervention is not what I'd consider functional, but for many business it is.
I think that is the definition of a "Proper Solution".
Another way to define a "Proper Solution" is: the fastest solution that still manages to be maintainable while meeting all of the requirements for the project which is not "over-engineered".
I think that's the broad-spectrum "proper solution". I don't think there is any application that wouldn't want to meet these requirements.