Wells Fargo and the US Army are well capable of paying Microsoft enough money to change their incentives.
This is why things like security audits exist - you can't judge a software product's internal quality from just what the salespeople tell you and what you see by running it, so you demand as a condition of purchase that someone look (with an appropriate NDA) at the internals and deliver a second opinion as to whether it's competent-looking code. This is also why things like PCI exist - you certainly can process credit cards without being careful about anything, but the credit card companies have decided (with an eye their own long-term profitability) that you only should process them with at least a little bit of care, even if that doesn't produce a visible functional difference. Yet.
Now, I'm not saying these are perfect processes by any stretch, but they absolutely act to prevent a company from laying off a division that provides an important but unseen function and coasting on reputation for several years.
No company the size of Microsoft is going to develop good software out of the kindness of its heart or a sense of professional pride or responsibility. Individuals do this all the time, of course - that's why Linux exists in the first place. But once you put a company around it, you should expect that it's going to have MBAs who don't want people to spend their time doing things that don't bring profit, and the customers should interact with the company accordingly: make sure the things you do want them doing bring them profit
This is why things like security audits exist - you can't judge a software product's internal quality from just what the salespeople tell you and what you see by running it, so you demand as a condition of purchase that someone look (with an appropriate NDA) at the internals and deliver a second opinion as to whether it's competent-looking code. This is also why things like PCI exist - you certainly can process credit cards without being careful about anything, but the credit card companies have decided (with an eye their own long-term profitability) that you only should process them with at least a little bit of care, even if that doesn't produce a visible functional difference. Yet.
Now, I'm not saying these are perfect processes by any stretch, but they absolutely act to prevent a company from laying off a division that provides an important but unseen function and coasting on reputation for several years.
No company the size of Microsoft is going to develop good software out of the kindness of its heart or a sense of professional pride or responsibility. Individuals do this all the time, of course - that's why Linux exists in the first place. But once you put a company around it, you should expect that it's going to have MBAs who don't want people to spend their time doing things that don't bring profit, and the customers should interact with the company accordingly: make sure the things you do want them doing bring them profit