Horizontal and Vertical Software Assets

Many systematic software reuse initiatives in organizations fail to take off or have a slow death. There are many factors for this but one key reason is the pursuit of generic technical assets.  That is what I refer to as horizontal reuse. Why? Because the focus and intent is to find software assets that are reusable across most or all your applications. This is not only limits the potential for systematic reuse but also makes your reuse initiative extremely risky. Finding assets that are universally reusable is not only difficult but also will make your design overly complex. Overly generic components might also end up creating assets that are:

  • hard to test and debug
  • difficult to comprehend and maintain
  • complex to integrate and configure

Worse, the horiztonal focus will take your efforts away from domain relevant reusable assets!

In contrast, with systematic reuse the focus is on building a set of vertical software assets for a targeted business domain. These software assets are not meant to be generic for all projects or all domains. Orthogonal to horizontal assets, vertical software assets are deliberately constructed as part of a product line. Take Microsoft Office as an example. It is made up of several vertical reusable assets part of the Office product line. Opening a document, saving multiple documents, document preview, clipboard functions (cut, copy, paste), inserting files and other attachments are all examples of reusable assets that are common across the Office product line. Or take Gmail, Orkut, GTalk as a product line. Logging in with google credentials, exchanging messages, persisting chat, broadcasting messages are all examples of functionality that is common across products. This is the power and reach of systematic reuse.

In the long haul, vertical domain relevant assets will help you create new products faster, offer product variations/flavors, and fetch a higher return on your software investments over super-generic horizontal assets.

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

2 Responses to Horizontal and Vertical Software Assets

  1. […] Wasted efforts on what i call horizontal software assets instead of domain relevant vertical reusable assets […]

  2. […] 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 […]

Leave a Reply

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

WordPress.com Logo

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

Google photo

You are commenting using your Google 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 )

Connecting to %s

%d bloggers like this: