Bad software may be created by coders. But its cause is bad management. The typical problems are needlessly complex requirements, poor communication in the project team between business and technical people, and inadequate testing.

From the discussion of an article about whether to require software engineers to be licensed at Good Sentences, Bad Sentences | askblog.

Are you stuck with a legacy PHP application? You should buy my book because it gives you a step-by-step guide to improving you codebase, all while keeping it running the whole time.