So, if my company is committed to MakingReuseWork, how can I tell if we're being successful?
What are the most important metrics to track the effective reuse of components/applications/etc within a company?
August, 2005: Based on the last edit date when I opened this page, it has been sitting here for FIVE YEARS waiting for someone to come along with some brilliant insights into measuring reuse.
At WachoviaBank?, the lack of effective reuse measurements is not only crippling our ability to tune our reuse efforts, it is causing some really dysfunctional behavior. Like "We should always design web service operations to be as coarsely grained as possible, regardless of what individual apps actually need, so that we can show more client applications reusing the same operations." !!
How do you really calculate ReuseCostAvoidance?? How do you measure the reuse of shared domain layers or other sections of the code below the operation level? And beyond reuse of construction artifacts, how do you effectively measure the reuse of analysis or design artifacts? Or process definitions?
Any thoughts or ideas lurking out there?
I am reminded of an excellent exchange from BlackAdder?:
Percy: I intend to discover, this very afternoon, the secret of alchemy -- the hidden art of turning base things into gold.
Edmund: I see, and the fact that this secret has eluded the most intelligent people since the dawn of time doesn't dampen your spirits at all.
Percy: Oh no; I like a challenge!
-- BillBarnett
The secret seems to be to persuade someone that, for a small quantity of gold now, you'll be able to to turn large amounts of base metal -> gold later. By which time of course, you have fled the kingdom. Pretty similar to http://en.wikipedia.org/w/index.php?title=Nigerian_419_scam
It's easy enough to count instances of reuse. The challenge is to put a value on it. How to show that the effort of managing a library of reusable components is repaid?
Unless you spend effort on reuse, it doesn't happen. It shouldn't be too hard putting a cost on that effort. But how to value the benefits? The fact that it's been (re)used is nice, but it doesn't tell you what would have happened otherwise - unless you have some way of knowing if people would have had to reimplement the whole thing, or if they would just have done without it. -- BenAveling