Why make something better than it needs to be? I like overengineering just as much as the next girl, but in software you throw away your stack every few years anyway. It’s rare you can write any software that lasts a decade without maintenance, often the “bad software” is only bad because nobody maintains it. The initial/release state of the software is irrelevant, the problem arises when nobody is around to fix the issues. Which, in turn, is of course a confirmation of your initial argument:
a lot of the problems stem from capitalist mode of software production
How can one fix this? What can singular people do to stop others from needlessly introducing complexity into software which is bad to maintain in the first place?