I finally realized that there's usually not a "perfect" engineering solution, and you can spend weeks or months going back and forth on a plan. So the people that just plow ahead --even if not great-- wind up delivering "something", which is better than nothing. And put another way, they land 2 failures and one moderate success in the same amount of time the rest of us are busy landing our one single success... which also winds up being only a moderate success at best because writing good software systems is hard!
Sub optimal can move the needle and that's what a lot of people are looking for.
You see this in open source projects too where code gets forked and then it becomes difficult to adopt features from mainline or the other forks etc...
The highest value code I ever wrote was probably a 50-100 line script that collected some data requested for due diligence and which eventually clinched a >200 million USD investment round for the company. That script was never used again after that.
Since then I changed my LinkedIn headline to: "Solving problems with technology".
That's what people care about. Not which language we use.
Obviously "minimum" differs from situation to situation. Just enough effort, but not more than needed, but not too little either.
Add competition to the mix and "good enough" might put you in the ground.
Interactions are more than just about the software. It what separates Disney parks from Six Flags.