The 'shipping' problem isn't caused by programmers. It's caused by architects. Or lack thereof.<p>Management asks for a product, sometimes even hires someone to design that product. The programmers are then tasked to code that product, including all the features asked for and code them without bugs or flaws. Then they are given an artificial deadline.<p>When the deadline approaches, they are then given different instructions... They have to either code quickly (sloppily) and ignore the flaws/bugs, or leave out features because it's no longer possible to meet the deadline and do their job properly.<p>They should -not- be making that decision. Management should be telling them what features to code, letting them get them right, and then giving them more features to code. Create the product incrementally, instead of waiting until the end to force a deadline.<p>Yes, that sounds an awful lot like Agile, but there's no reason it can't be done in Waterfall. It's a matter of proper planning and responsibility.<p>If your developers are saying they aren't ready to ship, it's because you've asked too much of them. (Assuming they aren't incompetent, since you should fire them if they are.)<p>No developer worth his salt wants to ship a product with bugs. To ask them to do so is to ask them to violate their personal ethics. At least, for known problems. Unknown problems will always exist due to the nature of the beast.