Failing to consider the longer-term ramifications of design decisions can lead to substantial lost productivity both in trying to diagnose and patch problems, and then rewriting the code where necessary.

Read the full story