Every Asset Isn’t Reusable

Every software asset in your application, product line, or codebase isn’t going to be reusable. In fact if you are trying to make everything reusable there is a good chance that you are introducing needless complexity into the design. Recognize that there are areas where reusable assets are going to be a natural fit and areas where they won’t be. You might be uniquetempted to make things reusable just in case you need them in another project or application. Pause and reflect at such points because hindsight is 20-20 and you might get better at discerning what is and isn’t reusable over several iterations of a system. There are always going to be assets that don’t fit well together or have neatly packaged interfaces and that is okay!

There are areas where it makes sense to build, adapt/refactor, and maintain reusable assets. For instance – connectivity components, domain specific data and business logic such as data services, business services, model classes/repositories, infrastructural components and utilities are all classic areas for reuse.

Ask hard questions if you are unable to make up your mind. If nothing else always ask if there is business relevance to the asset and if the asset’s functionality varies based on sales channel/user/time/business policies/rules etc. If the answer is no, you probably don’t need to invest efforts in making the asset reusable. At least not right away.

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

add to del.icio.us: Digg it : post to facebook: Stumble It! : :

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: