The product had to ship yesterday. Users are screaming about a missing feature. The boss's boss says we better get moving or the ax will fall. Nothing ever works as well as it could.
Everyone wants the code to flow like water from a fire hose, but no one wants to give developers what they need to get the job done. The same boss who wants the job finished yesterday won't hire more people, buy faster machines, or do any of the dozens of things that make it easier for programmers to get work done.
Here are 15 roadblocks to programming progress. Our informal survey was surprisingly easy. When the developers suspected they were talking with a sympathetic ear, they poured out their complaints.