Trash can with wads of paper

I have often been in situations where we decided to reuse existing code. Business people seem to think that reusing existing code is free. After all, this is the promise of paradigms like OO. But in reality, retrofitting code for a new usage often proved nearly as costly, or sometimes even more so than if we had started from scratch. This is not necessarily a bad thing. Having a component with multiple uses makes sure it is well tested, and that all consumers benefit from maintenance and improvements.