Reuse is a poor objective

This is an example of something that can be  a good outcome can be a poor objective

Increasing re-use is one of the most common goals of Information and Technology organisations. And likely one of the most misleading, even damaging.

Although re-use itself (as a consequence of other activities) may be relatively benign, when it becomes an objective, it can cause undesirable behaviours.

Defining re-use

Let us start by contrasting the behaviours of two persons: Mr Maximise Reuse and Ms Minimise Diversity.

When faced with a new challenge, Mr Maximise Reuse demonstrates behaviours such as:

  • Look at existing code.
  • Take copies of existing code to use as the basis for new capability
  • Modify the copies and integrate into new capability (only developing new code where required)

Ms Minimise Diversity approaches the challenge in a different way:

  • Browse and understand the current services and how they interact – where common capabilities are called etc.
  • Modify existing services to handle the additional functionality required
  • Break large or complex service into component parts
  • Eliminate variations of components by pulling common features into shared components

Using simplified terminology, the contrast between the two approaches is total:

CharacteristicMr Maximise Re-useMs Minimise Diversity
Number of “methods”UPDOWN
Overall “consistency”DOWNUP
Maintenance OverheadUPDOWN
Re-use measureUPDOWN

Reuse as an objective should only be contemplated if there is a tight and coherent definition of reuse that promotes the desired behaviours.

(See also you get what you measure but perhaps not what you intended)