Types of Reuse In Information Technology

Scott W. Ambler + Associates
     Home  |  Articles  |  Books  |  IT Surveys  |  Podcasts  |  Contact Us  |  Announcements  |  Site Map
Recently reviewed Reuse is often described as not “reinventing the wheel” and the first step at succeeding at reuse is to understand that you have more than one option at your disposal.  You can reuse source code, components, development artifacts, patterns, and templates.  Figure 1, modified from A Realistic Look at OO Reuse, shows that there are several categories of reuse.  The left-hand arrow indicates the relative effectiveness of each category – pattern reuse is generally more productive than artifact and framework reuse for example.  Similarly, the right hand arrow indicates the relative difficulty of succeeding at each type of reuse.  Code and template reuse are relatively easy to achieve because you simply need to find the asset and work with it.  Other forms of reuse become hard to achieve; with framework reuse you need to learn the frameworks, with pattern reuse you must learn when to (and when not to) apply various patterns, and with architected reuse you need an effective approach to enterprise architecture in place.  


Figure 1. Comparing types of reuse.


The types of reuse are:


You can address these reuse categories simultaneously.  Framework reuse often locks you into the architecture of that framework, as well as the standards and guidelines used by the framework, but you can still take advantages of the other approaches to reuse in combination with framework reuse.  Artifact and module reuse are the easiest places to start, with a little bit of research you can find reusable items quickly.  However, if your organization doesn’t have a well-defined development process that it follows you may get little benefit from templates.  Pattern reuse is typically the domain of developers with good modeling skills and your enterprise architects should be publishing and providing pattern-oriented guidance to them. 

It is important to note that although Figure 1 indicates that pattern reuse is generally more effective than artifact reuse you may discover that within your organization the opposite holds true.  This may occur because you have a comprehensive collection of reusable artifacts in place, because your organization culture is conducive to artifact reuse, or simply because your developers have little experience with patterns.


Suggested Reading

Disciplined Agile Delivery This book, Disciplined Agile Delivery: A Practitioner's Guide to Agile Software Delivery in the Enterprise describes the Disciplined Agile Delivery (DAD) process decision framework. The DAD framework is a people-first, learning-oriented hybrid agile approach to IT solution delivery. It has a risk-value delivery lifecycle, is goal-driven, is enterprise aware, and provides the foundation for scaling agile. This book is particularly important for anyone who wants to understand how agile works from end-to-end within an enterprise setting. Data professionals will find it interesting because it shows how agile modeling and agile database techniques fit into the overall solution delivery process. Enterprise professionals will find it interesting beause it explicitly promotes the idea that disciplined agile teams should be enterprise aware and therefore work closely with enterprise teams. Existing agile developers will find it interesting because it shows how to extend Scrum-based and Kanban-based strategies to provide a coherent, end-to-end streamlined delivery process.

Order now! The Enterprise Unified Process: Extending the Rational Unified Process by Scott W. Ambler, John Nalbone, and Michael Vizdos.  Whereas the RUP defines a software development lifecycle, the EUP extends it to cover the entire information technology (IT) lifecycle. The extensions include two new phases, Production and Retirement, and several new disciplines: Operations and Support and the seven enterprise disciplines (Enterprise Business Modeling, Portfolio Management, Enterprise Architecture, Strategic Reuse, People Management, Enterprise Administration, and Software Process Improvement).

Let Us Help

We actively work with clients around the world to improve their information technology (IT) practices, typically in the role of mentor/coach, team lead, or trainer.  A full description of what we do, and how to contact us, can be found at Scott W. Ambler + Associates

Disciplined Agile Delivery: The Foundation for Scaling Agile Agile Modeling: Practices for Scaling Agile Agile Data: Practices for Scaling Agile EnterpriseUP: Agility at Scale AgileUP: Towards Disciplined Agile DeliveryAmbysoft Inc. Software Development Practices Advisor Scott Ambler + Associates Follow @scottwambler on Twitter!

Copyright 2005-2014 Scott W. Ambler

This site owned by Ambysoft Inc.