This reddit comment succinctly describes my experiences working in commercial software startups and, to a lesser degree, in established commercial software companies:
I’ve been in HCIT/Software for twenty years, and every time there was a major bug that caused a fiscal impact to the company when doing RCA, it always, 100% of the time happened because someone up on the food chain overwrote the decisions of the people who knew what the fuck they were doing.
I explained to him like this:
Salesman goes to a client and asks, “what will get you to buy this widget from me?”
Client replies “it has to do everything”
Sales then delivers the requirement of everything to the product/project manager. PM then asks their team, “how long will it take to do all this?” The team will respond “eleventy years.”
PM goes back to sales to state it will take eleventy years, which of course isn’t good enough. PM asks sales then when do they need it by, which is always “immediately.”
PM goes back to their team, “What can you do by this date?” They respond with a much truncated list. PM provides it to Sales saying this is all they can deliver in that timeframe.
Sales then loses their shit, bitches to senior leadership if not all the way up to the C Levels, “We are gonna lose this huge ass sale because they cannot deliver everything by this date!”
So then the COO or SVP over development/production forces the team to just put out as much as they can by that date, so in order to do that and keep their jobs, corners are cut, QA is skimped, and you get a pile of widgets with an unacceptable defect percentage.
Then something breaks, everyone has to scramble to clean the mess, all the while the C Levels are blaming the development and operational teams and the sales guy is jerking off with the piles of cash from his commission and doesn’t give a shit, cause once the contract is signed it’s not his fucking problem anymore.
All the while the client really only wanted a widget that was affordable and worked.