If one has business sense.
Understands that projects can't run forever and they have to be either completed or killed by a certain date.Has a concept of cashflow. Isn't arrogant with ' the customer should know better' or 'Why would anyone do that?'. Knows the balance between 'this needs to be improved long term' and 'we need sales today' and how to keep both running. Doesn't get involved in idiotic keyboard wars about spaces vs tabs,etc.
Agree, didn't think of a lot of the points you make. However from my experience, "this needs to be improved long term" will stay exactly as is, forever, in favor of business requirements and it will be improved only when the business absolutely demands it to be.
"this needs to be improved long term" isn't really something you can put on a quarterly roadmap though. I think a good startup engineer knows how to keep track of these things themselves, and knows when and how hard to push on project leaders to get something done about it. Imo, most of the "UGH why doesn't the business side care about this!?" is really a lot of engineers failing to properly communicate in business-speak with the rest of the company. If we can barely explain the bounds of what "technical debt" means and how we handle it to ourselves within our domain in software, how can we possibly expect people involved with business requirements and money numbers to ever meaningfully understand this concept?