When I was overseas in Asia I had an opportunity to observe some "undisciplined software development".
I think it is a cultural issue. The project is driven top-down by money (as it is with western software development), but by the time it gets to the project manager, the project is pretty much "results-driven". The faster the developers can produce results, the better.
This leads to basically hacks. Hack this and hack that to create results. Don't worry too much about bugs - create results first and fix bugs later.
When a new customer wants something that is somewhat similar to your old product for an existing customer, copy and paste the entire source code branch and make your changes in the new folder hierarchy. It all sounds incredibly to me, but I think I view it as a problem with the project management. The project team doesn't understand values in terms of zero-defect programming, test-driven programming, maintainability.
I believe they would do well to migrate to an agile-based development, but it must be driven top down from the project management and preached to the developers. Some of the ideas are so foreign that I'd even imagine resistance from the developers.