Well-written apps can meet a need, but it's like furniture. You can buy some cheap futon that gives you something to sleep on, but doesn't last long. Or you can buy a bespoke bed with handcrafted mortise and tenon joints, perfectly straight grained wood, and French polish finish. Both will give you a place to sleep, but one might last longer.
It's like my code. I have some super ugly python utils I've written that a "real" programmer would cringe when looking at the code. But it works 100% of the time when run (assuming the processes they call don't change their specs). The code is written for Python2, and breaks on Python3. It's not very clear how things work, despite extensive commenting. By your definition, these utilities would be "well written." To me, they're brittle, fragile eggs that I eventually will have to rewrite when Enterprise Security decides we can't have python2 binaries on our servers.