Unfortunately reuse is a lot easier to talk about than it is to implement in practice, at least beyond the ad-hoc level. There are several reasons why reuse engineering is difficult to achieve:
- There is a greater impact when reusable assets break. When an asset is used in only one place and it breaks, then the impact of that breakage is limited to that one place. When an asset is reused in dozens or hundreds of places, and it breaks, then the impact is significantly larger. This is reusable assets need to be of high quality.
- Teams must go beyond the reuse of source code. Reuse is often described as not “reinventing the wheel,” and an important step for succeeding at reuse is to understand that you have more than one option at your disposal. For example, in addition to source code you can reuse components, services, patterns, and templates to name a few. More on this in a future post.
- Reuse requires enterprise awareness on IT delivery teams. For reuse to succeed IT delivery teams must understand that reusable assets exist, how these assets fit into your overall IT ecosystem, and what the benefits of reusing them are for your organization. In Disciplined Agile we promote the philosophy that IT delivery teams should work closely with enterprise architects and reuse engineers, if any exist, so that they will better understand and appreciate these issues.
- Reuse requires investment. To get beyond ad-hoc reuse your organization will need to invest in a reuse program. This may include investment in a reuse engineering team, in a reuse repository, in the development/rescue of potentially reusable assets, and the long-term maintenance and support of those assets.
- Your approach to funding will make or break reuse. As you saw earlier, a critical success factor for reuse programs is your approach to funding it. We cannot say this enough: Chargeback schemes put your reuse program at risk.
Having said all of this, it is in fact possible for your organization to succeed at reuse and many companies do so. Follow the advice in this article and you will be well on your way.