Minimal IT logo and link to home page
Research, training, consultancy and software to reduce IT costs
Home | About | Newsletter | Contact
Previous | Next Printer friendly
10 June 2008

That's what I call reuse

By Andrew Clifford

You can achieve high levels of reuse if you focus on reusing big things, like whole systems and frameworks. This is much more efficient than assembling from components.

In the past few weeks, I have come across a couple of examples of reuse in my work.

Our Metrici Advisor service supports assessments for broad IT governance and quality management. The same assessment functionality is valuable on a smaller scale, for example assessing risks for a single project, or to evaluate network security controls. We want to create a version of the service for these more focussed assessments. We work through other consultancies, and we want to provide functionality that they can embed in their websites and offer under their own brand.

When we started looking at this requirement, we though it would be a significant development, perhaps using offline forms technology. But after a bit of thought, we realised that we could reuse our existing service with a few modifications. Metrici Advisor has a very clear separation between the user interface and the back-end functionality and follows web standards carefully. Because of this, we have been able to produce an embeddable version of the service in just a few days work (see example of embedded Metrici Advisor). This runs off the same instance of the application and database. We met our requirements by reconfiguring the software to support a new user interface view.

As another example, we had the opportunity to put forward a proposal for some web application development work. It would have taken roughly a year's effort to deliver using traditional web application development in Java.

However, we had a careful look at the Drupal content management system. We realised that we could build the entire application in about one fifth of the time by using core Drupal, add-on modules and customisation capabilities, without writing new code.

These are real examples of significant reuse. What do they teach us?

  • The most powerful reuse is when you reuse the same application instance for multiple needs. You need to consider ownership issues, but where these are acceptable then it is much better to reuse what you already run than to build new.
  • It is more effective to create a single application that can run in multiple modes than to create multiple versions of the same application.
  • Structure and standards are critical for reuse. Ill-structured systems that do not comply to standards are harder to modify. If, for example, we used browser-based components in Metrici Advisor, with no clear separation of user interface and back-end functionality, we could not so easily have built our embedded variant (even though we would appear to be using more reusable components).
  • It is much more effective to use applications that have plug-ins and customisations than to build new applications from scratch.

The conventional view of reuse involves assembling new applications from a library of components. This is much better than building new systems from scratch. But the bigger the pieces that you reuse, the more reuse you achieve. To achieve high levels of reuse, focus on structure and standards, and on opportunities to reuse whole systems, not just components.

Next: A model of good maintenance

Subscription

Subscribe to RSS feed

Latest newsletter:
Magical metadata

We use the term "metadata-driven" to describe IT solutions in which functionality is defined in data. Taking this to the extreme can provide unparalleled levels of speed, simplicity and versatility.
Read full newsletter

System governance

System governance helps you implement high-quality systems, manage existing systems proactively, and improve failing systems.

Find out more