Code like building contractors?

I recently found an article comparing software development to the construction industry. Here's the response to a software developer who said he wanted to write software like people construct buildings:

I started to explain: "In software development, we are told we should manage our projects like construction projects, where a building is designed at the start, cost and schedule are predictable, and customers get what they expect."

Silence. "You're kidding, right?" "No, honest, that's what we're told."

Incredulity turns to laughter. The idea that programmers would want to manage projects like the construction industry strikes my classmates as ludicrous.

This is an article anyone involved in software development should read.  It also has some interesting information on what building contractors do to get around their problems.