Key Differences between Vertical and Horizontal Reuse

In an earlier post I had introduced the idea of horizontal and vertical reusable assets. In this post I want to compare them so it is easy to differentiate one from the other:

Characteristic Vertical Reuse Horizontal Reuse
Applicability Only for applications within a specific domain or closely related domains. This is the primary focus when building product lines Applicable across the board for applications regardless of domain. These assets typically tend to be utilities that are generic to multiple applications.
Domain relevance High Low and can be non-existent
Availability outside the firm (i.e. commercial and/or open-source solutions) Low. Domain specific assets tend to be unique and create value by differentiating your firm from its competition. Hence, availability outside the firm tends to be low. High. Domain agnostic assets don’t tend to be unique to a particular organization. E.g. logging or simple data transformations etc.
Potential to create competitive advantage High. Low
Asset Variability Varies from well-defined to open-ended depending on the complexity in the domain. Variations typically aren’t well understood and even if they are, they may not be accurately captured in reusable assets. Tend to be more well-defined than open-ended. Reason? Variations are well known, tend to change less over time, and have been analyzed several times.
Key stakeholders Has to be a combination of business stakeholders and technology. Business knowledge is fundamental to capturing domain variations and relationships and technical expertise is necessary to produce executable software. Tend to be primarily technology. Some assets may require operations or production support teams to provide input as well. E.g. your firm may have a logging or error handling standard that the reusable asset needs to adhere to.
Relationship with SOA & BPM These assets are typically business services, data services, business rules, etc. These assets are typically utility services.

With lower levels of reuse across multiple applications you might be asking yourself if it is a good idea to focus on vertical reuse. My recommendation would be a resounding yes. Vertical assets are unique to your organization. They can be invaluable investments for your firm and require more than just technical expertise to create.

Like this post? Subscribe to RSS feed or get blog updates via email.

tweet this add to post to facebook


One Response to Key Differences between Vertical and Horizontal Reuse

  1. […] (This is a sample comparison chart taken from the Art of Software Reuse) […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: