Why Code Reuse Ain't Always So Great

It is easy to take it for gospel, that Code Reuse is a 'good thing'.  However there are costs and implications to code reuse:


Matching Shared Binaries
Due to shared binaries between products, an upgrade of one product, can force an upgrade of other products.

For example: if a Server product, and its 'client' user interfaces are installed on the same machine,
then upgrading the Server can also force an upgrade of the Client, purely because of shared binaries.
This can create more overhead for QA and for Implementation and of course for users.

This can also cause hard-to-resolve issues, when we forget about the shared binaries, and try to deploy one product without the other product(s).

Of course, there are some technical workarounds (e.g. side by side install on Windows) but in a way this could also be described as an overhead in implementation.

Cost of making code re-usable:
http://allankelly.blogspot.com/2010/10/reuse-myth-can-you-afford-reusable-code.html

Hidden costs and dangers of re-using code:
Overload 101 - February 2011 - "Overused Code Reuse"
http://accu.org/var/uploads/journals/overload101.pdf

Comments