Peter G. Neuman, editor of ACM risks forum has written an article "Optimistic Optimization" in the latest Communications of the ACM that I could not agree more with.
Peter starts out by talking about how business and government tends to optimize for short term gains vs. long term gains using examples of environmental issues, pandering to special interests rather than long term public good, etc.
He then starts to talk about how the same short term view infects the software development process. While I started programming in the early 1960s as a kid, I did not start professionally programming until 1973. Since 1973, time and time again I have seen short term scrambles to make deliveries end up costing much more in the long run. However, nothing is black and white in this world - there are some times when quick hacks to get a job done quickly make the most sense. And, there are times when careful requirements analysis, quality design, copious unit testing, etc. pay off in a big way over the long haul. The challenge is to recognize up front in a project the advantages of short term vs. long term optimization.