To add to his point about copy and pasting...<p>Notice the contradiction implicit in these bits of accepted dogma:<p>1. Copy and pasting code is evil (DRY).<p>2. Tight coupling is bad, loose coupling is good.<p>A system written with no abstracted functions (ie, where copy&#x2F;pasting was the <i>rule</i>) has no coupling.  Of course, I&#x27;m not advocating such a style.  But it&#x27;s worth keeping in mind that practicing DRY through abstraction necessarily increases coupling, which means that it&#x27;s always a tradeoff and that you have to get your abstraction right so that the coupling, on average, makes change easier rather than harder.