The "throw shit at the wall and see what sticks" programming technique.
Several years ago I was part of a team of developers in an org that did not have a formal QA process. Code was "just OK" but we shipped working products. At some point we (the management) decided to add a QA step with formal QA Engineers (doing part QA automation and manual QA). As a result Engineers became sloppy and realized they could get "extra time" if they delivered half-assed code that had bugs that were caught by QA. That was painful.
Several years ago I was part of a team of developers in an org that did not have a formal QA process. Code was "just OK" but we shipped working products. At some point we (the management) decided to add a QA step with formal QA Engineers (doing part QA automation and manual QA). As a result Engineers became sloppy and realized they could get "extra time" if they delivered half-assed code that had bugs that were caught by QA. That was painful.